Assembly Diffs
linux arm
Diffs are based on 2,228,746 contexts (825,130 MinOpts, 1,403,616 FullOpts).
MISSED contexts: base: 77,529 (3.36%), diff: 79,285 (3.44%)
Overall (+53,448,948 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | 
| benchmarks.run.linux.arm.checked.mch | 15,030,000 | +1,464,368 | 
| benchmarks.run_pgo.linux.arm.checked.mch | 63,279,568 | +4,101,278 | 
| benchmarks.run_tiered.linux.arm.checked.mch | 17,368,546 | +1,394,258 | 
| coreclr_tests.run.linux.arm.checked.mch | 320,937,174 | +6,505,036 | 
| libraries.crossgen2.linux.arm.checked.mch | 36,614,296 | +3,331,352 | 
| libraries.pmi.linux.arm.checked.mch | 48,572,466 | +5,001,566 | 
| libraries_tests.run.linux.arm.Release.mch | 243,987,636 | +23,325,954 | 
| librariestestsnotieredcompilation.run.linux.arm.Release.mch | 93,237,428 | +6,452,200 | 
| realworld.run.linux.arm.checked.mch | 13,249,158 | +1,872,936 | 
  
FullOpts (+53,448,948 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | 
| benchmarks.run.linux.arm.checked.mch | 14,646,534 | +1,464,368 | 
| benchmarks.run_pgo.linux.arm.checked.mch | 51,637,824 | +4,101,278 | 
| benchmarks.run_tiered.linux.arm.checked.mch | 10,176,318 | +1,394,258 | 
| coreclr_tests.run.linux.arm.checked.mch | 108,295,518 | +6,505,036 | 
| libraries.crossgen2.linux.arm.checked.mch | 36,613,066 | +3,331,352 | 
| libraries.pmi.linux.arm.checked.mch | 48,465,962 | +5,001,566 | 
| libraries_tests.run.linux.arm.Release.mch | 121,696,850 | +23,325,954 | 
| librariestestsnotieredcompilation.run.linux.arm.Release.mch | 83,153,626 | +6,452,200 | 
| realworld.run.linux.arm.checked.mch | 12,799,472 | +1,872,936 | 
  
Example diffs
benchmarks.run.linux.arm.checked.mch
-8 (-12.90%) : 21494.dasm - Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (FullOpts)
@@ -10,20 +10,20 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Struct.SpanWrapper>
 ;  V01 arg1         [V01,T05] (  4,  4   )  struct ( 8) [sp+0x08]  do-not-enreg[S] ld-addr-op single-def <Struct.SpanWrapper`1[int]>
-;  V02 loc0         [V02,T03] (  4,  9   )     int  ->   r0        
+;  V02 loc0         [V02,T04] (  5,  9.25)     int  ->   r0        
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (12) zero-ref    do-not-enreg[SF] ld-addr-op <System.ReadOnlySpan`1+Enumerator[int]>
 ;* V04 loc2         [V04    ] (  0,  0   )     int  ->  zero-ref   
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (12) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1+Enumerator[int]>
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Span.get_Item index"
-;* V09 tmp4         [V09,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V09 tmp4         [V09,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V10 tmp5         [V10,T00] (  3, 20   )     int  ->   r1         "Inline stloc first use temp"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V12 tmp7         [V12    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x4)" P-INDEP
-;  V13 tmp8         [V13,T06] (  2,  3   )   byref  ->   r3         single-def "V03.[000..004)"
-;  V14 tmp9         [V14,T02] (  3, 11   )     int  ->   r2         single-def "V03.[004..008)"
-;  V15 tmp10        [V15,T01] (  5, 17   )     int  ->   r1         "V03.[008..012)"
+;  V13 tmp8         [V13,T06] (  3,  3.25)   byref  ->   r3         single-def "V03.[000..004)"
+;  V14 tmp9         [V14,T02] (  3, 10   )     int  ->   r2         single-def "V03.[004..008)"
+;  V15 tmp10        [V15,T01] (  4, 14.50)     int  ->   r1         "V03.[008..012)"
 ;  V16 tmp11        [V16,T07] (  2,  2   )   byref  ->   r3         single-def "V06.[000..004)"
 ;  V17 tmp12        [V17,T08] (  2,  2   )     int  ->   r2         single-def "V06.[004..008)"
 ;* V18 tmp13        [V18    ] (  0,  0   )     int  ->  zero-ref    "V06.[008..012)"
@@ -40,39 +40,41 @@ G_M19652_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldr     r3, [sp+0x08]
             ; byrRegs +[r3]
             ldr     r2, [sp+0x0C]
-            mov     r1, -1
             b       SHORT G_M19652_IG04
-                     ;; size=12 bbWeight=1 PerfScore 5.00
-G_M19652_IG03:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
-            cmp     r1, r2
-            bhs     SHORT G_M19652_IG07
+                      ;; size=8 bbWeight=1 PerfScore 4.00
+G_M19652_IG03:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+            ldr     r0, [r3]
+            b       SHORT G_M19652_IG07
+                       ;; size=4 bbWeight=0.25 PerfScore 0.50
+G_M19652_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+            cmp     r2, 0
+            ble     SHORT G_M19652_IG09
+                       ;; size=4 bbWeight=1 PerfScore 2.00
+G_M19652_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+            movs    r1, 0
+            b       SHORT G_M19652_IG03
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M19652_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref
             lsl     lr, r1, 2
             ldr     lr, [r3+lr]
             add     r0, lr
-                       ;; size=14 bbWeight=2 PerfScore 10.00
-G_M19652_IG04:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+                       ;; size=10 bbWeight=2 PerfScore 6.00
+G_M19652_IG07:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
             adds    r1, r1, 1
             cmp     r1, r2
-            bge     SHORT G_M19652_IG06
+            bge     SHORT G_M19652_IG09
                        ;; size=6 bbWeight=8 PerfScore 24.00
-G_M19652_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
-            b       SHORT G_M19652_IG03
+G_M19652_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+            b       SHORT G_M19652_IG06
                         ;; size=2 bbWeight=4 PerfScore 4.00
-G_M19652_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M19652_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[r3]
             pop     {r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=4 PerfScore 12.00
-G_M19652_IG07:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_RNGCHKFAIL
-            ; gcr arg pop 0
-            bkpt    
-                       ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 62, prolog size 8, PerfScore 58.00, instruction count 24, allocated bytes for code 62 (MethodHash=47afb33b) for method Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (FullOpts)
+; Total bytes of code 54, prolog size 8, PerfScore 56.50, instruction count 23, allocated bytes for code 54 (MethodHash=47afb33b) for method Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -84,7 +86,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 31 (0x0001f) Actual length = 62 (0x00003e)
+  Function Length   : 27 (0x0001b) Actual length = 54 (0x000036)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
-12 (-5.17%) : 12710.dasm - Sigil.Impl.LinqAlternative+<Where>d_2`1[int]:MoveNext():ubyte:this (FullOpts)
@@ -8,167 +8,152 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 18, 16.50)     ref  ->  [sp+0x04]  this class-hnd EH-live single-def <Sigil.Impl.LinqAlternative+<_Where>d__2`1[int]>
+;  V00 this         [V00,T00] ( 17,  9   )     ref  ->  [sp+0x04]  this class-hnd EH-live single-def <Sigil.Impl.LinqAlternative+<_Where>d__2`1[int]>
 ;  V01 loc0         [V01,T03] (  4,  2.50)   ubyte  ->   r0        
 ;  V02 loc1         [V02,T04] (  3,  2.50)     int  ->   r0         single-def
 ;# 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 "non-inline candidate call" <<unknown class>>
-;  V05 tmp2         [V05,T02] (  2,  8   )     int  ->   r1         "argument with side effect"
-;  V06 tmp3         [V06,T01] (  3, 12   )     ref  ->   r5         "argument with side effect"
-;  V07 PSPSym       [V07,T05] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
+;  V05 tmp2         [V05,T02] (  2,  1   )     int  ->   r1         "argument with side effect"
+;  V06 tmp3         [V06,T01] (  3,  1.50)     ref  ->   r6         "argument with side effect"
+;  V07 PSPSym       [V07,T06] (  1,  1   )     int  ->  [sp+0x08]  do-not-enreg[V] "PSPSym"
+;  V08 cse0         [V08,T05] (  5,  2   )     ref  ->   r0         multi-def "CSE - aggressive"
 ;  TEMP_01                                     ref  ->  [r11-0x18]
 ;
-; Lcl frame size = 16
+; Lcl frame size = 12
 
 G_M46418_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r4,r5,r11,lr}
-            sub     sp, 16
+            push    {r4,r5,r6,r11,lr}
+            sub     sp, 12
             add     r11, sp, 24
             movs    r1, 0
             str     r1, [sp]   // [TEMP_01]
             add     r1, sp, 32
-            str     r1, [sp+0x0C]  // [V07 PSPSym]
+            str     r1, [sp+0x08]  // [V07 PSPSym]
             str     r0, [sp+0x04]    // [V00 this]
             ; GC ptr vars +{V00}
-            mov     r4, r0
-            ; gcrRegs +[r4]
+            mov     r5, r0
+            ; gcrRegs +[r5]
                         ;; size=22 bbWeight=1 PerfScore 9.00
-G_M46418_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     r0, [r4+0x18]
+G_M46418_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     r0, [r5+0x18]
             cmp     r0, 0
             beq     SHORT G_M46418_IG04
                        ;; size=6 bbWeight=1 PerfScore 3.00
-G_M46418_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M46418_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             cmp     r0, 1
-            beq     SHORT G_M46418_IG09
+            beq     SHORT G_M46418_IG07
             movs    r0, 0
-            b       SHORT G_M46418_IG11
+            b       SHORT G_M46418_IG12
                      ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M46418_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M46418_IG04:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             mov     r0, -1
-            str     r0, [r4+0x18]
-            ldr     r0, [r4+0x04]
+            str     r0, [r5+0x18]
+            ldr     r0, [r5+0x04]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             str     r0, [sp]
-            ldr     r4, [sp+0x04]    // [V00 this]
-            ; gcrRegs +[r4]
-            add     r0, r4, 20
+            add     r0, r5, 20
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            ldr     r1, [sp]  // [TEMP_01]
+            ldr     r1, [sp]
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            b       SHORT G_M46418_IG09
-                       ;; size=42 bbWeight=0.50 PerfScore 7.50
-G_M46418_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4]
-            ldr     r4, [sp+0x04]  // [V00 this]
-            ; gcrRegs +[r4]
-            ldr     r5, [r4+0x0C]
-            ; gcrRegs +[r5]
-            ldr     r0, [r4+0x14]
+            b       SHORT G_M46418_IG07
+                       ;; size=40 bbWeight=0.50 PerfScore 7.00
+G_M46418_IG05:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r0, -1
+            str     r0, [r5+0x18]
+            ldr     r0, [r5+0x14]
+            ; gcrRegs +[r0]
+            cmp     r0, 0
+            beq     SHORT G_M46418_IG11
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            ; gcr arg pop 0
+            b       SHORT G_M46418_IG11
+                       ;; size=26 bbWeight=0.50 PerfScore 5.00
+G_M46418_IG06:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r5+0x14]
+            ; gcrRegs +[r0]
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            ; gcr arg pop 0
+            str     r0, [r5+0x1C]
+            movs    r0, 1
+            str     r0, [r5+0x18]
+            b       SHORT G_M46418_IG12
+                       ;; size=22 bbWeight=0.50 PerfScore 4.50
+G_M46418_IG07:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mvn     r0, 2
+            str     r0, [r5+0x18]
+            b       SHORT G_M46418_IG09
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M46418_IG08:        ; bbWeight=0.25, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r6, [r5+0x0C]
+            ; gcrRegs +[r6]
+            ldr     r0, [r5+0x14]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             mov     r1, r0
-            ldr     r0, [r5+0x04]
+            ldr     r0, [r6+0x04]
             ; gcrRegs +[r0]
-            ldr     r3, [r5+0x0C]
+            ldr     r3, [r6+0x0C]
             blx     r3        // <unknown method>
-            ; gcrRegs -[r0 r5]
+            ; gcrRegs -[r0 r6]
+            ; gcr arg pop 0
+            cmp     r0, 0
+            bne     SHORT G_M46418_IG06
+                       ;; size=28 bbWeight=0.25 PerfScore 3.00
+G_M46418_IG09:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r5+0x14]
+            ; gcrRegs +[r0]
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            ldr     r4, [sp+0x04]   // [V00 this]
-            ; gcrRegs +[r4]
             bne     SHORT G_M46418_IG08
-                       ;; size=32 bbWeight=2 PerfScore 28.00
-G_M46418_IG06:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r4+0x14]
-            ; gcrRegs +[r0]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            cmp     r0, 0
-            bne     SHORT G_M46418_IG05
-                       ;; size=18 bbWeight=4 PerfScore 28.00
-G_M46418_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            mov     r0, -1
-            ldr     r4, [sp+0x04]
-            ; gcrRegs +[r4]
-            str     r0, [r4+0x18]
-            ldr     r0, [r4+0x14]
-            ; gcrRegs +[r0]
-            cmp     r0, 0
-            beq     SHORT G_M46418_IG10
-            ldr     r0, [r4+0x14]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            ldr     r4, [sp+0x04]  // [V00 this]
-            ; gcrRegs +[r4]
-            b       SHORT G_M46418_IG10
-                       ;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M46418_IG08:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r4+0x14]
-            ; gcrRegs +[r0]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            ldr     r4, [sp+0x04]  // [V00 this]
-            ; gcrRegs +[r4]
-            str     r0, [r4+0x1C]
-            movs    r0, 1
-            str     r0, [r4+0x18]
-            b       SHORT G_M46418_IG11
-                       ;; size=24 bbWeight=0.50 PerfScore 5.00
-G_M46418_IG09:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            mvn     r0, 2
-            str     r0, [r4+0x18]
-            b       SHORT G_M46418_IG06
-                       ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M46418_IG10:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+                     ;; size=18 bbWeight=0.50 PerfScore 3.50
+G_M46418_IG10:        ; bbWeight=0.06, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M46418_IG05
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M46418_IG11:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             movs    r0, 0
-            str     r0, [r4+0x14]
+            str     r0, [r5+0x14]
                         ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M46418_IG11:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
-            ; gcrRegs -[r4]
+G_M46418_IG12:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
+            ; gcrRegs -[r5]
             ; GC ptr vars -{V00}
-            add     sp, 16
-            pop     {r4,r5,r11,pc}
+            add     sp, 12
+            pop     {r4,r5,r6,r11,pc}
                       ;; size=6 bbWeight=1 PerfScore 2.00
-G_M46418_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
-            push    {r2,r3,r4,r5,r11,lr}
+G_M46418_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+            push    {r3,r4,r5,r6,r11,lr}
             add     r3, r11, 8
...
  
-6 (-2.04%) : 663.dasm - System.Linq.Enumerable+d64`1[System.Canon]:MoveNext():ubyte:this (FullOpts)
@@ -8,10 +8,10 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 17, 15.75)     ref  ->  [sp+0x08]  this class-hnd EH-live single-def <System.Linq.Enumerable+<OfTypeIterator>d__64`1[System.__Canon]>
+;  V00 this         [V00,T00] ( 17,  8.75)     ref  ->  [sp+0x08]  this class-hnd EH-live single-def <System.Linq.Enumerable+<OfTypeIterator>d__64`1[System.__Canon]>
 ;  V01 loc0         [V01,T03] (  4,  2.50)   ubyte  ->   r0        
 ;  V02 loc1         [V02,T04] (  3,  2.50)     int  ->   r0        
-;  V03 loc2         [V03,T01] (  4,  4.62)     ref  ->   r5         class-hnd <<unknown class>>
+;  V03 loc2         [V03,T01] (  4,  1.12)     ref  ->   r4         class-hnd <<unknown class>>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.__Canon>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06,T06] (  3,  1.25)     int  ->   r3         "fgMakeTemp is creating a new local variable"
@@ -33,68 +33,129 @@ G_M56914_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             str     r0, [r11-0x14]
             str     r0, [sp+0x08]  // [V00 this]
             ; GC ptr vars +{V00}
-            mov     r4, r0
-            ; gcrRegs +[r4]
+            mov     r5, r0
+            ; gcrRegs +[r5]
                         ;; size=26 bbWeight=1 PerfScore 10.00
-G_M56914_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     r0, [r4+0x14]
+G_M56914_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     r0, [r5+0x14]
             cmp     r0, 0
             beq     SHORT G_M56914_IG04
                        ;; size=6 bbWeight=1 PerfScore 3.00
-G_M56914_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M56914_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             cmp     r0, 1
-            beq     SHORT G_M56914_IG12
+            beq     SHORT G_M56914_IG10
             movs    r0, 0
-            b       SHORT G_M56914_IG14
+            b       SHORT G_M56914_IG15
                      ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M56914_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M56914_IG04:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             mov     r0, -1
-            str     r0, [r4+0x14]
-            ldr     r0, [r4+0x08]
+            str     r0, [r5+0x14]
+            ldr     r0, [r5+0x08]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             str     r0, [sp+0x04]
-            ldr     r4, [sp+0x08]   // [V00 this]
-            ; gcrRegs +[r4]
-            add     r0, r4, 16
+            add     r0, r5, 16
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            ldr     r1, [sp+0x04] // [TEMP_01]
+            ldr     r1, [sp+0x04]
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            b       SHORT G_M56914_IG12
-                       ;; size=42 bbWeight=0.50 PerfScore 7.50
-G_M56914_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4]
-            ldr     r4, [sp+0x08]  // [V00 this]
+            b       SHORT G_M56914_IG10
+                       ;; size=40 bbWeight=0.50 PerfScore 7.00
+G_M56914_IG05:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r1, -1
+            str     r1, [r5+0x14]
+            ldr     r1, [r5+0x10]
+            ; gcrRegs +[r1]
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_ISINSTANCEOFINTERFACE
+            ; gcrRegs -[r1] +[r0]
+            ; gcr arg pop 0
+            cmp     r0, 0
+            beq     SHORT G_M56914_IG14
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            ; gcr arg pop 0
+            b       SHORT G_M56914_IG14
+                       ;; size=44 bbWeight=0.50 PerfScore 7.50
+G_M56914_IG06:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4]
-            ldr     r0, [r4+0x10]
+            mov     r1, r4
+            ; gcrRegs +[r1]
+            cmp     r1, 0
+            beq     SHORT G_M56914_IG09
+                       ;; size=6 bbWeight=0.50 PerfScore 1.50
+G_M56914_IG07:        ; bbWeight=0.25, gcrefRegs=0032 {r1 r4 r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r1]
+            ldr     r3, [r5]
+            ldr     r3, [r3+0x24]
+            ldr     r3, [r3]
+            ldr     r3, [r3]
+            cmp     r0, r3
+            beq     SHORT G_M56914_IG09
+                       ;; size=14 bbWeight=0.25 PerfScore 1.75
+G_M56914_IG08:        ; bbWeight=0.12, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r1]
+            mov     r0, r3
+            mov     r1, r4
+            ; gcrRegs +[r1]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_CHKCASTANY
+            ; gcrRegs -[r1 r4] +[r0]
+            ; gcr arg pop 0
+            mov     r1, r0
+            ; gcrRegs +[r1]
+                       ;; size=16 bbWeight=0.12 PerfScore 0.75
+G_M56914_IG09:        ; bbWeight=0.50, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0]
+            adds    r0, r5, 4
+            ; byrRegs +[r0]
+            movw    r12, 0xd1ff
+            movt    r12, 0xd1ff
+            blx     r12        // CORINFO_HELP_ASSIGN_REF
+            ; gcrRegs -[r1]
+            ; byrRegs -[r0]
+            movs    r1, 1
+            str     r1, [r5+0x14]
+            mov     r0, r1
+            b       SHORT G_M56914_IG15
+                       ;; size=20 bbWeight=0.50 PerfScore 4.00
+G_M56914_IG10:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mvn     r0, 2
+            str     r0, [r5+0x14]
+            b       SHORT G_M56914_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M56914_IG11:        ; bbWeight=0.25, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r5+0x10]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
-            mov     r5, r0
-            ; gcrRegs +[r5]
-            ldr     r4, [sp+0x08]  // [V00 this]
+            mov     r4, r0
             ; gcrRegs +[r4]
-            ldr     r0, [r4]
+            ldr     r0, [r5]
             ; gcrRegs -[r0]
             ldr     r0, [r0+0x24]
             ldr     r0, [r0]
             ldr     r0, [r0]
-            mov     r1, r5
+            mov     r1, r4
             ; gcrRegs +[r1]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -102,111 +163,39 @@ G_M56914_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs -[r1] +[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            bne     SHORT G_M56914_IG08
-                       ;; size=44 bbWeight=2 PerfScore 36.00
-G_M56914_IG06:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0 r5]
-            ldr     r0, [r4+0x10]
+            bne     SHORT G_M56914_IG06
+                       ;; size=40 bbWeight=0.25 PerfScore 4.00
+G_M56914_IG12:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0 r4]
+            ldr     r0, [r5+0x10]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            bne     SHORT G_M56914_IG05
-                       ;; size=18 bbWeight=4 PerfScore 28.00
-G_M56914_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            mov     r1, -1
-            ldr     r4, [sp+0x08]
-            ; gcrRegs +[r4]
-            str     r1, [r4+0x14]
-            ldr     r1, [r4+0x10]
-            ; gcrRegs +[r1]
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_ISINSTANCEOFINTERFACE
-            ; gcrRegs -[r1 r4] +[r0]
-            ; gcr arg pop 0
-            cmp     r0, 0
-            beq     SHORT G_M56914_IG13
-            movw    r4, 0xd1ff
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            b       SHORT G_M56914_IG13
-                       ;; size=46 bbWeight=0.50 PerfScore 8.00
-G_M56914_IG08:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r4-r5]
-            mov     r1, r5
-            ; gcrRegs +[r1]
-            cmp     r1, 0
-            beq     SHORT G_M56914_IG11
-                       ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M56914_IG09:        ; bbWeight=0.25, gcrefRegs=0032 {r1 r4 r5}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r1]
-            ldr     r3, [r4]
-            ldr     r3, [r3+0x24]
-            ldr     r3, [r3]
-            ldr     r3, [r3]
-            cmp     r0, r3
-            beq     SHORT G_M56914_IG11
-                       ;; size=14 bbWeight=0.25 PerfScore 1.75
-G_M56914_IG10:        ; bbWeight=0.12, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r1]
-            mov     r0, r3
-            mov     r1, r5
-            ; gcrRegs +[r1]
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_CHKCASTANY
-            ; gcrRegs -[r1 r5] +[r0]
-            ; gcr arg pop 0
-            mov     r1, r0
-            ; gcrRegs +[r1]
-                       ;; size=16 bbWeight=0.12 PerfScore 0.75
-G_M56914_IG11:        ; bbWeight=0.50, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0]
...
  
+46 (+67.65%) : 17314.dasm - System.Collections.Generic.SortedSet1[int]:FindNode(int):System.Collections.Generic.SortedSet1+Node[int]:this (FullOpts)
@@ -8,19 +8,19 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  7   )     ref  ->   r5         this class-hnd single-def <System.Collections.Generic.SortedSet`1[int]>
-;  V01 arg1         [V01,T04] (  3,  6   )     int  ->   r6         single-def
-;  V02 loc0         [V02,T00] (  8, 18.50)     ref  ->   r7         class-hnd <System.Collections.Generic.SortedSet`1+Node[int]>
-;  V03 loc1         [V03,T01] (  3, 12   )     int  ->   r0        
+;  V00 this         [V00,T03] (  5,  8   )     ref  ->   r5         this class-hnd single-def <System.Collections.Generic.SortedSet`1[int]>
+;  V01 arg1         [V01,T04] (  4,  7   )     int  ->   r6         single-def
+;  V02 loc0         [V02,T00] ( 13, 22.50)     ref  ->   r7         class-hnd <System.Collections.Generic.SortedSet`1+Node[int]>
+;  V03 loc1         [V03,T01] (  6, 15   )     int  ->   r0        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <<unknown class>>
-;  V06 tmp2         [V06,T03] (  3,  8   )     ref  ->   r0        
+;  V06 tmp2         [V06,T02] (  6, 10   )     ref  ->   r8        
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
 G_M47962_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r11,lr}
-            add     r11, sp, 16
+            push    {r3,r4,r5,r6,r7,r8,r11,lr}
+            add     r11, sp, 24
             mov     r5, r0
             ; gcrRegs +[r5]
             mov     r6, r1
@@ -29,9 +29,7 @@ G_M47962_IG02:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             ldr     r7, [r5+0x04]
             ; gcrRegs +[r7]
             cmp     r7, 0
-            beq     SHORT G_M47962_IG07
-                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M47962_IG03:        ; bbWeight=4, gcrefRegs=00A0 {r5 r7}, byrefRegs=0000 {}, byref, isz
+            beq     SHORT G_M47962_IG10
             ldr     r0, [r5+0x08]
             ; gcrRegs +[r0]
             ldr     r2, [r7+0x0C]
@@ -42,44 +40,77 @@ G_M47962_IG03:        ; bbWeight=4, gcrefRegs=00A0 {r5 r7}, byrefRegs=0000 {}, b
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             cmp     r0, 0
-            beq     SHORT G_M47962_IG09
+            beq     SHORT G_M47962_IG12
             cmp     r0, 0
-            blt     SHORT G_M47962_IG05
-                       ;; size=26 bbWeight=4 PerfScore 44.00
-G_M47962_IG04:        ; bbWeight=2, gcrefRegs=00A0 {r5 r7}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r7+0x08]
-            ; gcrRegs +[r0]
-            b       SHORT G_M47962_IG06
-                       ;; size=4 bbWeight=2 PerfScore 4.00
-G_M47962_IG05:        ; bbWeight=2, gcrefRegs=00A0 {r5 r7}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r0]
-            ldr     r0, [r7+0x04]
-            ; gcrRegs +[r0]
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M47962_IG06:        ; bbWeight=4, gcrefRegs=0021 {r0 r5}, byrefRegs=0000 {}, byref, isz
+            blt     SHORT G_M47962_IG04
+                       ;; size=32 bbWeight=1 PerfScore 14.00
+G_M47962_IG03:        ; bbWeight=0.50, gcrefRegs=00A0 {r5 r7}, byrefRegs=0000 {}, byref, isz
+            ldr     r8, [r7+0x08]
+            ; gcrRegs +[r8]
+            b       SHORT G_M47962_IG05
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M47962_IG04:        ; bbWeight=0.50, gcrefRegs=00A0 {r5 r7}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r8]
+            ldr     r8, [r7+0x04]
+            ; gcrRegs +[r8]
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
+G_M47962_IG05:        ; bbWeight=1, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r7]
-            mov     r7, r0
+            mov     r7, r8
             ; gcrRegs +[r7]
             cmp     r7, 0
-            bne     SHORT G_M47962_IG03
+            beq     SHORT G_M47962_IG10
+                       ;; size=6 bbWeight=1 PerfScore 3.00
+G_M47962_IG06:        ; bbWeight=4, gcrefRegs=00A0 {r5 r7}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r8]
+            ldr     r0, [r5+0x08]
+            ; gcrRegs +[r0]
+            ldr     r2, [r7+0x0C]
+            mov     r1, r6
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            cmp     r0, 0
+            beq     SHORT G_M47962_IG12
+            cmp     r0, 0
+            blt     SHORT G_M47962_IG08
+                       ;; size=26 bbWeight=4 PerfScore 44.00
+G_M47962_IG07:        ; bbWeight=2, gcrefRegs=00A0 {r5 r7}, byrefRegs=0000 {}, byref, isz
+            ldr     r8, [r7+0x08]
+            ; gcrRegs +[r8]
+            b       SHORT G_M47962_IG09
+                       ;; size=6 bbWeight=2 PerfScore 4.00
+G_M47962_IG08:        ; bbWeight=2, gcrefRegs=00A0 {r5 r7}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r8]
+            ldr     r8, [r7+0x04]
+            ; gcrRegs +[r8]
+                       ;; size=4 bbWeight=2 PerfScore 2.00
+G_M47962_IG09:        ; bbWeight=4, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r7]
+            mov     r7, r8
+            ; gcrRegs +[r7]
+            cmp     r7, 0
+            bne     SHORT G_M47962_IG06
                         ;; size=6 bbWeight=4 PerfScore 12.00
-G_M47962_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r0 r5 r7]
+G_M47962_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r5 r7-r8]
             movs    r0, 0
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M47962_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r4,r5,r6,r7,r11,pc}
+G_M47962_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r3,r4,r5,r6,r7,r8,r11,pc}
                      ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M47962_IG09:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, gcvars, byref
+G_M47962_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[r7]
             mov     r0, r7
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M47962_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r4,r5,r6,r7,r11,pc}
+G_M47962_IG13:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r3,r4,r5,r6,r7,r8,r11,pc}
                      ;; size=4 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 68, prolog size 8, PerfScore 71.00, instruction count 28, allocated bytes for code 68 (MethodHash=73ed44a5) for method System.Collections.Generic.SortedSet`1[int]:FindNode(int):System.Collections.Generic.SortedSet`1+Node[int]:this (FullOpts)
+; Total bytes of code 114, prolog size 8, PerfScore 86.50, instruction count 45, allocated bytes for code 114 (MethodHash=73ed44a5) for method System.Collections.Generic.SortedSet`1[int]:FindNode(int):System.Collections.Generic.SortedSet`1+Node[int]:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -91,7 +122,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 34 (0x00022) Actual length = 68 (0x000044)
+  Function Length   : 57 (0x00039) Actual length = 114 (0x000072)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -103,7 +134,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 F0       pop {r4,r5,r6,r7,r11,lr}            ; opsize 32
+    A9 F8       pop {r3,r4,r5,r6,r7,r8,r11,lr}      ; opsize 32
     FF          end
     FF          end
 
  
+36 (+69.23%) : 3630.dasm - Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
@@ -8,68 +8,111 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  6, 22   )     ref  ->   r4         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
+;  V00 this         [V00,T01] (  9, 22.50)     ref  ->   r4         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T00] (  3, 36   )     ref  ->   r0         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
+;  V02 tmp1         [V02,T00] (  6, 40.50)     ref  ->   r5         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
 ;* V03 tmp2         [V03    ] (  0,  0   )     ref  ->  zero-ref   
-;  V04 tmp3         [V04,T03] (  4, 14   )     int  ->   r3        
-;  V05 tmp4         [V05,T02] (  3, 18   )     int  ->   r0         "Inline stloc first use temp"
+;  V04 tmp3         [V04,T03] (  8, 15.75)     int  ->   r6        
+;  V05 tmp4         [V05,T02] (  6, 20.25)     int  ->   r3         "Inline stloc first use temp"
+;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   r7         "CSE - aggressive"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M16914_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r11,lr}
-            add     r11, sp, 8
+            push    {r4,r5,r6,r7,r11,lr}
+            add     r11, sp, 16
             mov     r4, r0
             ; gcrRegs +[r4]
                        ;; size=10 bbWeight=1 PerfScore 3.00
 G_M16914_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M16914_IG04
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M16914_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M16914_IG03:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r4]
-            ldr     r3, [r3+0x50]
-            ldr     r3, [r3+0x10]
+            ldr     r7, [r3+0x50]
+            ldr     r3, [r7+0x10]
             blx     r3        // <unknown method>
             ; gcrRegs -[r0]
-                      ;; size=10 bbWeight=2 PerfScore 10.00
-G_M16914_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r4+0x04]
-            ; gcrRegs +[r0]
-            cmp     r0, 0
+            b       SHORT G_M16914_IG12
+                       ;; size=12 bbWeight=0.25 PerfScore 1.50
+G_M16914_IG04:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r5, [r4+0x04]
+            ; gcrRegs +[r5]
+            cmp     r5, 0
             bne     SHORT G_M16914_IG06
-                     ;; size=6 bbWeight=8 PerfScore 24.00
-G_M16914_IG05:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0]
-            movs    r3, 0
+                        ;; size=6 bbWeight=1 PerfScore 3.00
+G_M16914_IG05:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            movs    r6, 0
             b       SHORT G_M16914_IG07
-                     ;; size=4 bbWeight=2 PerfScore 4.00
-G_M16914_IG06:        ; bbWeight=2, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[r0]
-            ldr     r3, [r0+0x08]
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M16914_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0]
-            mov     r0, r3
-            ldr     r2, [r4+0x30]
-            cmp     r2, 0
-            beq     SHORT G_M16914_IG09
-                       ;; size=8 bbWeight=8 PerfScore 32.00
-G_M16914_IG08:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
-            adds    r0, r3, 1
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M16914_IG09:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+                       ;; size=4 bbWeight=0.25 PerfScore 0.50
+G_M16914_IG06:        ; bbWeight=0.25, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r5]
+            ldr     r6, [r5+0x08]
+                       ;; size=2 bbWeight=0.25 PerfScore 0.25
+G_M16914_IG07:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            mov     r3, r6
+            ldr     r0, [r4+0x30]
             cmp     r0, 0
+            beq     SHORT G_M16914_IG09
+                       ;; size=8 bbWeight=1 PerfScore 4.00
+G_M16914_IG08:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            adds    r3, r6, 1
+                       ;; size=2 bbWeight=0.25 PerfScore 0.25
+G_M16914_IG09:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
             bgt     SHORT G_M16914_IG03
-                     ;; size=4 bbWeight=8 PerfScore 16.00
-G_M16914_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+                        ;; size=4 bbWeight=1 PerfScore 2.00
+G_M16914_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r4]
-            pop     {r3,r4,r11,pc}
+            b       SHORT G_M16914_IG18
+                       ;; size=2 bbWeight=0.12 PerfScore 0.12
+G_M16914_IG11:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r4]
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            ldr     r3, [r7+0x10]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+                       ;; size=6 bbWeight=2 PerfScore 6.00
+G_M16914_IG12:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r5, [r4+0x04]
+            ; gcrRegs +[r5]
+            cmp     r5, 0
+            bne     SHORT G_M16914_IG14
+                       ;; size=6 bbWeight=8 PerfScore 24.00
+G_M16914_IG13:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            movs    r6, 0
+            b       SHORT G_M16914_IG15
+                       ;; size=4 bbWeight=2 PerfScore 4.00
+G_M16914_IG14:        ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r5]
+            ldr     r6, [r5+0x08]
+                       ;; size=2 bbWeight=2 PerfScore 2.00
+G_M16914_IG15:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            mov     r3, r6
+            ldr     r0, [r4+0x30]
+            cmp     r0, 0
+            beq     SHORT G_M16914_IG17
+                       ;; size=8 bbWeight=8 PerfScore 32.00
+G_M16914_IG16:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            adds    r3, r6, 1
+                       ;; size=2 bbWeight=2 PerfScore 2.00
+G_M16914_IG17:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
+            bgt     SHORT G_M16914_IG11
+                       ;; size=4 bbWeight=8 PerfScore 16.00
+G_M16914_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[r4]
+            pop     {r4,r5,r6,r7,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 52, prolog size 8, PerfScore 95.00, instruction count 23, allocated bytes for code 52 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
+; Total bytes of code 88, prolog size 8, PerfScore 102.62, instruction count 41, allocated bytes for code 88 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -81,11 +124,11 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 52 (0x000034)
+  Function Length   : 44 (0x0002c) Actual length = 88 (0x000058)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
+    A8 F0       pop {r4,r5,r6,r7,r11,lr}            ; opsize 32
     FF          end
     FF          end
 
  
+38 (+70.37%) : 15078.dasm - Jil.Deserialize.Methods:_ConsumeWhiteSpace(System.IO.TextReader) (FullOpts)
@@ -8,13 +8,13 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5, 13   )     ref  ->   r4         class-hnd single-def <System.IO.TextReader>
+;  V00 arg0         [V00,T01] (  7, 14.25)     ref  ->   r4         class-hnd single-def <System.IO.TextReader>
 ;* V01 loc0         [V01    ] (  0,  0   )     int  ->  zero-ref   
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T00] (  6, 48   )     int  ->   r0         "dup spill"
-;* V04 tmp2         [V04,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V05 cse0         [V05,T02] (  3, 11   )     int  ->   r5         hoist "CSE - aggressive"
-;  V06 cse1         [V06,T03] (  2,  2   )     int  ->   r0         hoist "CSE - aggressive"
+;  V03 tmp1         [V03,T00] ( 12, 54   )     int  ->   r0         "dup spill"
+;* V04 tmp2         [V04,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V05 cse0         [V05,T02] (  5, 12.25)     int  ->   r5         "CSE - aggressive"
+;  V06 cse1         [V06,T04] (  2,  2   )     int  ->   r3         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -25,11 +25,9 @@ G_M13758_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[r4]
                        ;; size=10 bbWeight=1 PerfScore 3.00
 G_M13758_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r4]
-            ldr     r5, [r0+0x30]
             b       SHORT G_M13758_IG05
-                     ;; size=6 bbWeight=1 PerfScore 3.00
-G_M13758_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+                       ;; size=2 bbWeight=1 PerfScore 1.00
+G_M13758_IG03:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             cmp     r0, 32
             beq     SHORT G_M13758_IG04
             cmp     r0, 9
@@ -37,30 +35,64 @@ G_M13758_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             cmp     r0, 10
             beq     SHORT G_M13758_IG04
             cmp     r0, 13
-            bne     SHORT G_M13758_IG06
+            bne     SHORT G_M13758_IG10
+                       ;; size=16 bbWeight=0.25 PerfScore 2.00
+G_M13758_IG04:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            ldr     r3, [r5+0x04]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            b       SHORT G_M13758_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 1.00
+G_M13758_IG05:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            ldr     r3, [r4]
+            ldr     r5, [r3+0x30]
+            ldr     r3, [r5]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            cmp     r0, -1
+            bne     SHORT G_M13758_IG03
+                       ;; size=16 bbWeight=1 PerfScore 7.00
+G_M13758_IG06:        ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r4]
+            b       SHORT G_M13758_IG10
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M13758_IG07:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r4]
+            cmp     r0, 32
+            beq     SHORT G_M13758_IG08
+            cmp     r0, 9
+            beq     SHORT G_M13758_IG08
+            cmp     r0, 10
+            beq     SHORT G_M13758_IG08
+            cmp     r0, 13
+            bne     SHORT G_M13758_IG10
                         ;; size=16 bbWeight=2 PerfScore 16.00
-G_M13758_IG04:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M13758_IG08:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r5+0x04]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
                        ;; size=6 bbWeight=2 PerfScore 6.00
-G_M13758_IG05:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M13758_IG09:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r5]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             cmp     r0, -1
-            bne     SHORT G_M13758_IG03
+            bne     SHORT G_M13758_IG07
                        ;; size=12 bbWeight=8 PerfScore 40.00
-G_M13758_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M13758_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r4]
             pop     {r4,r5,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 54, prolog size 8, PerfScore 69.00, instruction count 23, allocated bytes for code 54 (MethodHash=993cca41) for method Jil.Deserialize.Methods:_ConsumeWhiteSpace(System.IO.TextReader) (FullOpts)
+; Total bytes of code 92, prolog size 8, PerfScore 77.06, instruction count 41, allocated bytes for code 92 (MethodHash=993cca41) for method Jil.Deserialize.Methods:_ConsumeWhiteSpace(System.IO.TextReader) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -72,7 +104,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 27 (0x0001b) Actual length = 54 (0x000036)
+  Function Length   : 46 (0x0002e) Actual length = 92 (0x00005c)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
  
benchmarks.run_pgo.linux.arm.checked.mch
-8 (-12.90%) : 74932.dasm - Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
@@ -10,20 +10,20 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Struct.SpanWrapper>
 ;  V01 arg1         [V01,T05] (  4,  4   )  struct ( 8) [sp+0x08]  do-not-enreg[S] ld-addr-op single-def <Struct.SpanWrapper`1[int]>
-;  V02 loc0         [V02,T03] (  4,  9   )     int  ->   r0        
+;  V02 loc0         [V02,T04] (  5,  9.25)     int  ->   r0        
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (12) zero-ref    do-not-enreg[SF] ld-addr-op <System.ReadOnlySpan`1+Enumerator[int]>
 ;* V04 loc2         [V04    ] (  0,  0   )     int  ->  zero-ref   
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (12) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1+Enumerator[int]>
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Span.get_Item index"
-;* V09 tmp4         [V09,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V09 tmp4         [V09,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V10 tmp5         [V10,T00] (  3, 20   )     int  ->   r1         "Inline stloc first use temp"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V12 tmp7         [V12    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x4)" P-INDEP
-;  V13 tmp8         [V13,T06] (  2,  3   )   byref  ->   r3         single-def "V03.[000..004)"
-;  V14 tmp9         [V14,T02] (  3, 11   )     int  ->   r2         single-def "V03.[004..008)"
-;  V15 tmp10        [V15,T01] (  5, 17   )     int  ->   r1         "V03.[008..012)"
+;  V13 tmp8         [V13,T06] (  3,  3.25)   byref  ->   r3         single-def "V03.[000..004)"
+;  V14 tmp9         [V14,T02] (  3, 10   )     int  ->   r2         single-def "V03.[004..008)"
+;  V15 tmp10        [V15,T01] (  4, 14.50)     int  ->   r1         "V03.[008..012)"
 ;  V16 tmp11        [V16,T07] (  2,  2   )   byref  ->   r3         single-def "V06.[000..004)"
 ;  V17 tmp12        [V17,T08] (  2,  2   )     int  ->   r2         single-def "V06.[004..008)"
 ;* V18 tmp13        [V18    ] (  0,  0   )     int  ->  zero-ref    "V06.[008..012)"
@@ -40,39 +40,41 @@ G_M19652_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldr     r3, [sp+0x08]
             ; byrRegs +[r3]
             ldr     r2, [sp+0x0C]
-            mov     r1, -1
             b       SHORT G_M19652_IG04
-                     ;; size=12 bbWeight=1 PerfScore 5.00
-G_M19652_IG03:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
-            cmp     r1, r2
-            bhs     SHORT G_M19652_IG07
+                      ;; size=8 bbWeight=1 PerfScore 4.00
+G_M19652_IG03:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+            ldr     r0, [r3]
+            b       SHORT G_M19652_IG07
+                       ;; size=4 bbWeight=0.25 PerfScore 0.50
+G_M19652_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+            cmp     r2, 0
+            ble     SHORT G_M19652_IG09
+                       ;; size=4 bbWeight=1 PerfScore 2.00
+G_M19652_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+            movs    r1, 0
+            b       SHORT G_M19652_IG03
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M19652_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref
             lsl     lr, r1, 2
             ldr     lr, [r3+lr]
             add     r0, lr
-                       ;; size=14 bbWeight=2 PerfScore 10.00
-G_M19652_IG04:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+                       ;; size=10 bbWeight=2 PerfScore 6.00
+G_M19652_IG07:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
             adds    r1, r1, 1
             cmp     r1, r2
-            bge     SHORT G_M19652_IG06
+            bge     SHORT G_M19652_IG09
                        ;; size=6 bbWeight=8 PerfScore 24.00
-G_M19652_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
-            b       SHORT G_M19652_IG03
+G_M19652_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+            b       SHORT G_M19652_IG06
                         ;; size=2 bbWeight=4 PerfScore 4.00
-G_M19652_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M19652_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[r3]
             pop     {r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=4 PerfScore 12.00
-G_M19652_IG07:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_RNGCHKFAIL
-            ; gcr arg pop 0
-            bkpt    
-                       ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 62, prolog size 8, PerfScore 58.00, instruction count 24, allocated bytes for code 62 (MethodHash=47afb33b) for method Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
+; Total bytes of code 54, prolog size 8, PerfScore 56.50, instruction count 23, allocated bytes for code 54 (MethodHash=47afb33b) for method Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -84,7 +86,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 31 (0x0001f) Actual length = 62 (0x00003e)
+  Function Length   : 27 (0x0001b) Actual length = 54 (0x000036)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
-12 (-5.17%) : 34936.dasm - Sigil.Impl.LinqAlternative+<Where>d_2`1[int]:MoveNext():ubyte:this (Tier0-FullOpts)
@@ -8,167 +8,152 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 18, 16.50)     ref  ->  [sp+0x04]  this class-hnd EH-live single-def <Sigil.Impl.LinqAlternative+<_Where>d__2`1[int]>
+;  V00 this         [V00,T00] ( 17,  9   )     ref  ->  [sp+0x04]  this class-hnd EH-live single-def <Sigil.Impl.LinqAlternative+<_Where>d__2`1[int]>
 ;  V01 loc0         [V01,T03] (  4,  2.50)   ubyte  ->   r0        
 ;  V02 loc1         [V02,T04] (  3,  2.50)     int  ->   r0         single-def
 ;# 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 "non-inline candidate call" <<unknown class>>
-;  V05 tmp2         [V05,T02] (  2,  8   )     int  ->   r1         "argument with side effect"
-;  V06 tmp3         [V06,T01] (  3, 12   )     ref  ->   r5         "argument with side effect"
-;  V07 PSPSym       [V07,T05] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
+;  V05 tmp2         [V05,T02] (  2,  1   )     int  ->   r1         "argument with side effect"
+;  V06 tmp3         [V06,T01] (  3,  1.50)     ref  ->   r6         "argument with side effect"
+;  V07 PSPSym       [V07,T06] (  1,  1   )     int  ->  [sp+0x08]  do-not-enreg[V] "PSPSym"
+;  V08 cse0         [V08,T05] (  5,  2   )     ref  ->   r0         multi-def "CSE - aggressive"
 ;  TEMP_01                                     ref  ->  [r11-0x18]
 ;
-; Lcl frame size = 16
+; Lcl frame size = 12
 
 G_M46418_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r4,r5,r11,lr}
-            sub     sp, 16
+            push    {r4,r5,r6,r11,lr}
+            sub     sp, 12
             add     r11, sp, 24
             movs    r1, 0
             str     r1, [sp]   // [TEMP_01]
             add     r1, sp, 32
-            str     r1, [sp+0x0C]  // [V07 PSPSym]
+            str     r1, [sp+0x08]  // [V07 PSPSym]
             str     r0, [sp+0x04]    // [V00 this]
             ; GC ptr vars +{V00}
-            mov     r4, r0
-            ; gcrRegs +[r4]
+            mov     r5, r0
+            ; gcrRegs +[r5]
                         ;; size=22 bbWeight=1 PerfScore 9.00
-G_M46418_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     r0, [r4+0x18]
+G_M46418_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     r0, [r5+0x18]
             cmp     r0, 0
             beq     SHORT G_M46418_IG04
                        ;; size=6 bbWeight=1 PerfScore 3.00
-G_M46418_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M46418_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             cmp     r0, 1
-            beq     SHORT G_M46418_IG09
+            beq     SHORT G_M46418_IG07
             movs    r0, 0
-            b       SHORT G_M46418_IG11
+            b       SHORT G_M46418_IG12
                      ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M46418_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M46418_IG04:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             mov     r0, -1
-            str     r0, [r4+0x18]
-            ldr     r0, [r4+0x04]
+            str     r0, [r5+0x18]
+            ldr     r0, [r5+0x04]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             str     r0, [sp]
-            ldr     r4, [sp+0x04]    // [V00 this]
-            ; gcrRegs +[r4]
-            add     r0, r4, 20
+            add     r0, r5, 20
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            ldr     r1, [sp]  // [TEMP_01]
+            ldr     r1, [sp]
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            b       SHORT G_M46418_IG09
-                       ;; size=42 bbWeight=0.50 PerfScore 7.50
-G_M46418_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4]
-            ldr     r4, [sp+0x04]  // [V00 this]
-            ; gcrRegs +[r4]
-            ldr     r5, [r4+0x0C]
-            ; gcrRegs +[r5]
-            ldr     r0, [r4+0x14]
+            b       SHORT G_M46418_IG07
+                       ;; size=40 bbWeight=0.50 PerfScore 7.00
+G_M46418_IG05:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r0, -1
+            str     r0, [r5+0x18]
+            ldr     r0, [r5+0x14]
+            ; gcrRegs +[r0]
+            cmp     r0, 0
+            beq     SHORT G_M46418_IG11
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            ; gcr arg pop 0
+            b       SHORT G_M46418_IG11
+                       ;; size=26 bbWeight=0.50 PerfScore 5.00
+G_M46418_IG06:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r5+0x14]
+            ; gcrRegs +[r0]
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            ; gcr arg pop 0
+            str     r0, [r5+0x1C]
+            movs    r0, 1
+            str     r0, [r5+0x18]
+            b       SHORT G_M46418_IG12
+                       ;; size=22 bbWeight=0.50 PerfScore 4.50
+G_M46418_IG07:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mvn     r0, 2
+            str     r0, [r5+0x18]
+            b       SHORT G_M46418_IG09
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M46418_IG08:        ; bbWeight=0.25, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r6, [r5+0x0C]
+            ; gcrRegs +[r6]
+            ldr     r0, [r5+0x14]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             mov     r1, r0
-            ldr     r0, [r5+0x04]
+            ldr     r0, [r6+0x04]
             ; gcrRegs +[r0]
-            ldr     r3, [r5+0x0C]
+            ldr     r3, [r6+0x0C]
             blx     r3        // <unknown method>
-            ; gcrRegs -[r0 r5]
+            ; gcrRegs -[r0 r6]
+            ; gcr arg pop 0
+            cmp     r0, 0
+            bne     SHORT G_M46418_IG06
+                       ;; size=28 bbWeight=0.25 PerfScore 3.00
+G_M46418_IG09:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r5+0x14]
+            ; gcrRegs +[r0]
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            ldr     r4, [sp+0x04]   // [V00 this]
-            ; gcrRegs +[r4]
             bne     SHORT G_M46418_IG08
-                       ;; size=32 bbWeight=2 PerfScore 28.00
-G_M46418_IG06:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r4+0x14]
-            ; gcrRegs +[r0]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            cmp     r0, 0
-            bne     SHORT G_M46418_IG05
-                       ;; size=18 bbWeight=4 PerfScore 28.00
-G_M46418_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            mov     r0, -1
-            ldr     r4, [sp+0x04]
-            ; gcrRegs +[r4]
-            str     r0, [r4+0x18]
-            ldr     r0, [r4+0x14]
-            ; gcrRegs +[r0]
-            cmp     r0, 0
-            beq     SHORT G_M46418_IG10
-            ldr     r0, [r4+0x14]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            ldr     r4, [sp+0x04]  // [V00 this]
-            ; gcrRegs +[r4]
-            b       SHORT G_M46418_IG10
-                       ;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M46418_IG08:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r4+0x14]
-            ; gcrRegs +[r0]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            ldr     r4, [sp+0x04]  // [V00 this]
-            ; gcrRegs +[r4]
-            str     r0, [r4+0x1C]
-            movs    r0, 1
-            str     r0, [r4+0x18]
-            b       SHORT G_M46418_IG11
-                       ;; size=24 bbWeight=0.50 PerfScore 5.00
-G_M46418_IG09:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            mvn     r0, 2
-            str     r0, [r4+0x18]
-            b       SHORT G_M46418_IG06
-                       ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M46418_IG10:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+                     ;; size=18 bbWeight=0.50 PerfScore 3.50
+G_M46418_IG10:        ; bbWeight=0.06, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M46418_IG05
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M46418_IG11:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             movs    r0, 0
-            str     r0, [r4+0x14]
+            str     r0, [r5+0x14]
                         ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M46418_IG11:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
-            ; gcrRegs -[r4]
+G_M46418_IG12:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
+            ; gcrRegs -[r5]
             ; GC ptr vars -{V00}
-            add     sp, 16
-            pop     {r4,r5,r11,pc}
+            add     sp, 12
+            pop     {r4,r5,r6,r11,pc}
                       ;; size=6 bbWeight=1 PerfScore 2.00
-G_M46418_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
-            push    {r2,r3,r4,r5,r11,lr}
+G_M46418_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+            push    {r3,r4,r5,r6,r11,lr}
             add     r3, r11, 8
...
  
-36 (-4.41%) : 88336.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],byref,ubyte,ubyte):System.Runtime.CompilerServices.StrongBox1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]:this (Tier0-FullOpts)
@@ -8,57 +8,57 @@
 ; 2 inlinees with PGO data; 11 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T10] (  6,  6   )     ref  ->   r5         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder>
-;  V01 arg1         [V01,T20] (  3,  3   )     ref  ->   r6         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode>
-;  V02 arg2         [V02    ] (  5,  5   )  struct ( 4) [sp+0x54]  ld-addr-op single-def <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax]>
-;  V03 arg3         [V03,T09] ( 10,  6   )   byref  ->   r4         single-def
-;  V04 arg4         [V04,T30] (  1,  2   )   ubyte  ->   r7         single-def
-;  V05 arg5         [V05,T31] (  1,  1   )   ubyte  ->  [sp+0x5C]  single-def
-;  V06 loc0         [V06,T11] (  5, 11   )   ubyte  ->   r8        
-;  V07 loc1         [V07,T12] (  5,  8   )   ubyte  ->   r9        
-;  V08 loc2         [V08,T13] (  5,  8   )   ubyte  ->  r10        
-;  V09 loc3         [V09,T14] (  5,  8   )   ubyte  ->  [sp+0x2C] 
+;  V00 this         [V00,T16] (  6,  6   )     ref  ->   r5         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder>
+;  V01 arg1         [V01,T22] (  3,  3   )     ref  ->   r6         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode>
+;  V02 arg2         [V02    ] (  5,  5   )  struct ( 4) [sp+0x4C]  ld-addr-op single-def <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax]>
+;  V03 arg3         [V03,T15] ( 10,  6   )   byref  ->   r4         single-def
+;  V04 arg4         [V04,T27] (  1,  0.25)   ubyte  ->  [sp+0x50]  single-def
+;  V05 arg5         [V05,T31] (  1,  1   )   ubyte  ->  [sp+0x54]  single-def
+;  V06 loc0         [V06,T11] (  5,  2.75)   ubyte  ->   r7        
+;  V07 loc1         [V07,T12] (  5,  2.75)   ubyte  ->   r8        
+;  V08 loc2         [V08,T13] (  5,  2.75)   ubyte  ->   r9        
+;  V09 loc3         [V09,T14] (  5,  2.75)   ubyte  ->  r10        
 ;* V10 loc4         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax]>
 ;* V11 loc5         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax>
 ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V13 tmp1         [V13,T22] (  2,  4   )     ref  ->   r3         class-hnd single-def "dup spill" <<unknown class>>
+;  V13 tmp1         [V13,T23] (  2,  4   )     ref  ->   r3         class-hnd single-def "dup spill" <<unknown class>>
 ;* V14 tmp2         [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V15 tmp3         [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;  V16 tmp4         [V16,T25] (  4,  3.50)     ref  ->   r3        
 ;* V17 tmp5         [V17    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],ubyte]>
-;  V18 tmp6         [V18,T19] (  5,  5   )     ref  ->  [sp+0x0C]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+;  V18 tmp6         [V18,T21] (  5,  5   )     ref  ->  [sp+0x08]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
 ;* V19 tmp7         [V19    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax]>
 ;* V20 tmp8         [V20    ] (  0,  0   )  struct ( 4) zero-ref    "Inlining Arg" <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax]>
-;  V21 tmp9         [V21,T04] (  7, 14   )     ref  ->  [sp+0x08]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax>
+;  V21 tmp9         [V21,T03] (  7,  1.75)     ref  ->  [sp+0x04]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax>
 ;* V22 tmp10        [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp11        [V23    ] (  0,  0   )     ref  ->  zero-ref    "CASTCLASS eval op1"
-;  V24 tmp12        [V24,T08] (  3,  9   )     int  ->   r1         "fgMakeTemp is creating a new local variable"
-;  V25 tmp13        [V25,T06] (  2,  8   )     ref  ->   r0         class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax>
-;  V26 tmp14        [V26,T07] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V27 tmp15        [V27,T21] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
-;  V28 tmp16        [V28,T03] (  5, 15   )     ref  ->  r12         class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax>
+;  V24 tmp12        [V24,T19] (  3,  1.12)     int  ->   r1         "fgMakeTemp is creating a new local variable"
+;  V25 tmp13        [V25,T09] (  2,  1   )     ref  ->   r0         class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax>
+;  V26 tmp14        [V26,T05] (  3,  1.12)     ref  ->   r1         "CASTCLASS eval op1"
+;  V27 tmp15        [V27,T20] (  3,  0.62)     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V28 tmp16        [V28,T08] (  5,  1.88)     ref  ->   lr         class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax>
 ;* V29 tmp17        [V29    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax>
 ;* V30 tmp18        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
-;* V31 tmp19        [V31,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V32 tmp20        [V32,T15] (  4,  8   )  ushort  ->   r0         "Inline stloc first use temp"
-;* V33 tmp21        [V33,T16] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V34 tmp22        [V34,T01] (  3, 20   )     int  ->  [sp+0x28]  spill-single-def "Inline stloc first use temp"
-;  V35 tmp23        [V35,T05] (  4, 14   )     int  ->   r0         "Inline return value spill temp"
+;* V31 tmp19        [V31,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V32 tmp20        [V32,T10] (  4,  1   )  ushort  ->   r0         "Inline stloc first use temp"
+;* V33 tmp21        [V33,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V34 tmp22        [V34,T01] (  3,  2.50)     int  ->  [sp+0x24]  spill-single-def "Inline stloc first use temp"
+;  V35 tmp23        [V35,T06] (  4,  1.75)     int  ->   r0         "Inline return value spill temp"
 ;* V36 tmp24        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
 ;* V37 tmp25        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
-;  V38 tmp26        [V38,T18] (  4,  6   )     int  ->   r0         "Inline stloc first use temp"
+;  V38 tmp26        [V38,T18] (  4,  0.75)     int  ->   r0         "Inline stloc first use temp"
 ;  V39 tmp27        [V39,T26] (  3,  3   )     ref  ->   r3         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V40 tmp28        [V40    ] (  0,  0   )  struct ( 4) zero-ref    "Inlining Arg" <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax]>
-;  V41 tmp29        [V41    ] (  6,  6   )  struct (20) [sp+0x14]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder+<>c__DisplayClass40_0`1[System.ValueTuple`2[Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],ubyte]]>
+;  V41 tmp29        [V41    ] (  6,  6   )  struct (20) [sp+0x10]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder+<>c__DisplayClass40_0`1[System.ValueTuple`2[Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],ubyte]]>
 ;* V42 tmp30        [V42    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.ValueTuple`2[Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],ubyte]>
-;  V43 tmp31        [V43,T23] (  2,  4   )     ref  ->   r0         class-hnd single-def "impAppendStmt" <System.Runtime.CompilerServices.StrongBox`1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]>
-;  V44 tmp32        [V44,T17] (  5,  5   )     ref  ->  [sp+0x54]  do-not-enreg[] single-def "field V02._node (fldOffset=0x0)" P-DEP
-;  V45 tmp33        [V45,T02] (  5, 17   )     int  ->  [sp+0x10]  "field V10._index (fldOffset=0x0)" P-INDEP
-;  V46 tmp34        [V46,T00] ( 13, 25.50)     ref  ->  [sp+0x04]  spill-single-def "field V10._list (fldOffset=0x4)" P-INDEP
-;  V47 tmp35        [V47,T29] (  2,  2   )   ubyte  ->   r0         single-def "field V17.Item2 (fldOffset=0x0)" P-INDEP
-;  V48 tmp36        [V48,T27] (  2,  2   )     ref  ->   r2         single-def "field V17.Item1 (fldOffset=0x4)" P-INDEP
+;  V43 tmp31        [V43,T24] (  2,  4   )     ref  ->   r0         class-hnd single-def "impAppendStmt" <System.Runtime.CompilerServices.StrongBox`1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]>
+;  V44 tmp32        [V44,T17] (  5,  5   )     ref  ->  [sp+0x4C]  do-not-enreg[] single-def "field V02._node (fldOffset=0x0)" P-DEP
+;  V45 tmp33        [V45,T02] (  5,  3   )     int  ->  [sp+0x0C]  "field V10._index (fldOffset=0x0)" P-INDEP
+;  V46 tmp34        [V46,T00] ( 13,  4.06)     ref  ->  [sp+0x00]  spill-single-def "field V10._list (fldOffset=0x4)" P-INDEP
+;  V47 tmp35        [V47,T30] (  2,  2   )   ubyte  ->   r0         single-def "field V17.Item2 (fldOffset=0x0)" P-INDEP
+;  V48 tmp36        [V48,T28] (  2,  2   )     ref  ->   r2         single-def "field V17.Item1 (fldOffset=0x4)" P-INDEP
 ;* V49 tmp37        [V49,T32] (  0,  0   )     int  ->  zero-ref    single-def "field V19._index (fldOffset=0x0)" P-INDEP
-;  V50 tmp38        [V50,T28] (  2,  2   )     ref  ->   r2         single-def "field V19._list (fldOffset=0x4)" P-INDEP
+;  V50 tmp38        [V50,T29] (  2,  2   )     ref  ->   r3         single-def "field V19._list (fldOffset=0x4)" P-INDEP
 ;* V51 tmp39        [V51    ] (  0,  0   )     ref  ->  zero-ref    "field V20._node (fldOffset=0x0)" P-INDEP
 ;* V52 tmp40        [V52    ] (  0,  0   )     ref  ->  zero-ref    "field V40._node (fldOffset=0x0)" P-INDEP
 ;* V53 tmp41        [V53    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V42.Item2 (fldOffset=0x0)" P-INDEP
@@ -66,14 +66,14 @@
 ;  V55 tmp43        [V55,T34] (  2,  0   )     ref  ->   r0         "argument with side effect"
 ;* V56 cse0         [V56,T33] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 40
 
 G_M61567_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r2}
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 48
-            add     r11, sp, 76
-            sub     r5, r11, 56
+            sub     sp, 40
+            add     r11, sp, 68
+            sub     r5, r11, 52
             movs    r2, 0
             movs    r4, 0
             stm     r5!, {r2,r4}
@@ -85,83 +85,80 @@ G_M61567_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[r6]
             mov     r4, r3
             ; byrRegs +[r4]
-            ldr     r7, [sp+0x58] // [V04 arg4]
-                       ;; size=34 bbWeight=1 PerfScore 14.00
+                     ;; size=32 bbWeight=1 PerfScore 13.00
 G_M61567_IG02:        ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0010 {r4}, byref, isz
+            movs    r7, 0
             mov     r8, 0
             mov     r9, 0
             mov     r10, 0
-            movs    r3, 0
-            str     r3, [sp+0x2C]  // [V09 loc3]
-            ldr     r2, [sp+0x54]  // [V44 tmp32]
-            ; gcrRegs +[r2]
-            mov     lr, -1
-            str     r2, [sp+0x04]  // [V46 tmp34]
+            ldr     r3, [sp+0x4C]
+            ; gcrRegs +[r3]
+            mov     r2, -1
+            str     r3, [sp]
             ; GC ptr vars +{V46}
             b       SHORT G_M61567_IG18
-                      ;; size=26 bbWeight=1 PerfScore 9.00
-G_M61567_IG03:        ; bbWeight=2, gcVars=0000000000000001 {V46}, gcrefRegs=0064 {r2 r5 r6}, byrefRegs=0010 {r4}, gcvars, byref, isz
-            cmp     r2, 0
+                        ;; size=24 bbWeight=1 PerfScore 8.00
+G_M61567_IG03:        ; bbWeight=0.25, gcVars=0000000000000001 {V46}, gcrefRegs=0068 {r3 r5 r6}, byrefRegs=0010 {r4}, gcvars, byref, isz
+            cmp     r3, 0
             bne     SHORT G_M61567_IG04
-            mov     r12, 0
+            mov     lr, 0
             b       SHORT G_M61567_IG11
-                       ;; size=10 bbWeight=2 PerfScore 8.00
-G_M61567_IG04:        ; bbWeight=2, gcrefRegs=0064 {r2 r5 r6}, byrefRegs=0010 {r4}, byref, isz
-            ldrh    r0, [r2+0x08]
+                        ;; size=10 bbWeight=0.25 PerfScore 1.00
+G_M61567_IG04:        ; bbWeight=0.25, gcrefRegs=0068 {r3 r5 r6}, byrefRegs=0010 {r4}, byref, isz
+            ldrh    r0, [r3+0x08]
             cmp     r0, 1
             bne     SHORT G_M61567_IG08
-            mov     r0, r2
+            mov     r0, r3
             ; gcrRegs +[r0]
-            str     lr, [sp+0x10]  // [V45 tmp33]
-            mov     r1, lr
-            ldr     r12, [r2]
-            ldr     r12, [r12+0x30]
-            ldr     r12, [r12+0x10]
-            blx     r12        // <unknown method>
-            ; gcrRegs -[r2]
+            str     r2, [sp+0x0C]
+            mov     r1, r2
+            ldr     lr, [r3]
+            ldr     lr, [lr+0x30]
+            ldr     lr, [lr+0x10]
+            blx     lr     // <unknown method>
+            ; gcrRegs -[r3]
             ; gcr arg pop 0
             mov     r1, r0
             ; gcrRegs +[r1]
-            mov     r12, r1
-            ; gcrRegs +[r12]
-            cmp     r12, 0
+            mov     lr, r1
+            ; gcrRegs +[lr]
+            cmp     lr, 0
             beq     SHORT G_M61567_IG07
-                     ;; size=38 bbWeight=2 PerfScore 28.00
-G_M61567_IG05:        ; bbWeight=1, gcrefRegs=1062 {r1 r5 r6 r12}, byrefRegs=0010 {r4}, byref, isz
+                       ;; size=36 bbWeight=0.25 PerfScore 3.50
+G_M61567_IG05:        ; bbWeight=0.12, gcrefRegs=4062 {r1 r5 r6 lr}, byrefRegs=0010 {r4}, byref, isz
             ; gcrRegs -[r0]
-            ldr     r0, [r12]
+            ldr     r0, [lr]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             cmp     r0, r3
             beq     SHORT G_M61567_IG07
-                      ;; size=16 bbWeight=1 PerfScore 5.00
-G_M61567_IG06:        ; bbWeight=0.50, gcrefRegs=0062 {r1 r5 r6}, byrefRegs=0010 {r4}, byref
-            ; gcrRegs -[r12]
+                     ;; size=16 bbWeight=0.12 PerfScore 0.62
+G_M61567_IG06:        ; bbWeight=0.06, gcrefRegs=0062 {r1 r5 r6}, byrefRegs=0010 {r4}, byref
+            ; gcrRegs -[lr]
             mov     r0, r3
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_CHKCASTCLASS_SPECIAL
             ; gcrRegs -[r1] +[r0]
             ; gcr arg pop 0
-            mov     r12, r0
-            ; gcrRegs +[r12]
-                       ;; size=14 bbWeight=0.50 PerfScore 2.50
-G_M61567_IG07:        ; bbWeight=2, gcrefRegs=1060 {r5 r6 r12}, byrefRegs=0010 {r4}, byref, isz
+            mov     lr, r0
+            ; gcrRegs +[lr]
+                       ;; size=14 bbWeight=0.06 PerfScore 0.31
+G_M61567_IG07:        ; bbWeight=0.25, gcrefRegs=4060 {r5 r6 lr}, byrefRegs=0010 {r4}, byref, isz
             ; gcrRegs -[r0]
-            mov     r3, r12
+            mov     r3, lr
             ; gcrRegs +[r3]
-            mov     r12, r3
-            ldr     r2, [sp+0x04]  // [V46 tmp34]
-            ; gcrRegs +[r2]
-            ldr     lr, [sp+0x10]  // [V45 tmp33]
+            mov     lr, r3
+            ldr     r2, [sp+0x0C]  // [V45 tmp33]
+            ldr     r3, [sp]   // [V46 tmp34]
             b       SHORT G_M61567_IG11
-                     ;; size=12 bbWeight=2 PerfScore 10.00
-G_M61567_IG08:        ; bbWeight=2, gcrefRegs=0064 {r2 r5 r6}, byrefRegs=0010 {r4}, byref, isz
-            ; gcrRegs -[r3 r12]
-            str     lr, [sp+0x10]  // [V45 tmp33]
-            cmp     lr, 0
+                        ;; size=10 bbWeight=0.25 PerfScore 1.25
+G_M61567_IG08:        ; bbWeight=0.25, gcrefRegs=0068 {r3 r5 r6}, byrefRegs=0010 {r4}, byref, isz
+            ; gcrRegs -[lr]
+            str     r2, [sp+0x0C]  // [V45 tmp33]
+            cmp     r2, 0
             bne     G_M61567_IG42
-            mov     r0, r2
+            mov     r0, r3
             ; gcrRegs +[r0]
             ldr     r0, [r0]
             ; gcrRegs -[r0]
@@ -169,33 +166,33 @@ G_M61567_IG08:        ; bbWeight=2, gcrefRegs=0064 {r2 r5 r6}, byrefRegs=0010 {r
             movt    r1, 0xd1ff
             cmp     r0, r1
             beq     SHORT G_M61567_IG10
-                      ;; size=28 bbWeight=2 PerfScore 18.00
-G_M61567_IG09:        ; bbWeight=0.50, gcrefRegs=0064 {r2 r5 r6}, byrefRegs=0010 {r4}, byref
+                     ;; size=24 bbWeight=0.25 PerfScore 2.25
+G_M61567_IG09:        ; bbWeight=0.06, gcrefRegs=0068 {r3 r5 r6}, byrefRegs=0010 {r4}, byref
             mov     r0, r1
-            mov     r1, r2
+            mov     r1, r3
             ; gcrRegs +[r1]
-            movw    r12, 0xd1ff
...
  
+38 (+70.37%) : 46730.dasm - Jil.Deserialize.Methods:_ConsumeWhiteSpace(System.IO.TextReader) (Tier0-FullOpts)
@@ -8,13 +8,13 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5, 13   )     ref  ->   r4         class-hnd single-def <System.IO.TextReader>
+;  V00 arg0         [V00,T01] (  7, 14.25)     ref  ->   r4         class-hnd single-def <System.IO.TextReader>
 ;* V01 loc0         [V01    ] (  0,  0   )     int  ->  zero-ref   
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T00] (  6, 48   )     int  ->   r0         "dup spill"
-;* V04 tmp2         [V04,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V05 cse0         [V05,T02] (  3, 11   )     int  ->   r5         hoist "CSE - aggressive"
-;  V06 cse1         [V06,T03] (  2,  2   )     int  ->   r0         hoist "CSE - aggressive"
+;  V03 tmp1         [V03,T00] ( 12, 54   )     int  ->   r0         "dup spill"
+;* V04 tmp2         [V04,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V05 cse0         [V05,T02] (  5, 12.25)     int  ->   r5         "CSE - aggressive"
+;  V06 cse1         [V06,T04] (  2,  2   )     int  ->   r3         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -25,11 +25,9 @@ G_M13758_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[r4]
                        ;; size=10 bbWeight=1 PerfScore 3.00
 G_M13758_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r4]
-            ldr     r5, [r0+0x30]
             b       SHORT G_M13758_IG05
-                     ;; size=6 bbWeight=1 PerfScore 3.00
-G_M13758_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+                       ;; size=2 bbWeight=1 PerfScore 1.00
+G_M13758_IG03:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             cmp     r0, 32
             beq     SHORT G_M13758_IG04
             cmp     r0, 9
@@ -37,30 +35,64 @@ G_M13758_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             cmp     r0, 10
             beq     SHORT G_M13758_IG04
             cmp     r0, 13
-            bne     SHORT G_M13758_IG06
+            bne     SHORT G_M13758_IG10
+                       ;; size=16 bbWeight=0.25 PerfScore 2.00
+G_M13758_IG04:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            ldr     r3, [r5+0x04]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            b       SHORT G_M13758_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 1.00
+G_M13758_IG05:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            ldr     r3, [r4]
+            ldr     r5, [r3+0x30]
+            ldr     r3, [r5]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            cmp     r0, -1
+            bne     SHORT G_M13758_IG03
+                       ;; size=16 bbWeight=1 PerfScore 7.00
+G_M13758_IG06:        ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r4]
+            b       SHORT G_M13758_IG10
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M13758_IG07:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r4]
+            cmp     r0, 32
+            beq     SHORT G_M13758_IG08
+            cmp     r0, 9
+            beq     SHORT G_M13758_IG08
+            cmp     r0, 10
+            beq     SHORT G_M13758_IG08
+            cmp     r0, 13
+            bne     SHORT G_M13758_IG10
                         ;; size=16 bbWeight=2 PerfScore 16.00
-G_M13758_IG04:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M13758_IG08:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r5+0x04]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
                        ;; size=6 bbWeight=2 PerfScore 6.00
-G_M13758_IG05:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M13758_IG09:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r5]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             cmp     r0, -1
-            bne     SHORT G_M13758_IG03
+            bne     SHORT G_M13758_IG07
                        ;; size=12 bbWeight=8 PerfScore 40.00
-G_M13758_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M13758_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r4]
             pop     {r4,r5,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 54, prolog size 8, PerfScore 69.00, instruction count 23, allocated bytes for code 54 (MethodHash=993cca41) for method Jil.Deserialize.Methods:_ConsumeWhiteSpace(System.IO.TextReader) (Tier0-FullOpts)
+; Total bytes of code 92, prolog size 8, PerfScore 77.06, instruction count 41, allocated bytes for code 92 (MethodHash=993cca41) for method Jil.Deserialize.Methods:_ConsumeWhiteSpace(System.IO.TextReader) (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -72,7 +104,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 27 (0x0001b) Actual length = 54 (0x000036)
+  Function Length   : 46 (0x0002e) Actual length = 92 (0x00005c)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
+40 (+74.07%) : 46156.dasm - System.Text.Json.Utf8JsonReader:SkipWhiteSpaceMultiSegment():this (Tier0-FullOpts)
@@ -7,18 +7,18 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  6, 30   )   byref  ->   r4         this single-def
+;  V00 this         [V00,T00] ( 10, 33.50)   byref  ->   r4         this single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 4
 
-G_M62585_IG01:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M62585_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r3,r4,r11,lr}
             add     r11, sp, 8
             mov     r4, r0
             ; byrRegs +[r4]
-                      ;; size=10 bbWeight=8 PerfScore 24.00
-G_M62585_IG02:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
+                       ;; size=10 bbWeight=1 PerfScore 3.00
+G_M62585_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             mov     r0, r4
             ; byrRegs +[r0]
             movw    r3, 0xd1ff
@@ -29,9 +29,9 @@ G_M62585_IG02:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
             ldr     r0, [r4+0x20]
             ldr     r3, [r4+0x34]
             cmp     r0, r3
-            blt     SHORT G_M62585_IG04
-                       ;; size=22 bbWeight=8 PerfScore 72.00
-G_M62585_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
+            blt     SHORT G_M62585_IG06
+                       ;; size=22 bbWeight=1 PerfScore 9.00
+G_M62585_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             mov     r0, r4
             ; byrRegs +[r0]
             movw    r3, 0xd1ff
@@ -40,14 +40,38 @@ G_M62585_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
             blx     r3     // <unknown method>
             ; byrRegs -[r0]
             cmp     r0, 0
-            bne     SHORT G_M62585_IG02
+            beq     SHORT G_M62585_IG06
+                       ;; size=18 bbWeight=0.50 PerfScore 3.50
+G_M62585_IG04:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
+            mov     r0, r4
+            ; byrRegs +[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.Text.Json.Utf8JsonReader:SkipWhiteSpace():this
+            ; byrRegs -[r0]
+            ldr     r0, [r4+0x20]
+            ldr     r3, [r4+0x34]
+            cmp     r0, r3
+            blt     SHORT G_M62585_IG06
+                       ;; size=22 bbWeight=8 PerfScore 72.00
+G_M62585_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
+            mov     r0, r4
+            ; byrRegs +[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // <unknown method>
+            ; byrRegs -[r0]
+            cmp     r0, 0
+            bne     SHORT G_M62585_IG04
                         ;; size=18 bbWeight=4 PerfScore 28.00
-G_M62585_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M62585_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[r4]
             pop     {r3,r4,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 54, prolog size 8, PerfScore 125.00, instruction count 20, allocated bytes for code 54 (MethodHash=d7900b86) for method System.Text.Json.Utf8JsonReader:SkipWhiteSpaceMultiSegment():this (Tier0-FullOpts)
+; Total bytes of code 94, prolog size 8, PerfScore 116.50, instruction count 36, allocated bytes for code 94 (MethodHash=d7900b86) for method System.Text.Json.Utf8JsonReader:SkipWhiteSpaceMultiSegment():this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -59,7 +83,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 27 (0x0001b) Actual length = 54 (0x000036)
+  Function Length   : 47 (0x0002f) Actual length = 94 (0x00005e)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
+42 (+84.00%) : 17883.dasm - System.Number:Int32ToHexCharsubyte:uint (Tier0-FullOpts)
@@ -8,20 +8,20 @@
 ; 1 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T03] (  6,  9   )     int  ->   r0        
-;  V01 arg1         [V01,T02] (  6, 16   )     int  ->   r1        
-;  V02 arg2         [V02,T05] (  3,  4   )     int  ->   r2         single-def
-;  V03 arg3         [V03,T01] (  5, 26   )     int  ->   r3        
-;  V04 loc0         [V04,T08] (  2,  4   )   ubyte  ->   lr        
+;  V00 arg0         [V00,T03] (  9,  9.75)     int  ->   r0        
+;  V01 arg1         [V01,T02] ( 10, 17.75)     int  ->   r1        
+;  V02 arg2         [V02,T07] (  4,  4.25)     int  ->   r2         single-def
+;  V03 arg3         [V03,T01] (  8, 29   )     int  ->   r3        
+;  V04 loc0         [V04,T08] (  4,  4.50)   ubyte  ->   lr        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     int  ->  zero-ref   
-;  V07 tmp2         [V07,T00] (  2, 32   )     int  ->   r3         "dup spill"
-;  V08 tmp3         [V08,T04] (  2,  8   )     int  ->   r0         "dup spill"
+;  V07 tmp2         [V07,T00] (  4, 36   )     int  ->   r3         "dup spill"
+;  V08 tmp3         [V08,T04] (  4,  9   )     int  ->   r0         "dup spill"
 ;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref   
-;  V10 tmp5         [V10,T06] (  3,  6   )     int  ->   lr        
+;  V10 tmp5         [V10,T05] (  6,  6.75)     int  ->   lr        
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )     int  ->  zero-ref   
-;  V13 tmp8         [V13,T07] (  3,  6   )     int  ->  r12        
+;  V13 tmp8         [V13,T06] (  6,  6.75)     int  ->  r12        
 ;* V14 tmp9         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp10        [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp11        [V16    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
@@ -35,34 +35,61 @@ G_M24599_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M24599_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M24599_IG06
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M24599_IG03:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M24599_IG03:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             and     lr, r1, 15
             subs    r0, r0, 1
             cmp     lr, 10
             blt     SHORT G_M24599_IG04
             mov     r12, r2
             b       SHORT G_M24599_IG05
-                      ;; size=16 bbWeight=2 PerfScore 12.00
-G_M24599_IG04:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                      ;; size=16 bbWeight=0.25 PerfScore 1.50
+G_M24599_IG04:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     r12, 48
-                        ;; size=4 bbWeight=2 PerfScore 2.00
-G_M24599_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                      ;; size=4 bbWeight=0.25 PerfScore 0.25
+G_M24599_IG05:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             add     lr, r12
             strb    lr, [r0]
             lsrs    r1, r1, 4
-                        ;; size=8 bbWeight=2 PerfScore 6.00
-G_M24599_IG06:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M24599_IG11
+                       ;; size=10 bbWeight=0.25 PerfScore 1.00
+G_M24599_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             subs    r3, r3, 1
             cmp     r3, 0
             bge     SHORT G_M24599_IG03
             cmp     r1, 0
             bne     SHORT G_M24599_IG03
+                      ;; size=10 bbWeight=1 PerfScore 5.00
+G_M24599_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M24599_IG12
+                       ;; size=2 bbWeight=0.12 PerfScore 0.12
+G_M24599_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            and     lr, r1, 15
+            subs    r0, r0, 1
+            cmp     lr, 10
+            blt     SHORT G_M24599_IG09
+            mov     r12, r2
+            b       SHORT G_M24599_IG10
+                       ;; size=16 bbWeight=2 PerfScore 12.00
+G_M24599_IG09:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            mov     r12, 48
+                       ;; size=4 bbWeight=2 PerfScore 2.00
+G_M24599_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            add     lr, r12
+            strb    lr, [r0]
+            lsrs    r1, r1, 4
+                       ;; size=8 bbWeight=2 PerfScore 6.00
+G_M24599_IG11:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            subs    r3, r3, 1
+            cmp     r3, 0
+            bge     SHORT G_M24599_IG08
+            cmp     r1, 0
+            bne     SHORT G_M24599_IG08
                         ;; size=10 bbWeight=8 PerfScore 40.00
-G_M24599_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M24599_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             pop     {r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 50, prolog size 6, PerfScore 64.00, instruction count 19, allocated bytes for code 50 (MethodHash=44b19fe8) for method System.Number:Int32ToHexChars[ubyte](uint,uint,int,int):uint (Tier0-FullOpts)
+; Total bytes of code 92, prolog size 6, PerfScore 71.88, instruction count 36, allocated bytes for code 92 (MethodHash=44b19fe8) for method System.Number:Int32ToHexChars[ubyte](uint,uint,int,int):uint (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -74,7 +101,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 25 (0x00019) Actual length = 50 (0x000032)
+  Function Length   : 46 (0x0002e) Actual length = 92 (0x00005c)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
  
benchmarks.run_tiered.linux.arm.checked.mch
-8 (-12.90%) : 40093.dasm - Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
@@ -10,20 +10,20 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Struct.SpanWrapper>
 ;  V01 arg1         [V01,T05] (  4,  4   )  struct ( 8) [sp+0x08]  do-not-enreg[S] ld-addr-op single-def <Struct.SpanWrapper`1[int]>
-;  V02 loc0         [V02,T03] (  4,  9   )     int  ->   r0        
+;  V02 loc0         [V02,T04] (  5,  9.25)     int  ->   r0        
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (12) zero-ref    do-not-enreg[SF] ld-addr-op <System.ReadOnlySpan`1+Enumerator[int]>
 ;* V04 loc2         [V04    ] (  0,  0   )     int  ->  zero-ref   
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (12) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1+Enumerator[int]>
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[int]>
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Span.get_Item index"
-;* V09 tmp4         [V09,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V09 tmp4         [V09,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V10 tmp5         [V10,T00] (  3, 20   )     int  ->   r1         "Inline stloc first use temp"
 ;* V11 tmp6         [V11    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V12 tmp7         [V12    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x4)" P-INDEP
-;  V13 tmp8         [V13,T06] (  2,  3   )   byref  ->   r3         single-def "V03.[000..004)"
-;  V14 tmp9         [V14,T02] (  3, 11   )     int  ->   r2         single-def "V03.[004..008)"
-;  V15 tmp10        [V15,T01] (  5, 17   )     int  ->   r1         "V03.[008..012)"
+;  V13 tmp8         [V13,T06] (  3,  3.25)   byref  ->   r3         single-def "V03.[000..004)"
+;  V14 tmp9         [V14,T02] (  3, 10   )     int  ->   r2         single-def "V03.[004..008)"
+;  V15 tmp10        [V15,T01] (  4, 14.50)     int  ->   r1         "V03.[008..012)"
 ;  V16 tmp11        [V16,T07] (  2,  2   )   byref  ->   r3         single-def "V06.[000..004)"
 ;  V17 tmp12        [V17,T08] (  2,  2   )     int  ->   r2         single-def "V06.[004..008)"
 ;* V18 tmp13        [V18    ] (  0,  0   )     int  ->  zero-ref    "V06.[008..012)"
@@ -40,39 +40,41 @@ G_M19652_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldr     r3, [sp+0x08]
             ; byrRegs +[r3]
             ldr     r2, [sp+0x0C]
-            mov     r1, -1
             b       SHORT G_M19652_IG04
-                     ;; size=12 bbWeight=1 PerfScore 5.00
-G_M19652_IG03:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
-            cmp     r1, r2
-            bhs     SHORT G_M19652_IG07
+                      ;; size=8 bbWeight=1 PerfScore 4.00
+G_M19652_IG03:        ; bbWeight=0.25, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+            ldr     r0, [r3]
+            b       SHORT G_M19652_IG07
+                       ;; size=4 bbWeight=0.25 PerfScore 0.50
+G_M19652_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+            cmp     r2, 0
+            ble     SHORT G_M19652_IG09
+                       ;; size=4 bbWeight=1 PerfScore 2.00
+G_M19652_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+            movs    r1, 0
+            b       SHORT G_M19652_IG03
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M19652_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref
             lsl     lr, r1, 2
             ldr     lr, [r3+lr]
             add     r0, lr
-                       ;; size=14 bbWeight=2 PerfScore 10.00
-G_M19652_IG04:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+                       ;; size=10 bbWeight=2 PerfScore 6.00
+G_M19652_IG07:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
             adds    r1, r1, 1
             cmp     r1, r2
-            bge     SHORT G_M19652_IG06
+            bge     SHORT G_M19652_IG09
                        ;; size=6 bbWeight=8 PerfScore 24.00
-G_M19652_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
-            b       SHORT G_M19652_IG03
+G_M19652_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+            b       SHORT G_M19652_IG06
                         ;; size=2 bbWeight=4 PerfScore 4.00
-G_M19652_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M19652_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[r3]
             pop     {r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=4 PerfScore 12.00
-G_M19652_IG07:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_RNGCHKFAIL
-            ; gcr arg pop 0
-            bkpt    
-                       ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 62, prolog size 8, PerfScore 58.00, instruction count 24, allocated bytes for code 62 (MethodHash=47afb33b) for method Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
+; Total bytes of code 54, prolog size 8, PerfScore 56.50, instruction count 23, allocated bytes for code 54 (MethodHash=47afb33b) for method Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -84,7 +86,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 31 (0x0001f) Actual length = 62 (0x00003e)
+  Function Length   : 27 (0x0001b) Actual length = 54 (0x000036)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
-12 (-5.17%) : 24453.dasm - Sigil.Impl.LinqAlternative+<Where>d_2`1[int]:MoveNext():ubyte:this (Tier0-FullOpts)
@@ -8,167 +8,152 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 18, 16.50)     ref  ->  [sp+0x04]  this class-hnd EH-live single-def <Sigil.Impl.LinqAlternative+<_Where>d__2`1[int]>
+;  V00 this         [V00,T00] ( 17,  9   )     ref  ->  [sp+0x04]  this class-hnd EH-live single-def <Sigil.Impl.LinqAlternative+<_Where>d__2`1[int]>
 ;  V01 loc0         [V01,T03] (  4,  2.50)   ubyte  ->   r0        
 ;  V02 loc1         [V02,T04] (  3,  2.50)     int  ->   r0         single-def
 ;# 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 "non-inline candidate call" <<unknown class>>
-;  V05 tmp2         [V05,T02] (  2,  8   )     int  ->   r1         "argument with side effect"
-;  V06 tmp3         [V06,T01] (  3, 12   )     ref  ->   r5         "argument with side effect"
-;  V07 PSPSym       [V07,T05] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
+;  V05 tmp2         [V05,T02] (  2,  1   )     int  ->   r1         "argument with side effect"
+;  V06 tmp3         [V06,T01] (  3,  1.50)     ref  ->   r6         "argument with side effect"
+;  V07 PSPSym       [V07,T06] (  1,  1   )     int  ->  [sp+0x08]  do-not-enreg[V] "PSPSym"
+;  V08 cse0         [V08,T05] (  5,  2   )     ref  ->   r0         multi-def "CSE - aggressive"
 ;  TEMP_01                                     ref  ->  [r11-0x18]
 ;
-; Lcl frame size = 16
+; Lcl frame size = 12
 
 G_M46418_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r4,r5,r11,lr}
-            sub     sp, 16
+            push    {r4,r5,r6,r11,lr}
+            sub     sp, 12
             add     r11, sp, 24
             movs    r1, 0
             str     r1, [sp]   // [TEMP_01]
             add     r1, sp, 32
-            str     r1, [sp+0x0C]  // [V07 PSPSym]
+            str     r1, [sp+0x08]  // [V07 PSPSym]
             str     r0, [sp+0x04]    // [V00 this]
             ; GC ptr vars +{V00}
-            mov     r4, r0
-            ; gcrRegs +[r4]
+            mov     r5, r0
+            ; gcrRegs +[r5]
                         ;; size=22 bbWeight=1 PerfScore 9.00
-G_M46418_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     r0, [r4+0x18]
+G_M46418_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     r0, [r5+0x18]
             cmp     r0, 0
             beq     SHORT G_M46418_IG04
                        ;; size=6 bbWeight=1 PerfScore 3.00
-G_M46418_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M46418_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             cmp     r0, 1
-            beq     SHORT G_M46418_IG09
+            beq     SHORT G_M46418_IG07
             movs    r0, 0
-            b       SHORT G_M46418_IG11
+            b       SHORT G_M46418_IG12
                      ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M46418_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M46418_IG04:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             mov     r0, -1
-            str     r0, [r4+0x18]
-            ldr     r0, [r4+0x04]
+            str     r0, [r5+0x18]
+            ldr     r0, [r5+0x04]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             str     r0, [sp]
-            ldr     r4, [sp+0x04]    // [V00 this]
-            ; gcrRegs +[r4]
-            add     r0, r4, 20
+            add     r0, r5, 20
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            ldr     r1, [sp]  // [TEMP_01]
+            ldr     r1, [sp]
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            b       SHORT G_M46418_IG09
-                       ;; size=42 bbWeight=0.50 PerfScore 7.50
-G_M46418_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4]
-            ldr     r4, [sp+0x04]  // [V00 this]
-            ; gcrRegs +[r4]
-            ldr     r5, [r4+0x0C]
-            ; gcrRegs +[r5]
-            ldr     r0, [r4+0x14]
+            b       SHORT G_M46418_IG07
+                       ;; size=40 bbWeight=0.50 PerfScore 7.00
+G_M46418_IG05:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r0, -1
+            str     r0, [r5+0x18]
+            ldr     r0, [r5+0x14]
+            ; gcrRegs +[r0]
+            cmp     r0, 0
+            beq     SHORT G_M46418_IG11
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            ; gcr arg pop 0
+            b       SHORT G_M46418_IG11
+                       ;; size=26 bbWeight=0.50 PerfScore 5.00
+G_M46418_IG06:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r5+0x14]
+            ; gcrRegs +[r0]
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            ; gcr arg pop 0
+            str     r0, [r5+0x1C]
+            movs    r0, 1
+            str     r0, [r5+0x18]
+            b       SHORT G_M46418_IG12
+                       ;; size=22 bbWeight=0.50 PerfScore 4.50
+G_M46418_IG07:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mvn     r0, 2
+            str     r0, [r5+0x18]
+            b       SHORT G_M46418_IG09
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M46418_IG08:        ; bbWeight=0.25, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r6, [r5+0x0C]
+            ; gcrRegs +[r6]
+            ldr     r0, [r5+0x14]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             mov     r1, r0
-            ldr     r0, [r5+0x04]
+            ldr     r0, [r6+0x04]
             ; gcrRegs +[r0]
-            ldr     r3, [r5+0x0C]
+            ldr     r3, [r6+0x0C]
             blx     r3        // <unknown method>
-            ; gcrRegs -[r0 r5]
+            ; gcrRegs -[r0 r6]
+            ; gcr arg pop 0
+            cmp     r0, 0
+            bne     SHORT G_M46418_IG06
+                       ;; size=28 bbWeight=0.25 PerfScore 3.00
+G_M46418_IG09:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r5+0x14]
+            ; gcrRegs +[r0]
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            ldr     r4, [sp+0x04]   // [V00 this]
-            ; gcrRegs +[r4]
             bne     SHORT G_M46418_IG08
-                       ;; size=32 bbWeight=2 PerfScore 28.00
-G_M46418_IG06:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r4+0x14]
-            ; gcrRegs +[r0]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            cmp     r0, 0
-            bne     SHORT G_M46418_IG05
-                       ;; size=18 bbWeight=4 PerfScore 28.00
-G_M46418_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            mov     r0, -1
-            ldr     r4, [sp+0x04]
-            ; gcrRegs +[r4]
-            str     r0, [r4+0x18]
-            ldr     r0, [r4+0x14]
-            ; gcrRegs +[r0]
-            cmp     r0, 0
-            beq     SHORT G_M46418_IG10
-            ldr     r0, [r4+0x14]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            ldr     r4, [sp+0x04]  // [V00 this]
-            ; gcrRegs +[r4]
-            b       SHORT G_M46418_IG10
-                       ;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M46418_IG08:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r4+0x14]
-            ; gcrRegs +[r0]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            ldr     r4, [sp+0x04]  // [V00 this]
-            ; gcrRegs +[r4]
-            str     r0, [r4+0x1C]
-            movs    r0, 1
-            str     r0, [r4+0x18]
-            b       SHORT G_M46418_IG11
-                       ;; size=24 bbWeight=0.50 PerfScore 5.00
-G_M46418_IG09:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            mvn     r0, 2
-            str     r0, [r4+0x18]
-            b       SHORT G_M46418_IG06
-                       ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M46418_IG10:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+                     ;; size=18 bbWeight=0.50 PerfScore 3.50
+G_M46418_IG10:        ; bbWeight=0.06, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M46418_IG05
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M46418_IG11:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             movs    r0, 0
-            str     r0, [r4+0x14]
+            str     r0, [r5+0x14]
                         ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M46418_IG11:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
-            ; gcrRegs -[r4]
+G_M46418_IG12:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
+            ; gcrRegs -[r5]
             ; GC ptr vars -{V00}
-            add     sp, 16
-            pop     {r4,r5,r11,pc}
+            add     sp, 12
+            pop     {r4,r5,r6,r11,pc}
                       ;; size=6 bbWeight=1 PerfScore 2.00
-G_M46418_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
-            push    {r2,r3,r4,r5,r11,lr}
+G_M46418_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+            push    {r3,r4,r5,r6,r11,lr}
             add     r3, r11, 8
...
  
-6 (-2.03%) : 1793.dasm - System.Linq.Enumerable+d64`1[System.Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
@@ -8,10 +8,10 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 17, 15.75)     ref  ->  [sp+0x08]  this class-hnd EH-live single-def <System.Linq.Enumerable+<OfTypeIterator>d__64`1[System.__Canon]>
+;  V00 this         [V00,T00] ( 17,  8.75)     ref  ->  [sp+0x08]  this class-hnd EH-live single-def <System.Linq.Enumerable+<OfTypeIterator>d__64`1[System.__Canon]>
 ;  V01 loc0         [V01,T03] (  4,  2.50)   ubyte  ->   r0        
 ;  V02 loc1         [V02,T04] (  3,  2.50)     int  ->   r0        
-;  V03 loc2         [V03,T01] (  4,  4.62)     ref  ->   r5         class-hnd <<unknown class>>
+;  V03 loc2         [V03,T01] (  4,  1.12)     ref  ->   r4         class-hnd <<unknown class>>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.__Canon>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06,T06] (  3,  1.25)     int  ->   r3         "fgMakeTemp is creating a new local variable"
@@ -33,68 +33,129 @@ G_M56914_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             str     r0, [r11-0x14]
             str     r0, [sp+0x08]  // [V00 this]
             ; GC ptr vars +{V00}
-            mov     r4, r0
-            ; gcrRegs +[r4]
+            mov     r5, r0
+            ; gcrRegs +[r5]
                         ;; size=26 bbWeight=1 PerfScore 10.00
-G_M56914_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     r0, [r4+0x14]
+G_M56914_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     r0, [r5+0x14]
             cmp     r0, 0
             beq     SHORT G_M56914_IG04
                        ;; size=6 bbWeight=1 PerfScore 3.00
-G_M56914_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M56914_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             cmp     r0, 1
-            beq     SHORT G_M56914_IG12
+            beq     SHORT G_M56914_IG10
             movs    r0, 0
-            b       SHORT G_M56914_IG14
+            b       SHORT G_M56914_IG15
                      ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M56914_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M56914_IG04:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             mov     r0, -1
-            str     r0, [r4+0x14]
-            ldr     r0, [r4+0x08]
+            str     r0, [r5+0x14]
+            ldr     r0, [r5+0x08]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             str     r0, [sp+0x04]
-            ldr     r4, [sp+0x08]   // [V00 this]
-            ; gcrRegs +[r4]
-            add     r0, r4, 16
+            add     r0, r5, 16
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            ldr     r1, [sp+0x04] // [TEMP_01]
+            ldr     r1, [sp+0x04]
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            b       SHORT G_M56914_IG12
-                       ;; size=42 bbWeight=0.50 PerfScore 7.50
-G_M56914_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4]
-            ldr     r4, [sp+0x08]  // [V00 this]
+            b       SHORT G_M56914_IG10
+                       ;; size=40 bbWeight=0.50 PerfScore 7.00
+G_M56914_IG05:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r1, -1
+            str     r1, [r5+0x14]
+            ldr     r1, [r5+0x10]
+            ; gcrRegs +[r1]
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_ISINSTANCEOFINTERFACE
+            ; gcrRegs -[r1] +[r0]
+            ; gcr arg pop 0
+            cmp     r0, 0
+            beq     SHORT G_M56914_IG14
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            ; gcr arg pop 0
+            b       SHORT G_M56914_IG14
+                       ;; size=44 bbWeight=0.50 PerfScore 7.50
+G_M56914_IG06:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4]
-            ldr     r0, [r4+0x10]
+            mov     r1, r4
+            ; gcrRegs +[r1]
+            cmp     r1, 0
+            beq     SHORT G_M56914_IG09
+                       ;; size=6 bbWeight=0.50 PerfScore 1.50
+G_M56914_IG07:        ; bbWeight=0.25, gcrefRegs=0032 {r1 r4 r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r1]
+            ldr     r3, [r5]
+            ldr     r3, [r3+0x24]
+            ldr     r3, [r3]
+            ldr     r3, [r3]
+            cmp     r0, r3
+            beq     SHORT G_M56914_IG09
+                       ;; size=14 bbWeight=0.25 PerfScore 1.75
+G_M56914_IG08:        ; bbWeight=0.12, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r1]
+            mov     r0, r3
+            mov     r1, r4
+            ; gcrRegs +[r1]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_CHKCASTANY
+            ; gcrRegs -[r1 r4] +[r0]
+            ; gcr arg pop 0
+            mov     r1, r0
+            ; gcrRegs +[r1]
+                       ;; size=16 bbWeight=0.12 PerfScore 0.75
+G_M56914_IG09:        ; bbWeight=0.50, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0]
+            adds    r0, r5, 4
+            ; byrRegs +[r0]
+            movw    r12, 0xd1ff
+            movt    r12, 0xd1ff
+            blx     r12        // CORINFO_HELP_ASSIGN_REF
+            ; gcrRegs -[r1]
+            ; byrRegs -[r0]
+            movs    r1, 1
+            str     r1, [r5+0x14]
+            mov     r0, r1
+            b       SHORT G_M56914_IG15
+                       ;; size=20 bbWeight=0.50 PerfScore 4.00
+G_M56914_IG10:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mvn     r0, 2
+            str     r0, [r5+0x14]
+            b       SHORT G_M56914_IG12
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M56914_IG11:        ; bbWeight=0.25, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r5+0x10]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
-            mov     r5, r0
-            ; gcrRegs +[r5]
-            ldr     r4, [sp+0x08]  // [V00 this]
+            mov     r4, r0
             ; gcrRegs +[r4]
-            ldr     r0, [r4]
+            ldr     r0, [r5]
             ; gcrRegs -[r0]
             ldr     r0, [r0+0x24]
             ldr     r0, [r0]
             ldr     r0, [r0]
-            mov     r1, r5
+            mov     r1, r4
             ; gcrRegs +[r1]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -103,111 +164,39 @@ G_M56914_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs -[r1] +[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            bne     SHORT G_M56914_IG08
-                       ;; size=46 bbWeight=2 PerfScore 38.00
-G_M56914_IG06:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0 r5]
-            ldr     r0, [r4+0x10]
+            bne     SHORT G_M56914_IG06
+                       ;; size=42 bbWeight=0.25 PerfScore 4.25
+G_M56914_IG12:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0 r4]
+            ldr     r0, [r5+0x10]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            bne     SHORT G_M56914_IG05
-                       ;; size=18 bbWeight=4 PerfScore 28.00
-G_M56914_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            mov     r1, -1
-            ldr     r4, [sp+0x08]
-            ; gcrRegs +[r4]
-            str     r1, [r4+0x14]
-            ldr     r1, [r4+0x10]
-            ; gcrRegs +[r1]
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_ISINSTANCEOFINTERFACE
-            ; gcrRegs -[r1 r4] +[r0]
-            ; gcr arg pop 0
-            cmp     r0, 0
-            beq     SHORT G_M56914_IG13
-            movw    r4, 0xd1ff
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            b       SHORT G_M56914_IG13
-                       ;; size=46 bbWeight=0.50 PerfScore 8.00
-G_M56914_IG08:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r4-r5]
-            mov     r1, r5
-            ; gcrRegs +[r1]
-            cmp     r1, 0
-            beq     SHORT G_M56914_IG11
-                       ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M56914_IG09:        ; bbWeight=0.25, gcrefRegs=0032 {r1 r4 r5}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r1]
-            ldr     r3, [r4]
-            ldr     r3, [r3+0x24]
-            ldr     r3, [r3]
-            ldr     r3, [r3]
-            cmp     r0, r3
-            beq     SHORT G_M56914_IG11
-                       ;; size=14 bbWeight=0.25 PerfScore 1.75
-G_M56914_IG10:        ; bbWeight=0.12, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r1]
-            mov     r0, r3
-            mov     r1, r5
-            ; gcrRegs +[r1]
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_CHKCASTANY
-            ; gcrRegs -[r1 r5] +[r0]
-            ; gcr arg pop 0
-            mov     r1, r0
-            ; gcrRegs +[r1]
-                       ;; size=16 bbWeight=0.12 PerfScore 0.75
-G_M56914_IG11:        ; bbWeight=0.50, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0]
...
  
+36 (+69.23%) : 11355.dasm - Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
@@ -8,68 +8,111 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  6, 22   )     ref  ->   r4         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
+;  V00 this         [V00,T01] (  9, 22.50)     ref  ->   r4         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T00] (  3, 36   )     ref  ->   r0         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
+;  V02 tmp1         [V02,T00] (  6, 40.50)     ref  ->   r5         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
 ;* V03 tmp2         [V03    ] (  0,  0   )     ref  ->  zero-ref   
-;  V04 tmp3         [V04,T03] (  4, 14   )     int  ->   r3        
-;  V05 tmp4         [V05,T02] (  3, 18   )     int  ->   r0         "Inline stloc first use temp"
+;  V04 tmp3         [V04,T03] (  8, 15.75)     int  ->   r6        
+;  V05 tmp4         [V05,T02] (  6, 20.25)     int  ->   r3         "Inline stloc first use temp"
+;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   r7         "CSE - aggressive"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M16914_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r11,lr}
-            add     r11, sp, 8
+            push    {r4,r5,r6,r7,r11,lr}
+            add     r11, sp, 16
             mov     r4, r0
             ; gcrRegs +[r4]
                        ;; size=10 bbWeight=1 PerfScore 3.00
 G_M16914_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M16914_IG04
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M16914_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M16914_IG03:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r4]
-            ldr     r3, [r3+0x50]
-            ldr     r3, [r3+0x10]
+            ldr     r7, [r3+0x50]
+            ldr     r3, [r7+0x10]
             blx     r3        // <unknown method>
             ; gcrRegs -[r0]
-                      ;; size=10 bbWeight=2 PerfScore 10.00
-G_M16914_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r4+0x04]
-            ; gcrRegs +[r0]
-            cmp     r0, 0
+            b       SHORT G_M16914_IG12
+                       ;; size=12 bbWeight=0.25 PerfScore 1.50
+G_M16914_IG04:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r5, [r4+0x04]
+            ; gcrRegs +[r5]
+            cmp     r5, 0
             bne     SHORT G_M16914_IG06
-                     ;; size=6 bbWeight=8 PerfScore 24.00
-G_M16914_IG05:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0]
-            movs    r3, 0
+                        ;; size=6 bbWeight=1 PerfScore 3.00
+G_M16914_IG05:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            movs    r6, 0
             b       SHORT G_M16914_IG07
-                     ;; size=4 bbWeight=2 PerfScore 4.00
-G_M16914_IG06:        ; bbWeight=2, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[r0]
-            ldr     r3, [r0+0x08]
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M16914_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0]
-            mov     r0, r3
-            ldr     r2, [r4+0x30]
-            cmp     r2, 0
-            beq     SHORT G_M16914_IG09
-                       ;; size=8 bbWeight=8 PerfScore 32.00
-G_M16914_IG08:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
-            adds    r0, r3, 1
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M16914_IG09:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+                       ;; size=4 bbWeight=0.25 PerfScore 0.50
+G_M16914_IG06:        ; bbWeight=0.25, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r5]
+            ldr     r6, [r5+0x08]
+                       ;; size=2 bbWeight=0.25 PerfScore 0.25
+G_M16914_IG07:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            mov     r3, r6
+            ldr     r0, [r4+0x30]
             cmp     r0, 0
+            beq     SHORT G_M16914_IG09
+                       ;; size=8 bbWeight=1 PerfScore 4.00
+G_M16914_IG08:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            adds    r3, r6, 1
+                       ;; size=2 bbWeight=0.25 PerfScore 0.25
+G_M16914_IG09:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
             bgt     SHORT G_M16914_IG03
-                     ;; size=4 bbWeight=8 PerfScore 16.00
-G_M16914_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+                        ;; size=4 bbWeight=1 PerfScore 2.00
+G_M16914_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r4]
-            pop     {r3,r4,r11,pc}
+            b       SHORT G_M16914_IG18
+                       ;; size=2 bbWeight=0.12 PerfScore 0.12
+G_M16914_IG11:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r4]
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            ldr     r3, [r7+0x10]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+                       ;; size=6 bbWeight=2 PerfScore 6.00
+G_M16914_IG12:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r5, [r4+0x04]
+            ; gcrRegs +[r5]
+            cmp     r5, 0
+            bne     SHORT G_M16914_IG14
+                       ;; size=6 bbWeight=8 PerfScore 24.00
+G_M16914_IG13:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            movs    r6, 0
+            b       SHORT G_M16914_IG15
+                       ;; size=4 bbWeight=2 PerfScore 4.00
+G_M16914_IG14:        ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r5]
+            ldr     r6, [r5+0x08]
+                       ;; size=2 bbWeight=2 PerfScore 2.00
+G_M16914_IG15:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            mov     r3, r6
+            ldr     r0, [r4+0x30]
+            cmp     r0, 0
+            beq     SHORT G_M16914_IG17
+                       ;; size=8 bbWeight=8 PerfScore 32.00
+G_M16914_IG16:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            adds    r3, r6, 1
+                       ;; size=2 bbWeight=2 PerfScore 2.00
+G_M16914_IG17:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
+            bgt     SHORT G_M16914_IG11
+                       ;; size=4 bbWeight=8 PerfScore 16.00
+G_M16914_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[r4]
+            pop     {r4,r5,r6,r7,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 52, prolog size 8, PerfScore 95.00, instruction count 23, allocated bytes for code 52 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
+; Total bytes of code 88, prolog size 8, PerfScore 102.62, instruction count 41, allocated bytes for code 88 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -81,11 +124,11 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 52 (0x000034)
+  Function Length   : 44 (0x0002c) Actual length = 88 (0x000058)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
+    A8 F0       pop {r4,r5,r6,r7,r11,lr}            ; opsize 32
     FF          end
     FF          end
 
  
+38 (+70.37%) : 29321.dasm - Jil.Deserialize.Methods:_ConsumeWhiteSpace(System.IO.TextReader) (Tier0-FullOpts)
@@ -8,13 +8,13 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5, 13   )     ref  ->   r4         class-hnd single-def <System.IO.TextReader>
+;  V00 arg0         [V00,T01] (  7, 14.25)     ref  ->   r4         class-hnd single-def <System.IO.TextReader>
 ;* V01 loc0         [V01    ] (  0,  0   )     int  ->  zero-ref   
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T00] (  6, 48   )     int  ->   r0         "dup spill"
-;* V04 tmp2         [V04,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V05 cse0         [V05,T02] (  3, 11   )     int  ->   r5         hoist "CSE - aggressive"
-;  V06 cse1         [V06,T03] (  2,  2   )     int  ->   r0         hoist "CSE - aggressive"
+;  V03 tmp1         [V03,T00] ( 12, 54   )     int  ->   r0         "dup spill"
+;* V04 tmp2         [V04,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V05 cse0         [V05,T02] (  5, 12.25)     int  ->   r5         "CSE - aggressive"
+;  V06 cse1         [V06,T04] (  2,  2   )     int  ->   r3         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -25,11 +25,9 @@ G_M13758_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[r4]
                        ;; size=10 bbWeight=1 PerfScore 3.00
 G_M13758_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r4]
-            ldr     r5, [r0+0x30]
             b       SHORT G_M13758_IG05
-                     ;; size=6 bbWeight=1 PerfScore 3.00
-G_M13758_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+                       ;; size=2 bbWeight=1 PerfScore 1.00
+G_M13758_IG03:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             cmp     r0, 32
             beq     SHORT G_M13758_IG04
             cmp     r0, 9
@@ -37,30 +35,64 @@ G_M13758_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             cmp     r0, 10
             beq     SHORT G_M13758_IG04
             cmp     r0, 13
-            bne     SHORT G_M13758_IG06
+            bne     SHORT G_M13758_IG10
+                       ;; size=16 bbWeight=0.25 PerfScore 2.00
+G_M13758_IG04:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            ldr     r3, [r5+0x04]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            b       SHORT G_M13758_IG09
+                       ;; size=8 bbWeight=0.25 PerfScore 1.00
+G_M13758_IG05:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            ldr     r3, [r4]
+            ldr     r5, [r3+0x30]
+            ldr     r3, [r5]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            cmp     r0, -1
+            bne     SHORT G_M13758_IG03
+                       ;; size=16 bbWeight=1 PerfScore 7.00
+G_M13758_IG06:        ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r4]
+            b       SHORT G_M13758_IG10
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M13758_IG07:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r4]
+            cmp     r0, 32
+            beq     SHORT G_M13758_IG08
+            cmp     r0, 9
+            beq     SHORT G_M13758_IG08
+            cmp     r0, 10
+            beq     SHORT G_M13758_IG08
+            cmp     r0, 13
+            bne     SHORT G_M13758_IG10
                         ;; size=16 bbWeight=2 PerfScore 16.00
-G_M13758_IG04:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M13758_IG08:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r5+0x04]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
                        ;; size=6 bbWeight=2 PerfScore 6.00
-G_M13758_IG05:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M13758_IG09:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r5]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             cmp     r0, -1
-            bne     SHORT G_M13758_IG03
+            bne     SHORT G_M13758_IG07
                        ;; size=12 bbWeight=8 PerfScore 40.00
-G_M13758_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M13758_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r4]
             pop     {r4,r5,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 54, prolog size 8, PerfScore 69.00, instruction count 23, allocated bytes for code 54 (MethodHash=993cca41) for method Jil.Deserialize.Methods:_ConsumeWhiteSpace(System.IO.TextReader) (Tier0-FullOpts)
+; Total bytes of code 92, prolog size 8, PerfScore 77.06, instruction count 41, allocated bytes for code 92 (MethodHash=993cca41) for method Jil.Deserialize.Methods:_ConsumeWhiteSpace(System.IO.TextReader) (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -72,7 +104,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 27 (0x0001b) Actual length = 54 (0x000036)
+  Function Length   : 46 (0x0002e) Actual length = 92 (0x00005c)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
+40 (+74.07%) : 26474.dasm - System.Text.Json.Utf8JsonReader:SkipWhiteSpaceMultiSegment():this (Tier0-FullOpts)
@@ -7,18 +7,18 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  6, 30   )   byref  ->   r4         this single-def
+;  V00 this         [V00,T00] ( 10, 33.50)   byref  ->   r4         this single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 4
 
-G_M62585_IG01:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M62585_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r3,r4,r11,lr}
             add     r11, sp, 8
             mov     r4, r0
             ; byrRegs +[r4]
-                      ;; size=10 bbWeight=8 PerfScore 24.00
-G_M62585_IG02:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
+                       ;; size=10 bbWeight=1 PerfScore 3.00
+G_M62585_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             mov     r0, r4
             ; byrRegs +[r0]
             movw    r3, 0xd1ff
@@ -29,9 +29,9 @@ G_M62585_IG02:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
             ldr     r0, [r4+0x20]
             ldr     r3, [r4+0x34]
             cmp     r0, r3
-            blt     SHORT G_M62585_IG04
-                       ;; size=22 bbWeight=8 PerfScore 72.00
-G_M62585_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
+            blt     SHORT G_M62585_IG06
+                       ;; size=22 bbWeight=1 PerfScore 9.00
+G_M62585_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             mov     r0, r4
             ; byrRegs +[r0]
             movw    r3, 0xd1ff
@@ -40,14 +40,38 @@ G_M62585_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
             blx     r3     // <unknown method>
             ; byrRegs -[r0]
             cmp     r0, 0
-            bne     SHORT G_M62585_IG02
+            beq     SHORT G_M62585_IG06
+                       ;; size=18 bbWeight=0.50 PerfScore 3.50
+G_M62585_IG04:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
+            mov     r0, r4
+            ; byrRegs +[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.Text.Json.Utf8JsonReader:SkipWhiteSpace():this
+            ; byrRegs -[r0]
+            ldr     r0, [r4+0x20]
+            ldr     r3, [r4+0x34]
+            cmp     r0, r3
+            blt     SHORT G_M62585_IG06
+                       ;; size=22 bbWeight=8 PerfScore 72.00
+G_M62585_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
+            mov     r0, r4
+            ; byrRegs +[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // <unknown method>
+            ; byrRegs -[r0]
+            cmp     r0, 0
+            bne     SHORT G_M62585_IG04
                         ;; size=18 bbWeight=4 PerfScore 28.00
-G_M62585_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M62585_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[r4]
             pop     {r3,r4,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 54, prolog size 8, PerfScore 125.00, instruction count 20, allocated bytes for code 54 (MethodHash=d7900b86) for method System.Text.Json.Utf8JsonReader:SkipWhiteSpaceMultiSegment():this (Tier0-FullOpts)
+; Total bytes of code 94, prolog size 8, PerfScore 116.50, instruction count 36, allocated bytes for code 94 (MethodHash=d7900b86) for method System.Text.Json.Utf8JsonReader:SkipWhiteSpaceMultiSegment():this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -59,7 +83,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 27 (0x0001b) Actual length = 54 (0x000036)
+  Function Length   : 47 (0x0002f) Actual length = 94 (0x00005e)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
  
coreclr_tests.run.linux.arm.checked.mch
-38 (-54.29%) : 169809.dasm - foo:Main():int (FullOpts)
@@ -7,41 +7,16 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T00] (  5, 14   )     int  ->   r0        
+;* V00 loc0         [V00,T00] (  0,  0   )     int  ->  zero-ref   
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 0
 
-G_M24869_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M24869_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r11,lr}
             mov     r11, sp
                        ;; size=6 bbWeight=1 PerfScore 2.00
 G_M24869_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movs    r0, 1
-                       ;; size=2 bbWeight=1 PerfScore 1.00
-G_M24869_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            adds    r0, r0, 1
-            cmp     r0, 2
-            blt     SHORT G_M24869_IG03
-                       ;; size=6 bbWeight=4 PerfScore 12.00
-G_M24869_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            cmp     r0, 2
-            beq     SHORT G_M24869_IG07
-                       ;; size=4 bbWeight=1 PerfScore 2.00
-G_M24869_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r3, [r3]
-            blx     r3     // <unknown method>
-            ; gcr arg pop 0
-            movs    r0, 101
-                       ;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M24869_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M24869_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movw    r3, 0xd1ff
@@ -50,33 +25,25 @@ G_M24869_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, by
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             movs    r0, 100
-                      ;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M24869_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+                      ;; size=22 bbWeight=1 PerfScore 7.00
+G_M24869_IG03:        ; bbWeight=1, epilog, nogc, extend
             pop     {r11,pc}
-                     ;; size=4 bbWeight=0.50 PerfScore 0.50
+                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 70, prolog size 6, PerfScore 25.00, instruction count 24, allocated bytes for code 70 (MethodHash=945a9eda) for method foo:Main():int (FullOpts)
+; Total bytes of code 32, prolog size 6, PerfScore 10.00, instruction count 10, allocated bytes for code 32 (MethodHash=945a9eda) for method foo:Main():int (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Code Words        : 1
-  Epilog Count      : 2
+  Epilog Count      : 0
   F bit             : 0
-  E bit             : 0
+  E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 70 (0x000046)
-  ---- Epilog scopes ----
-  ---- Scope 0
-  Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-  Condition                  : 14 (0xe) (always)
-  Epilog Start Index         : 0 (0x00)
-  ---- Scope 1
-  Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-  Condition                  : 14 (0xe) (always)
-  Epilog Start Index         : 0 (0x00)
+  Function Length   : 16 (0x00010) Actual length = 32 (0x000020)
+  --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
     A8 00       pop {r11,lr}                        ; opsize 32
  
-38 (-54.29%) : 381750.dasm - foo:Main():int (Tier0-FullOpts)
@@ -7,41 +7,16 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T00] (  5, 14   )     int  ->   r0        
+;* V00 loc0         [V00,T00] (  0,  0   )     int  ->  zero-ref   
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 0
 
-G_M24869_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M24869_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r11,lr}
             mov     r11, sp
                        ;; size=6 bbWeight=1 PerfScore 2.00
 G_M24869_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movs    r0, 1
-                       ;; size=2 bbWeight=1 PerfScore 1.00
-G_M24869_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            adds    r0, r0, 1
-            cmp     r0, 2
-            blt     SHORT G_M24869_IG03
-                       ;; size=6 bbWeight=4 PerfScore 12.00
-G_M24869_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            cmp     r0, 2
-            beq     SHORT G_M24869_IG07
-                       ;; size=4 bbWeight=1 PerfScore 2.00
-G_M24869_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r3, [r3]
-            blx     r3     // <unknown method>
-            ; gcr arg pop 0
-            movs    r0, 101
-                       ;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M24869_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r11,pc}
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M24869_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movw    r3, 0xd1ff
@@ -50,33 +25,25 @@ G_M24869_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, by
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             movs    r0, 100
-                      ;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M24869_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+                      ;; size=22 bbWeight=1 PerfScore 7.00
+G_M24869_IG03:        ; bbWeight=1, epilog, nogc, extend
             pop     {r11,pc}
-                     ;; size=4 bbWeight=0.50 PerfScore 0.50
+                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 70, prolog size 6, PerfScore 25.00, instruction count 24, allocated bytes for code 70 (MethodHash=945a9eda) for method foo:Main():int (Tier0-FullOpts)
+; Total bytes of code 32, prolog size 6, PerfScore 10.00, instruction count 10, allocated bytes for code 32 (MethodHash=945a9eda) for method foo:Main():int (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Code Words        : 1
-  Epilog Count      : 2
+  Epilog Count      : 0
   F bit             : 0
-  E bit             : 0
+  E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 70 (0x000046)
-  ---- Epilog scopes ----
-  ---- Scope 0
-  Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-  Condition                  : 14 (0xe) (always)
-  Epilog Start Index         : 0 (0x00)
-  ---- Scope 1
-  Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-  Condition                  : 14 (0xe) (always)
-  Epilog Start Index         : 0 (0x00)
+  Function Length   : 16 (0x00010) Actual length = 32 (0x000020)
+  --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
     A8 00       pop {r11,lr}                        ; opsize 32
  
-32 (-21.92%) : 115070.dasm - Benchstone.BenchI.BubbleSort2:Bench():ubyte (FullOpts)
@@ -7,23 +7,22 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T06] (  5,  5   )     ref  ->   r0         class-hnd exact single-def <int[]>
-;  V01 loc1         [V01,T00] ( 10, 49.84)     int  ->   r4        
-;  V02 loc2         [V02,T01] (  8, 43   )     int  ->   r3        
-;* V03 loc3         [V03,T07] (  0,  0   )     int  ->  zero-ref    single-def
+;  V00 loc0         [V00,T04] (  5,  5   )     ref  ->   r0         class-hnd exact single-def <int[]>
+;  V01 loc1         [V01,T00] (  5, 16.84)     int  ->   r0        
+;  V02 loc2         [V02,T05] (  3,  3   )     int  ->   r3        
+;* V03 loc3         [V03,T06] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 cse0         [V05,T02] (  6, 32.92)   byref  ->   r5         hoist "CSE - aggressive"
-;  V06 cse1         [V06,T03] (  4, 32   )     int  ->   r2         "CSE - aggressive"
-;  V07 cse2         [V07,T04] (  3, 11.88)     int  ->   r0         "CSE - aggressive"
-;  V08 cse3         [V08,T05] (  2,  7.92)     int  ->   r4         "CSE - aggressive"
+;  V05 cse0         [V05,T01] (  8, 13.92)   byref  ->   r4         "CSE - aggressive"
+;  V06 cse1         [V06,T02] (  3, 11.88)     int  ->   r3         "CSE - aggressive"
+;  V07 cse2         [V07,T03] (  2,  7.92)     int  ->   r0         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
 G_M42106_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r4,r5,r11,lr}
+            push    {r3,r4,r11,lr}
             add     r11, sp, 8
                        ;; size=8 bbWeight=1 PerfScore 2.00
-G_M42106_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M42106_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movs    r1, 6
@@ -32,35 +31,16 @@ G_M42106_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             blx     r3     // CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[r0]
             ; gcr arg pop 0
+            add     r4, r0, 8
+            ; byrRegs +[r4]
+            movw    r3, 0xd1ff
+            str     r3, [r4+0x04]
+            movw    r3, 0xd1ff
+            str     r3, [r4+0x08]
+            movw    r3, 0xd1ff
+            str     r3, [r4+0x0C]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
-            movs    r4, 1
-            add     r5, r0, 8
-            ; byrRegs +[r5]
-                       ;; size=34 bbWeight=1 PerfScore 10.00
-G_M42106_IG03:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0020 {r5}, byref, isz
-            lsls    r2, r4, 2
-            movw    r1, 0xd1ff
-            ands    r1, r3
-            str     r1, [r5+r2]
-            adds    r1, r2, 4
-            movw    lr, 0xd1ff
-            add     lr, r3
-            movw    r12, 0xd1ff
-            and     lr, lr, r12
-            str     lr, [r5+r1]
-            adds    r2, 8
-            movw    r1, 0xd1ff
-            adds    r1, r3, r1
-            and     r1, r1, r12
-            str     r1, [r5+r2]
-            movw    r2, 0xd1ff
-            adds    r3, r3, r2
-            adds    r4, r4, 3
-            cmp     r4, 3
-            ble     SHORT G_M42106_IG03
-                       ;; size=56 bbWeight=8 PerfScore 160.00
-G_M42106_IG04:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0020 {r5}, byref
             str     r3, [r0+0x18]
             str     r3, [r0+0x1C]
             movw    r3, 0xd1ff
@@ -69,34 +49,38 @@ G_M42106_IG04:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0020 {r5}, by
             blx     r3     // Benchstone.BenchI.BubbleSort2:Inner(int[])
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            movs    r4, 0
-                       ;; size=18 bbWeight=1 PerfScore 7.00
-G_M42106_IG05:        ; bbWeight=3.96, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref, isz
-            lsls    r0, r4, 2
-            ldr     r3, [r5+r0]
-            adds    r4, r4, 1
-            adds    r0, r0, 4
-            ldr     r0, [r5+r0]
-            cmp     r3, r0
-            bgt     SHORT G_M42106_IG08
-            cmp     r4, 4
-            blt     SHORT G_M42106_IG05
+            ldr     r0, [r4]
+            ldr     r3, [r4+0x04]
+            cmp     r0, r3
+            bgt     SHORT G_M42106_IG06
+            movs    r0, 1
+                       ;; size=76 bbWeight=1 PerfScore 26.00
+G_M42106_IG03:        ; bbWeight=3.96, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
+            lsls    r3, r0, 2
+            ldr     r2, [r4+r3]
+            adds    r0, r0, 1
+            adds    r3, r3, 4
+            ldr     r3, [r4+r3]
+            cmp     r2, r3
+            bgt     SHORT G_M42106_IG06
+            cmp     r0, 4
+            blt     SHORT G_M42106_IG03
                         ;; size=18 bbWeight=3.96 PerfScore 35.64
-G_M42106_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; byrRegs -[r5]
+G_M42106_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; byrRegs -[r4]
             movs    r0, 1
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M42106_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r4,r5,r11,pc}
+G_M42106_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r3,r4,r11,pc}
                      ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M42106_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M42106_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             movs    r0, 0
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M42106_IG09:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r4,r5,r11,pc}
+G_M42106_IG07:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r3,r4,r11,pc}
                      ;; size=4 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 146, prolog size 8, PerfScore 217.14, instruction count 52, allocated bytes for code 146 (MethodHash=86305b85) for method Benchstone.BenchI.BubbleSort2:Bench():ubyte (FullOpts)
+; Total bytes of code 114, prolog size 8, PerfScore 66.14, instruction count 41, allocated bytes for code 114 (MethodHash=86305b85) for method Benchstone.BenchI.BubbleSort2:Bench():ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -108,7 +92,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 73 (0x00049) Actual length = 146 (0x000092)
+  Function Length   : 57 (0x00039) Actual length = 114 (0x000072)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -120,7 +104,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
+    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
     FF          end
     FF          end
 
  
+46 (+67.65%) : 230198.dasm - Microsoft.Build.Construction.ProjectElementContainer:VerifyThrowInvalidOperationNotSelfAncestor(Microsoft.Build.Construction.ProjectElement):this (FullOpts)
@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  4   )     ref  ->   r0         this class-hnd single-def <Microsoft.Build.Construction.ProjectElementContainer>
-;  V01 arg1         [V01,T01] (  3,  6   )     ref  ->   r4         class-hnd single-def <Microsoft.Build.Construction.ProjectElement>
-;  V02 loc0         [V02,T00] (  5, 17   )     ref  ->   r5         class-hnd <Microsoft.Build.Construction.ProjectElement>
+;  V00 this         [V00,T02] (  5,  5   )     ref  ->   r5         this class-hnd single-def <Microsoft.Build.Construction.ProjectElementContainer>
+;  V01 arg1         [V01,T01] (  4,  7   )     ref  ->   r4         class-hnd single-def <Microsoft.Build.Construction.ProjectElement>
+;  V02 loc0         [V02,T00] (  6, 18   )     ref  ->   r5         class-hnd <Microsoft.Build.Construction.ProjectElement>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;
@@ -19,22 +19,45 @@
 G_M13573_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r4,r5,r11,lr}
             add     r11, sp, 8
-            mov     r4, r1
-            ; gcrRegs +[r4]
-                       ;; size=10 bbWeight=1 PerfScore 3.00
-G_M13573_IG02:        ; bbWeight=1, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r0]
             mov     r5, r0
             ; gcrRegs +[r5]
-            cmp     r0, 0
-            beq     SHORT G_M13573_IG06
-                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M13573_IG03:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+            mov     r4, r1
+            ; gcrRegs +[r4]
+                       ;; size=12 bbWeight=1 PerfScore 4.00
+G_M13573_IG02:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r5, 0
+            beq     SHORT G_M13573_IG08
+            cmp     r5, r4
+            bne     SHORT G_M13573_IG04
+                       ;; size=8 bbWeight=1 PerfScore 4.00
+G_M13573_IG03:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+            movs    r1, 0
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // Microsoft.Build.Shared.ErrorUtilities:ThrowInvalidOperation(System.String,System.Object[])
+                       ;; size=22 bbWeight=0.50 PerfScore 3.50
+G_M13573_IG04:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r5
+            ; gcrRegs +[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // Microsoft.Build.Construction.ProjectElement:get_Parent():Microsoft.Build.Construction.ProjectElementContainer:this
+            ; gcrRegs -[r5]
+            mov     r5, r0
+            ; gcrRegs +[r5]
+            cmp     r5, 0
+            beq     SHORT G_M13573_IG08
+                       ;; size=20 bbWeight=1 PerfScore 8.00
+G_M13573_IG05:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
             cmp     r5, r4
-            bne     SHORT G_M13573_IG05
+            bne     SHORT G_M13573_IG07
                        ;; size=4 bbWeight=4 PerfScore 8.00
-G_M13573_IG04:        ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+G_M13573_IG06:        ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movs    r1, 0
@@ -43,7 +66,7 @@ G_M13573_IG04:        ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ldr     r3, [r3]
             blx     r3     // Microsoft.Build.Shared.ErrorUtilities:ThrowInvalidOperation(System.String,System.Object[])
                        ;; size=22 bbWeight=2 PerfScore 14.00
-G_M13573_IG05:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+G_M13573_IG07:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             mov     r0, r5
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
@@ -55,14 +78,14 @@ G_M13573_IG05:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             mov     r5, r0
             ; gcrRegs +[r5]
             cmp     r5, 0
-            bne     SHORT G_M13573_IG03
+            bne     SHORT G_M13573_IG05
                         ;; size=22 bbWeight=4 PerfScore 36.00
-G_M13573_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M13573_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r0 r4-r5]
             pop     {r4,r5,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 68, prolog size 8, PerfScore 65.00, instruction count 25, allocated bytes for code 68 (MethodHash=7a1dcafa) for method Microsoft.Build.Construction.ProjectElementContainer:VerifyThrowInvalidOperationNotSelfAncestor(Microsoft.Build.Construction.ProjectElement):this (FullOpts)
+; Total bytes of code 114, prolog size 8, PerfScore 78.50, instruction count 42, allocated bytes for code 114 (MethodHash=7a1dcafa) for method Microsoft.Build.Construction.ProjectElementContainer:VerifyThrowInvalidOperationNotSelfAncestor(Microsoft.Build.Construction.ProjectElement):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -74,7 +97,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 34 (0x00022) Actual length = 68 (0x000044)
+  Function Length   : 57 (0x00039) Actual length = 114 (0x000072)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
+36 (+69.23%) : 117161.dasm - Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
@@ -8,68 +8,111 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  6, 22   )     ref  ->   r4         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
+;  V00 this         [V00,T01] (  9, 22.50)     ref  ->   r4         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T00] (  3, 36   )     ref  ->   r0         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
+;  V02 tmp1         [V02,T00] (  6, 40.50)     ref  ->   r5         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
 ;* V03 tmp2         [V03    ] (  0,  0   )     ref  ->  zero-ref   
-;  V04 tmp3         [V04,T03] (  4, 14   )     int  ->   r3        
-;  V05 tmp4         [V05,T02] (  3, 18   )     int  ->   r0         "Inline stloc first use temp"
+;  V04 tmp3         [V04,T03] (  8, 15.75)     int  ->   r6        
+;  V05 tmp4         [V05,T02] (  6, 20.25)     int  ->   r3         "Inline stloc first use temp"
+;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   r7         "CSE - aggressive"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M16914_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r11,lr}
-            add     r11, sp, 8
+            push    {r4,r5,r6,r7,r11,lr}
+            add     r11, sp, 16
             mov     r4, r0
             ; gcrRegs +[r4]
                        ;; size=10 bbWeight=1 PerfScore 3.00
 G_M16914_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M16914_IG04
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M16914_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M16914_IG03:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r4]
-            ldr     r3, [r3+0x50]
-            ldr     r3, [r3+0x10]
+            ldr     r7, [r3+0x50]
+            ldr     r3, [r7+0x10]
             blx     r3        // <unknown method>
             ; gcrRegs -[r0]
-                      ;; size=10 bbWeight=2 PerfScore 10.00
-G_M16914_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r4+0x04]
-            ; gcrRegs +[r0]
-            cmp     r0, 0
+            b       SHORT G_M16914_IG12
+                       ;; size=12 bbWeight=0.25 PerfScore 1.50
+G_M16914_IG04:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r5, [r4+0x04]
+            ; gcrRegs +[r5]
+            cmp     r5, 0
             bne     SHORT G_M16914_IG06
-                     ;; size=6 bbWeight=8 PerfScore 24.00
-G_M16914_IG05:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0]
-            movs    r3, 0
+                        ;; size=6 bbWeight=1 PerfScore 3.00
+G_M16914_IG05:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            movs    r6, 0
             b       SHORT G_M16914_IG07
-                     ;; size=4 bbWeight=2 PerfScore 4.00
-G_M16914_IG06:        ; bbWeight=2, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[r0]
-            ldr     r3, [r0+0x08]
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M16914_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0]
-            mov     r0, r3
-            ldr     r2, [r4+0x30]
-            cmp     r2, 0
-            beq     SHORT G_M16914_IG09
-                       ;; size=8 bbWeight=8 PerfScore 32.00
-G_M16914_IG08:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
-            adds    r0, r3, 1
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M16914_IG09:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+                       ;; size=4 bbWeight=0.25 PerfScore 0.50
+G_M16914_IG06:        ; bbWeight=0.25, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r5]
+            ldr     r6, [r5+0x08]
+                       ;; size=2 bbWeight=0.25 PerfScore 0.25
+G_M16914_IG07:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            mov     r3, r6
+            ldr     r0, [r4+0x30]
             cmp     r0, 0
+            beq     SHORT G_M16914_IG09
+                       ;; size=8 bbWeight=1 PerfScore 4.00
+G_M16914_IG08:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            adds    r3, r6, 1
+                       ;; size=2 bbWeight=0.25 PerfScore 0.25
+G_M16914_IG09:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
             bgt     SHORT G_M16914_IG03
-                     ;; size=4 bbWeight=8 PerfScore 16.00
-G_M16914_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+                        ;; size=4 bbWeight=1 PerfScore 2.00
+G_M16914_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r4]
-            pop     {r3,r4,r11,pc}
+            b       SHORT G_M16914_IG18
+                       ;; size=2 bbWeight=0.12 PerfScore 0.12
+G_M16914_IG11:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r4]
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            ldr     r3, [r7+0x10]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+                       ;; size=6 bbWeight=2 PerfScore 6.00
+G_M16914_IG12:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r5, [r4+0x04]
+            ; gcrRegs +[r5]
+            cmp     r5, 0
+            bne     SHORT G_M16914_IG14
+                       ;; size=6 bbWeight=8 PerfScore 24.00
+G_M16914_IG13:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            movs    r6, 0
+            b       SHORT G_M16914_IG15
+                       ;; size=4 bbWeight=2 PerfScore 4.00
+G_M16914_IG14:        ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r5]
+            ldr     r6, [r5+0x08]
+                       ;; size=2 bbWeight=2 PerfScore 2.00
+G_M16914_IG15:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            mov     r3, r6
+            ldr     r0, [r4+0x30]
+            cmp     r0, 0
+            beq     SHORT G_M16914_IG17
+                       ;; size=8 bbWeight=8 PerfScore 32.00
+G_M16914_IG16:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            adds    r3, r6, 1
+                       ;; size=2 bbWeight=2 PerfScore 2.00
+G_M16914_IG17:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
+            bgt     SHORT G_M16914_IG11
+                       ;; size=4 bbWeight=8 PerfScore 16.00
+G_M16914_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[r4]
+            pop     {r4,r5,r6,r7,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 52, prolog size 8, PerfScore 95.00, instruction count 23, allocated bytes for code 52 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
+; Total bytes of code 88, prolog size 8, PerfScore 102.62, instruction count 41, allocated bytes for code 88 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -81,11 +124,11 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 52 (0x000034)
+  Function Length   : 44 (0x0002c) Actual length = 88 (0x000058)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
+    A8 F0       pop {r4,r5,r6,r7,r11,lr}            ; opsize 32
     FF          end
     FF          end
 
  
+36 (+69.23%) : 338245.dasm - Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
@@ -8,68 +8,111 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  6, 22   )     ref  ->   r4         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
+;  V00 this         [V00,T01] (  9, 22.50)     ref  ->   r4         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T00] (  3, 36   )     ref  ->   r0         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
+;  V02 tmp1         [V02,T00] (  6, 40.50)     ref  ->   r5         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
 ;* V03 tmp2         [V03    ] (  0,  0   )     ref  ->  zero-ref   
-;  V04 tmp3         [V04,T03] (  4, 14   )     int  ->   r3        
-;  V05 tmp4         [V05,T02] (  3, 18   )     int  ->   r0         "Inline stloc first use temp"
+;  V04 tmp3         [V04,T03] (  8, 15.75)     int  ->   r6        
+;  V05 tmp4         [V05,T02] (  6, 20.25)     int  ->   r3         "Inline stloc first use temp"
+;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   r7         "CSE - aggressive"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M16914_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r11,lr}
-            add     r11, sp, 8
+            push    {r4,r5,r6,r7,r11,lr}
+            add     r11, sp, 16
             mov     r4, r0
             ; gcrRegs +[r4]
                        ;; size=10 bbWeight=1 PerfScore 3.00
 G_M16914_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M16914_IG04
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M16914_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M16914_IG03:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r4]
-            ldr     r3, [r3+0x50]
-            ldr     r3, [r3+0x10]
+            ldr     r7, [r3+0x50]
+            ldr     r3, [r7+0x10]
             blx     r3        // <unknown method>
             ; gcrRegs -[r0]
-                      ;; size=10 bbWeight=2 PerfScore 10.00
-G_M16914_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r4+0x04]
-            ; gcrRegs +[r0]
-            cmp     r0, 0
+            b       SHORT G_M16914_IG12
+                       ;; size=12 bbWeight=0.25 PerfScore 1.50
+G_M16914_IG04:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r5, [r4+0x04]
+            ; gcrRegs +[r5]
+            cmp     r5, 0
             bne     SHORT G_M16914_IG06
-                     ;; size=6 bbWeight=8 PerfScore 24.00
-G_M16914_IG05:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0]
-            movs    r3, 0
+                        ;; size=6 bbWeight=1 PerfScore 3.00
+G_M16914_IG05:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            movs    r6, 0
             b       SHORT G_M16914_IG07
-                     ;; size=4 bbWeight=2 PerfScore 4.00
-G_M16914_IG06:        ; bbWeight=2, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[r0]
-            ldr     r3, [r0+0x08]
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M16914_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0]
-            mov     r0, r3
-            ldr     r2, [r4+0x30]
-            cmp     r2, 0
-            beq     SHORT G_M16914_IG09
-                       ;; size=8 bbWeight=8 PerfScore 32.00
-G_M16914_IG08:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
-            adds    r0, r3, 1
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M16914_IG09:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+                       ;; size=4 bbWeight=0.25 PerfScore 0.50
+G_M16914_IG06:        ; bbWeight=0.25, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r5]
+            ldr     r6, [r5+0x08]
+                       ;; size=2 bbWeight=0.25 PerfScore 0.25
+G_M16914_IG07:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            mov     r3, r6
+            ldr     r0, [r4+0x30]
             cmp     r0, 0
+            beq     SHORT G_M16914_IG09
+                       ;; size=8 bbWeight=1 PerfScore 4.00
+G_M16914_IG08:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            adds    r3, r6, 1
+                       ;; size=2 bbWeight=0.25 PerfScore 0.25
+G_M16914_IG09:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
             bgt     SHORT G_M16914_IG03
-                     ;; size=4 bbWeight=8 PerfScore 16.00
-G_M16914_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+                        ;; size=4 bbWeight=1 PerfScore 2.00
+G_M16914_IG10:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r4]
-            pop     {r3,r4,r11,pc}
+            b       SHORT G_M16914_IG18
+                       ;; size=2 bbWeight=0.12 PerfScore 0.12
+G_M16914_IG11:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r4]
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            ldr     r3, [r7+0x10]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+                       ;; size=6 bbWeight=2 PerfScore 6.00
+G_M16914_IG12:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r5, [r4+0x04]
+            ; gcrRegs +[r5]
+            cmp     r5, 0
+            bne     SHORT G_M16914_IG14
+                       ;; size=6 bbWeight=8 PerfScore 24.00
+G_M16914_IG13:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            movs    r6, 0
+            b       SHORT G_M16914_IG15
+                       ;; size=4 bbWeight=2 PerfScore 4.00
+G_M16914_IG14:        ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r5]
+            ldr     r6, [r5+0x08]
+                       ;; size=2 bbWeight=2 PerfScore 2.00
+G_M16914_IG15:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r5]
+            mov     r3, r6
+            ldr     r0, [r4+0x30]
+            cmp     r0, 0
+            beq     SHORT G_M16914_IG17
+                       ;; size=8 bbWeight=8 PerfScore 32.00
+G_M16914_IG16:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            adds    r3, r6, 1
+                       ;; size=2 bbWeight=2 PerfScore 2.00
+G_M16914_IG17:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
+            bgt     SHORT G_M16914_IG11
+                       ;; size=4 bbWeight=8 PerfScore 16.00
+G_M16914_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[r4]
+            pop     {r4,r5,r6,r7,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 52, prolog size 8, PerfScore 95.00, instruction count 23, allocated bytes for code 52 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
+; Total bytes of code 88, prolog size 8, PerfScore 102.62, instruction count 41, allocated bytes for code 88 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -81,11 +124,11 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 52 (0x000034)
+  Function Length   : 44 (0x0002c) Actual length = 88 (0x000058)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
+    A8 F0       pop {r4,r5,r6,r7,r11,lr}            ; opsize 32
     FF          end
     FF          end
 
  
  
libraries.crossgen2.linux.arm.checked.mch
-8 (-4.76%) : 17509.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
@@ -8,25 +8,25 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] ( 10,  6   )  struct ( 8) [sp+0x10]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
-;  V01 arg1         [V01,T03] (  6,  4   )   byref  ->   r2         single-def
-;  V02 arg2         [V02,T04] (  6,  4   )   byref  ->   r3         single-def
-;  V03 arg3         [V03,T01] (  2,  5   )  ushort  ->   lr        
-;  V04 loc0         [V04,T00] (  7, 16.50)     int  ->   r0        
+;  V00 arg0         [V00,T00] ( 10,  6   )  struct ( 8) [sp+0x10]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
+;  V01 arg1         [V01,T01] (  6,  4   )   byref  ->   r2         single-def
+;  V02 arg2         [V02,T02] (  6,  4   )   byref  ->   r3         single-def
+;  V03 arg3         [V03,T05] (  1,  1   )  ushort  ->  [sp+0x18] 
+;  V04 loc0         [V04,T03] (  7,  4.50)     int  ->   r0        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V06 cse0         [V06,T04] (  3,  3   )     int  ->   r5         "CSE - aggressive"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M14385_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             push    {r0,r1}
-            push    {r3,r4,r11,lr}
+            push    {r4,r5,r11,lr}
             add     r11, sp, 8
-            ldr     lr, [sp+0x18]
-                       ;; size=14 bbWeight=1 PerfScore 4.00
+                      ;; size=10 bbWeight=1 PerfScore 3.00
 G_M14385_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
             ; byrRegs +[r2-r3]
-            uxth    r0, lr
-            cmp     r0, 0
+            ldrh    r5, [sp+0x18]
+            cmp     r5, 0
             bne     SHORT G_M14385_IG05
                        ;; size=8 bbWeight=1 PerfScore 3.00
 G_M14385_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref
@@ -42,35 +42,32 @@ G_M14385_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}
             ; gcr arg pop 0
                        ;; size=20 bbWeight=0.50 PerfScore 3.50
 G_M14385_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,lr}
+            pop     {r4,r5,r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M14385_IG05:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref, isz
+G_M14385_IG05:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref, isz
             ; byrRegs +[r2-r3]
-            uxth    r0, lr
-            orr     r0, r0, 32
+            orr     r0, r5, 32
             cmp     r0, 103
             bgt     SHORT G_M14385_IG08
-                      ;; size=12 bbWeight=4 PerfScore 16.00
-G_M14385_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
+                        ;; size=8 bbWeight=1 PerfScore 3.00
+G_M14385_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
             cmp     r0, 100
             beq     SHORT G_M14385_IG03
             cmp     r0, 103
             beq     SHORT G_M14385_IG03
-                      ;; size=8 bbWeight=2 PerfScore 8.00
-G_M14385_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
-            b       SHORT G_M14385_IG13
-                       ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M14385_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
+                        ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M14385_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
+            b       SHORT G_M14385_IG12
+                       ;; size=2 bbWeight=0.12 PerfScore 0.12
+G_M14385_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
             cmp     r0, 110
-            beq     SHORT G_M14385_IG11
+            beq     SHORT G_M14385_IG10
             cmp     r0, 114
             beq     SHORT G_M14385_IG03
-                      ;; size=8 bbWeight=2 PerfScore 8.00
-G_M14385_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
             cmp     r0, 120
-            bne     SHORT G_M14385_IG13
+            bne     SHORT G_M14385_IG12
             ldr     r0, [sp+0x10]
             ; byrRegs +[r0]
             ldr     r1, [sp+0x14]
@@ -81,13 +78,13 @@ G_M14385_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}
             blx     lr     // <unknown method>
             ; byrRegs -[r0 r2-r3]
             ; gcr arg pop 0
-                      ;; size=24 bbWeight=0.50 PerfScore 4.50
-G_M14385_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,lr}
+                       ;; size=32 bbWeight=0.50 PerfScore 6.50
+G_M14385_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r4,r5,r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M14385_IG11:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref
+G_M14385_IG10:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref
             ; byrRegs +[r2-r3]
             ldr     r0, [sp+0x10]
             ; byrRegs +[r0]
@@ -100,12 +97,12 @@ G_M14385_IG11:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, by
             ; byrRegs -[r0 r2-r3]
             ; gcr arg pop 0
                        ;; size=20 bbWeight=0.50 PerfScore 3.50
-G_M14385_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,lr}
+G_M14385_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r4,r5,r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M14385_IG13:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref
+G_M14385_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref
             ; byrRegs +[r2-r3]
             ldr     r0, [sp+0x10]
             ; byrRegs +[r0]
@@ -118,13 +115,13 @@ G_M14385_IG13:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, by
             ; byrRegs -[r0 r2-r3]
             ; gcr arg pop 0
                        ;; size=20 bbWeight=0.50 PerfScore 3.50
-G_M14385_IG14:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,lr}
+G_M14385_IG13:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r4,r5,r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 168, prolog size 14, PerfScore 60.50, instruction count 62, allocated bytes for code 168 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
+; Total bytes of code 160, prolog size 10, PerfScore 34.12, instruction count 60, allocated bytes for code 160 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -136,7 +133,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 84 (0x00054) Actual length = 168 (0x0000a8)
+  Function Length   : 80 (0x00050) Actual length = 160 (0x0000a0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -155,11 +152,11 @@ Unwind Info:
   Condition                  : 14 (0xe) (always)
   Epilog Start Index         : 5 (0x05)
   ---- Unwind codes ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     EC 03       pop {r0,r1}                         ; opsize 16
     FF          end
     ---- Epilog start at index 5 ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     02          add sp, sp, #8                      ; opsize 16
     FD          end + nop                           ; opsize 16
     FF          end
  
-8 (-4.76%) : 17513.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
@@ -8,25 +8,25 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] ( 10,  6   )  struct ( 8) [sp+0x10]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
-;  V01 arg1         [V01,T03] (  6,  4   )   byref  ->   r2         single-def
-;  V02 arg2         [V02,T04] (  6,  4   )   byref  ->   r3         single-def
-;  V03 arg3         [V03,T01] (  2,  5   )  ushort  ->   lr        
-;  V04 loc0         [V04,T00] (  7, 16.50)     int  ->   r0        
+;  V00 arg0         [V00,T00] ( 10,  6   )  struct ( 8) [sp+0x10]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
+;  V01 arg1         [V01,T01] (  6,  4   )   byref  ->   r2         single-def
+;  V02 arg2         [V02,T02] (  6,  4   )   byref  ->   r3         single-def
+;  V03 arg3         [V03,T05] (  1,  1   )  ushort  ->  [sp+0x18] 
+;  V04 loc0         [V04,T03] (  7,  4.50)     int  ->   r0        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V06 cse0         [V06,T04] (  3,  3   )     int  ->   r5         "CSE - aggressive"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M14385_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             push    {r0,r1}
-            push    {r3,r4,r11,lr}
+            push    {r4,r5,r11,lr}
             add     r11, sp, 8
-            ldr     lr, [sp+0x18]
-                       ;; size=14 bbWeight=1 PerfScore 4.00
+                      ;; size=10 bbWeight=1 PerfScore 3.00
 G_M14385_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
             ; byrRegs +[r2-r3]
-            uxth    r0, lr
-            cmp     r0, 0
+            ldrh    r5, [sp+0x18]
+            cmp     r5, 0
             bne     SHORT G_M14385_IG05
                        ;; size=8 bbWeight=1 PerfScore 3.00
 G_M14385_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref
@@ -42,35 +42,32 @@ G_M14385_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}
             ; gcr arg pop 0
                        ;; size=20 bbWeight=0.50 PerfScore 3.50
 G_M14385_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,lr}
+            pop     {r4,r5,r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M14385_IG05:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref, isz
+G_M14385_IG05:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref, isz
             ; byrRegs +[r2-r3]
-            uxth    r0, lr
-            orr     r0, r0, 32
+            orr     r0, r5, 32
             cmp     r0, 103
             bgt     SHORT G_M14385_IG08
-                      ;; size=12 bbWeight=4 PerfScore 16.00
-G_M14385_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
+                        ;; size=8 bbWeight=1 PerfScore 3.00
+G_M14385_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
             cmp     r0, 100
             beq     SHORT G_M14385_IG03
             cmp     r0, 103
             beq     SHORT G_M14385_IG03
-                      ;; size=8 bbWeight=2 PerfScore 8.00
-G_M14385_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
-            b       SHORT G_M14385_IG13
-                       ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M14385_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
+                        ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M14385_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
+            b       SHORT G_M14385_IG12
+                       ;; size=2 bbWeight=0.12 PerfScore 0.12
+G_M14385_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
             cmp     r0, 110
-            beq     SHORT G_M14385_IG11
+            beq     SHORT G_M14385_IG10
             cmp     r0, 114
             beq     SHORT G_M14385_IG03
-                      ;; size=8 bbWeight=2 PerfScore 8.00
-G_M14385_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
             cmp     r0, 120
-            bne     SHORT G_M14385_IG13
+            bne     SHORT G_M14385_IG12
             ldr     r0, [sp+0x10]
             ; byrRegs +[r0]
             ldr     r1, [sp+0x14]
@@ -81,13 +78,13 @@ G_M14385_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}
             blx     lr     // <unknown method>
             ; byrRegs -[r0 r2-r3]
             ; gcr arg pop 0
-                      ;; size=24 bbWeight=0.50 PerfScore 4.50
-G_M14385_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,lr}
+                       ;; size=32 bbWeight=0.50 PerfScore 6.50
+G_M14385_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r4,r5,r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M14385_IG11:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref
+G_M14385_IG10:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref
             ; byrRegs +[r2-r3]
             ldr     r0, [sp+0x10]
             ; byrRegs +[r0]
@@ -100,12 +97,12 @@ G_M14385_IG11:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, by
             ; byrRegs -[r0 r2-r3]
             ; gcr arg pop 0
                        ;; size=20 bbWeight=0.50 PerfScore 3.50
-G_M14385_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,lr}
+G_M14385_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r4,r5,r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M14385_IG13:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref
+G_M14385_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref
             ; byrRegs +[r2-r3]
             ldr     r0, [sp+0x10]
             ; byrRegs +[r0]
@@ -118,13 +115,13 @@ G_M14385_IG13:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, by
             ; byrRegs -[r0 r2-r3]
             ; gcr arg pop 0
                        ;; size=20 bbWeight=0.50 PerfScore 3.50
-G_M14385_IG14:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,lr}
+G_M14385_IG13:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r4,r5,r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 168, prolog size 14, PerfScore 60.50, instruction count 62, allocated bytes for code 168 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
+; Total bytes of code 160, prolog size 10, PerfScore 34.12, instruction count 60, allocated bytes for code 160 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -136,7 +133,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 84 (0x00054) Actual length = 168 (0x0000a8)
+  Function Length   : 80 (0x00050) Actual length = 160 (0x0000a0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -155,11 +152,11 @@ Unwind Info:
   Condition                  : 14 (0xe) (always)
   Epilog Start Index         : 5 (0x05)
   ---- Unwind codes ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     EC 03       pop {r0,r1}                         ; opsize 16
     FF          end
     ---- Epilog start at index 5 ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     02          add sp, sp, #8                      ; opsize 16
     FD          end + nop                           ; opsize 16
     FF          end
  
-8 (-4.76%) : 17510.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
@@ -8,25 +8,25 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] ( 10,  6   )  struct ( 8) [sp+0x10]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
-;  V01 arg1         [V01,T03] (  6,  4   )   byref  ->   r2         single-def
-;  V02 arg2         [V02,T04] (  6,  4   )   byref  ->   r3         single-def
-;  V03 arg3         [V03,T01] (  2,  5   )  ushort  ->   lr        
-;  V04 loc0         [V04,T00] (  7, 16.50)     int  ->   r0        
+;  V00 arg0         [V00,T00] ( 10,  6   )  struct ( 8) [sp+0x10]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
+;  V01 arg1         [V01,T01] (  6,  4   )   byref  ->   r2         single-def
+;  V02 arg2         [V02,T02] (  6,  4   )   byref  ->   r3         single-def
+;  V03 arg3         [V03,T05] (  1,  1   )  ushort  ->  [sp+0x18] 
+;  V04 loc0         [V04,T03] (  7,  4.50)     int  ->   r0        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V06 cse0         [V06,T04] (  3,  3   )     int  ->   r5         "CSE - aggressive"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M14385_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             push    {r0,r1}
-            push    {r3,r4,r11,lr}
+            push    {r4,r5,r11,lr}
             add     r11, sp, 8
-            ldr     lr, [sp+0x18]
-                       ;; size=14 bbWeight=1 PerfScore 4.00
+                      ;; size=10 bbWeight=1 PerfScore 3.00
 G_M14385_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
             ; byrRegs +[r2-r3]
-            uxth    r0, lr
-            cmp     r0, 0
+            ldrh    r5, [sp+0x18]
+            cmp     r5, 0
             bne     SHORT G_M14385_IG05
                        ;; size=8 bbWeight=1 PerfScore 3.00
 G_M14385_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref
@@ -42,35 +42,32 @@ G_M14385_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}
             ; gcr arg pop 0
                        ;; size=20 bbWeight=0.50 PerfScore 3.50
 G_M14385_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,lr}
+            pop     {r4,r5,r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M14385_IG05:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref, isz
+G_M14385_IG05:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref, isz
             ; byrRegs +[r2-r3]
-            uxth    r0, lr
-            orr     r0, r0, 32
+            orr     r0, r5, 32
             cmp     r0, 103
             bgt     SHORT G_M14385_IG08
-                      ;; size=12 bbWeight=4 PerfScore 16.00
-G_M14385_IG06:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
+                        ;; size=8 bbWeight=1 PerfScore 3.00
+G_M14385_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
             cmp     r0, 100
             beq     SHORT G_M14385_IG03
             cmp     r0, 103
             beq     SHORT G_M14385_IG03
-                      ;; size=8 bbWeight=2 PerfScore 8.00
-G_M14385_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
-            b       SHORT G_M14385_IG13
-                       ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M14385_IG08:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
+                        ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M14385_IG07:        ; bbWeight=0.12, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
+            b       SHORT G_M14385_IG12
+                       ;; size=2 bbWeight=0.12 PerfScore 0.12
+G_M14385_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
             cmp     r0, 110
-            beq     SHORT G_M14385_IG11
+            beq     SHORT G_M14385_IG10
             cmp     r0, 114
             beq     SHORT G_M14385_IG03
-                      ;; size=8 bbWeight=2 PerfScore 8.00
-G_M14385_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, byref, isz
             cmp     r0, 120
-            bne     SHORT G_M14385_IG13
+            bne     SHORT G_M14385_IG12
             ldr     r0, [sp+0x10]
             ; byrRegs +[r0]
             ldr     r1, [sp+0x14]
@@ -81,13 +78,13 @@ G_M14385_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}
             blx     lr     // <unknown method>
             ; byrRegs -[r0 r2-r3]
             ; gcr arg pop 0
-                      ;; size=24 bbWeight=0.50 PerfScore 4.50
-G_M14385_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,lr}
+                       ;; size=32 bbWeight=0.50 PerfScore 6.50
+G_M14385_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r4,r5,r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M14385_IG11:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref
+G_M14385_IG10:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref
             ; byrRegs +[r2-r3]
             ldr     r0, [sp+0x10]
             ; byrRegs +[r0]
@@ -100,12 +97,12 @@ G_M14385_IG11:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, by
             ; byrRegs -[r0 r2-r3]
             ; gcr arg pop 0
                        ;; size=20 bbWeight=0.50 PerfScore 3.50
-G_M14385_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,lr}
+G_M14385_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r4,r5,r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M14385_IG13:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref
+G_M14385_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=000C {r2 r3}, gcvars, byref
             ; byrRegs +[r2-r3]
             ldr     r0, [sp+0x10]
             ; byrRegs +[r0]
@@ -118,13 +115,13 @@ G_M14385_IG13:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, by
             ; byrRegs -[r0 r2-r3]
             ; gcr arg pop 0
                        ;; size=20 bbWeight=0.50 PerfScore 3.50
-G_M14385_IG14:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,lr}
+G_M14385_IG13:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r4,r5,r11,lr}
             add     sp, 8
             bx      lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 
-; Total bytes of code 168, prolog size 14, PerfScore 60.50, instruction count 62, allocated bytes for code 168 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
+; Total bytes of code 160, prolog size 10, PerfScore 34.12, instruction count 60, allocated bytes for code 160 (MethodHash=44f4c7ce) for method System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -136,7 +133,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 84 (0x00054) Actual length = 168 (0x0000a8)
+  Function Length   : 80 (0x00050) Actual length = 160 (0x0000a0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -155,11 +152,11 @@ Unwind Info:
   Condition                  : 14 (0xe) (always)
   Epilog Start Index         : 5 (0x05)
   ---- Unwind codes ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     EC 03       pop {r0,r1}                         ; opsize 16
     FF          end
     ---- Epilog start at index 5 ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     02          add sp, sp, #8                      ; opsize 16
     FD          end + nop                           ; opsize 16
     FF          end
  
+46 (+76.67%) : 96900.dasm - System.Xml.DocumentXPathNavigator:ParentNodeTail(System.Xml.XmlNode):System.Xml.XmlNode (FullOpts)
@@ -8,7 +8,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  7, 19   )     ref  ->   r5         class-hnd <System.Xml.XmlNode>
+;  V00 arg0         [V00,T00] ( 11, 21   )     ref  ->   r5         class-hnd <System.Xml.XmlNode>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 0
@@ -22,7 +22,40 @@ G_M6958_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M6958_IG02:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M6958_IG04
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M6958_IG03:        ; bbWeight=2, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
+G_M6958_IG03:        ; bbWeight=0.25, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r5
+            ; gcrRegs +[r0]
+            movw    r4, LOW RELOC 0xD1FFAB1E
+            movt    r4, HIGH RELOC 0xD1FFAB1E
+            add     r4, pc
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r5]
+            mov     r5, r0
+            ; gcrRegs +[r5]
+            b       SHORT G_M6958_IG08
+                       ;; size=20 bbWeight=0.25 PerfScore 2.00
+G_M6958_IG04:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0]
+            cmp     r5, 0
+            beq     SHORT G_M6958_IG10
+                       ;; size=4 bbWeight=1 PerfScore 2.00
+G_M6958_IG05:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r5
+            ; gcrRegs +[r0]
+            movw    r4, LOW RELOC 0xD1FFAB1E
+            movt    r4, HIGH RELOC 0xD1FFAB1E
+            add     r4, pc
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            cmp     r0, 5
+            beq     SHORT G_M6958_IG03
+                       ;; size=20 bbWeight=0.50 PerfScore 4.00
+G_M6958_IG06:        ; bbWeight=0.12, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M6958_IG10
+                       ;; size=2 bbWeight=0.12 PerfScore 0.12
+G_M6958_IG07:        ; bbWeight=2, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             mov     r0, r5
             ; gcrRegs +[r0]
             movw    r4, LOW RELOC 0xD1FFAB1E
@@ -34,12 +67,12 @@ G_M6958_IG03:        ; bbWeight=2, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             mov     r5, r0
             ; gcrRegs +[r5]
                        ;; size=18 bbWeight=2 PerfScore 14.00
-G_M6958_IG04:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+G_M6958_IG08:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
             cmp     r5, 0
-            beq     SHORT G_M6958_IG06
+            beq     SHORT G_M6958_IG10
                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M6958_IG05:        ; bbWeight=4, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+G_M6958_IG09:        ; bbWeight=4, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             mov     r0, r5
             ; gcrRegs +[r0]
             movw    r4, LOW RELOC 0xD1FFAB1E
@@ -49,17 +82,17 @@ G_M6958_IG05:        ; bbWeight=4, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             cmp     r0, 5
-            beq     SHORT G_M6958_IG03
+            beq     SHORT G_M6958_IG07
                       ;; size=20 bbWeight=4 PerfScore 32.00
-G_M6958_IG06:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
+G_M6958_IG10:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             mov     r0, r5
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M6958_IG07:        ; bbWeight=1, epilog, nogc, extend
+G_M6958_IG11:        ; bbWeight=1, epilog, nogc, extend
             pop     {r4,r5,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 68.00, instruction count 23, allocated bytes for code 60 (MethodHash=0943e4d1) for method System.Xml.DocumentXPathNavigator:ParentNodeTail(System.Xml.XmlNode):System.Xml.XmlNode (FullOpts)
+; Total bytes of code 106, prolog size 8, PerfScore 76.12, instruction count 42, allocated bytes for code 106 (MethodHash=0943e4d1) for method System.Xml.DocumentXPathNavigator:ParentNodeTail(System.Xml.XmlNode):System.Xml.XmlNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -71,7 +104,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 60 (0x00003c)
+  Function Length   : 53 (0x00035) Actual length = 106 (0x00006a)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
+42 (+80.77%) : 15107.dasm - System.Random+Net5CompatSeedImpl:NextInt64():long:this (FullOpts)
@@ -8,24 +8,28 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  3, 10   )     ref  ->   r5         this class-hnd single-def <System.Random+Net5CompatSeedImpl>
+;  V00 this         [V00,T04] (  4, 11   )     ref  ->   r5         this class-hnd single-def <System.Random+Net5CompatSeedImpl>
 ;* V01 loc0         [V01    ] (  0,  0   )    long  ->  zero-ref   
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 rat0         [V03,T02] (  3, 17   )     int  ->   r0         "field V01.lo (fldOffset=0x0)" P-INDEP
-;  V04 rat1         [V04,T03] (  3, 17   )     int  ->   r1         "field V01.hi (fldOffset=0x4)" P-INDEP
-;  V05 rat2         [V05    ] (  1, 16   )    long  ->  [sp+0x00]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
-;  V06 rat3         [V06,T01] (  2, 24   )     int  ->   r0         "field V05.lo (fldOffset=0x0)" P-INDEP
-;  V07 rat4         [V07,T00] (  3, 32   )     int  ->   r1         "field V05.hi (fldOffset=0x4)" P-INDEP
+;  V03 rat0         [V03,T02] (  5, 19   )     int  ->   r0         "field V01.lo (fldOffset=0x0)" P-INDEP
+;  V04 rat1         [V04,T03] (  5, 19   )     int  ->   r1         "field V01.hi (fldOffset=0x4)" P-INDEP
+;  V05 rat2         [V05    ] (  1,  2   )    long  ->  [sp+0x08]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
+;  V06 rat3         [V06,T06] (  2,  3   )     int  ->   r0         "field V05.lo (fldOffset=0x0)" P-INDEP
+;  V07 rat4         [V07,T05] (  3,  4   )     int  ->   r1         "field V05.hi (fldOffset=0x4)" P-INDEP
+;  V08 rat5         [V08    ] (  1, 16   )    long  ->  [sp+0x00]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
+;  V09 rat6         [V09,T01] (  2, 24   )     int  ->   r0         "field V08.lo (fldOffset=0x0)" P-INDEP
+;  V10 rat7         [V10,T00] (  3, 32   )     int  ->   r1         "field V08.hi (fldOffset=0x4)" P-INDEP
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
-G_M23617_IG01:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r2,r3,r4,r5,r11,lr}
-            add     r11, sp, 16
+G_M23617_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+            push    {r4,r5,r11,lr}
+            sub     sp, 16
+            add     r11, sp, 24
             mov     r5, r0
             ; gcrRegs +[r5]
-                      ;; size=10 bbWeight=8 PerfScore 24.00
-G_M23617_IG02:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+                       ;; size=12 bbWeight=1 PerfScore 4.00
+G_M23617_IG02:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             mov     r0, r5
             ; gcrRegs +[r0]
             movw    r4, LOW RELOC 0xD1FFAB1E
@@ -41,14 +45,33 @@ G_M23617_IG02:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             eor     r2, r0, -1
             eors    r3, r1
             orrs    r3, r2
-            beq     SHORT G_M23617_IG02
+            bne     SHORT G_M23617_IG04
+                       ;; size=38 bbWeight=1 PerfScore 14.00
+G_M23617_IG03:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r5
+            ; gcrRegs +[r0]
+            movw    r4, LOW RELOC 0xD1FFAB1E
+            movt    r4, HIGH RELOC 0xD1FFAB1E
+            add     r4, pc
+            ldr     r3, [r4]
+            blx     r3     // System.Random+Net5CompatSeedImpl:NextUInt64():ulong:this
+            ; gcrRegs -[r0]
+            lsrs    r0, r0, 1
+            orr     r0, r0, r1 LSL 31
+            lsrs    r1, r1, 1
+            mvn     r3, 0x80000000
+            eor     r2, r0, -1
+            eors    r3, r1
+            orrs    r3, r2
+            beq     SHORT G_M23617_IG03
                         ;; size=38 bbWeight=8 PerfScore 112.00
-G_M23617_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M23617_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r5]
-            pop     {r2,r3,r4,r5,r11,pc}
-                       ;; size=4 bbWeight=1 PerfScore 1.00
+            add     sp, 16
+            pop     {r4,r5,r11,pc}
+                       ;; size=6 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 52, prolog size 8, PerfScore 137.00, instruction count 18, allocated bytes for code 52 (MethodHash=0b12a3be) for method System.Random+Net5CompatSeedImpl:NextInt64():long:this (FullOpts)
+; Total bytes of code 94, prolog size 10, PerfScore 132.00, instruction count 34, allocated bytes for code 94 (MethodHash=0b12a3be) for method System.Random+Net5CompatSeedImpl:NextInt64():long:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -60,11 +83,11 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 52 (0x000034)
+  Function Length   : 47 (0x0002f) Actual length = 94 (0x00005e)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 3C       pop {r2,r3,r4,r5,r11,lr}            ; opsize 32
-    FF          end
+    04          add sp, sp, #16                     ; opsize 16
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     FF          end
 
  
+40 (+83.33%) : 189977.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.CType:GetNakedType(ubyte):Microsoft.CSharp.RuntimeBinder.Semantics.CType:this (FullOpts)
@@ -9,48 +9,85 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  3,  3   )     ref  ->   r0         this class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-;  V01 arg1         [V01,T02] (  3,  4   )   ubyte  ->   r5         single-def
-;  V02 loc0         [V02,T01] (  5, 18   )     ref  ->   r0         class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-;  V03 loc1         [V03,T00] (  3, 20   )     int  ->   r3        
+;  V00 this         [V00,T02] (  5,  5   )     ref  ->   r0         this class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+;  V01 arg1         [V01,T03] (  4,  4.25)   ubyte  ->   r5         single-def
+;  V02 loc0         [V02,T01] (  6, 19   )     ref  ->  registers   class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+;  V03 loc1         [V03,T00] (  6, 22.50)     int  ->   r6        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
 G_M38771_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r11,lr}
-            add     r11, sp, 8
+            push    {r3,r4,r5,r6,r11,lr}
+            add     r11, sp, 16
             mov     r5, r1
                        ;; size=10 bbWeight=1 PerfScore 3.00
-G_M38771_IG02:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+G_M38771_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0]
-            ldr     r3, [r0+0x04]
-            subs    r2, r3, 5
+            mov     r3, r0
+            ; gcrRegs +[r3]
+            ldr     r6, [r0+0x04]
+            subs    r2, r6, 5
             cmp     r2, 2
             bls     SHORT G_M38771_IG05
-                      ;; size=8 bbWeight=8 PerfScore 32.00
-G_M38771_IG03:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            cmp     r3, 8
-            bne     SHORT G_M38771_IG06
-                       ;; size=4 bbWeight=4 PerfScore 8.00
-G_M38771_IG04:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            uxtb    r3, r5
-            cmp     r3, 0
-            beq     SHORT G_M38771_IG06
-                       ;; size=6 bbWeight=2 PerfScore 6.00
-G_M38771_IG05:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+                       ;; size=10 bbWeight=1 PerfScore 5.00
+G_M38771_IG03:        ; bbWeight=0.50, gcrefRegs=0009 {r0 r3}, byrefRegs=0000 {}, byref, isz
+            cmp     r6, 8
+            bne     SHORT G_M38771_IG11
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M38771_IG04:        ; bbWeight=0.25, gcrefRegs=0009 {r0 r3}, byrefRegs=0000 {}, byref, isz
+            uxtb    r2, r5
+            cmp     r2, 0
+            beq     SHORT G_M38771_IG10
+                       ;; size=6 bbWeight=0.25 PerfScore 0.75
+G_M38771_IG05:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r3]
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
             add     r4, pc
             ldr     r3, [r4]
             blx     r3     // <unknown method>
-            b       SHORT G_M38771_IG02
+                        ;; size=14 bbWeight=1 PerfScore 5.00
+G_M38771_IG06:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+            ldr     r6, [r0+0x04]
+            subs    r3, r6, 5
+            cmp     r3, 2
+            bls     SHORT G_M38771_IG09
+                       ;; size=8 bbWeight=8 PerfScore 32.00
+G_M38771_IG07:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+            cmp     r6, 8
+            bne     SHORT G_M38771_IG12
+                       ;; size=4 bbWeight=4 PerfScore 8.00
+G_M38771_IG08:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+            uxtb    r3, r5
+            cmp     r3, 0
+            beq     SHORT G_M38771_IG12
+                       ;; size=6 bbWeight=2 PerfScore 6.00
+G_M38771_IG09:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+            movw    r4, LOW RELOC 0xD1FFAB1E
+            movt    r4, HIGH RELOC 0xD1FFAB1E
+            add     r4, pc
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            b       SHORT G_M38771_IG06
                         ;; size=16 bbWeight=4 PerfScore 24.00
-G_M38771_IG06:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
-            pop     {r4,r5,r11,pc}
+G_M38771_IG10:        ; bbWeight=0.12, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0] +[r3]
+            mov     r0, r3
+            ; gcrRegs +[r0]
+            b       SHORT G_M38771_IG12
+                       ;; size=4 bbWeight=0.12 PerfScore 0.25
+G_M38771_IG11:        ; bbWeight=0.25, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r0]
+            mov     r0, r3
+            ; gcrRegs +[r0]
+                       ;; size=2 bbWeight=0.25 PerfScore 0.25
+G_M38771_IG12:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[r3]
+            pop     {r3,r4,r5,r6,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 48, prolog size 8, PerfScore 74.00, instruction count 19, allocated bytes for code 48 (MethodHash=85d6688c) for method Microsoft.CSharp.RuntimeBinder.Semantics.CType:GetNakedType(ubyte):Microsoft.CSharp.RuntimeBinder.Semantics.CType:this (FullOpts)
+; Total bytes of code 88, prolog size 8, PerfScore 86.25, instruction count 37, allocated bytes for code 88 (MethodHash=85d6688c) for method Microsoft.CSharp.RuntimeBinder.Semantics.CType:GetNakedType(ubyte):Microsoft.CSharp.RuntimeBinder.Semantics.CType:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -62,11 +99,11 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 24 (0x00018) Actual length = 48 (0x000030)
+  Function Length   : 44 (0x0002c) Actual length = 88 (0x000058)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
+    A8 78       pop {r3,r4,r5,r6,r11,lr}            ; opsize 32
     FF          end
     FF          end
 
  
  
libraries.pmi.linux.arm.checked.mch
-24 (-14.12%) : 272874.dasm - Microsoft.Build.Execution.TaskRegistry:GetMatchingRegistration(System.String,System.Collections.Generic.List1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord],System.String,System.Collections.Generic.IDictionary2[System.String,System.String],Microsoft.Build.BackEnd.Logging.TargetLoggingContext,Microsoft.Build.Construction.ElementLocation):Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord:this (FullOpts)
@@ -9,137 +9,121 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Microsoft.Build.Execution.TaskRegistry>
-;  V01 arg1         [V01,T07] (  3,  4   )     ref  ->   r4         class-hnd single-def <System.String>
-;  V02 arg2         [V02,T09] (  3,  3   )     ref  ->   r2         class-hnd single-def <System.Collections.Generic.List`1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord]>
-;  V03 arg3         [V03,T08] (  3,  4   )     ref  ->   r5         class-hnd single-def <System.String>
-;  V04 arg4         [V04,T12] (  1,  2   )     ref  ->  [sp+0x38]  class-hnd single-def <System.Collections.Generic.IDictionary`2[System.String,System.String]>
-;  V05 arg5         [V05,T13] (  1,  2   )     ref  ->  [sp+0x3C]  class-hnd single-def <Microsoft.Build.BackEnd.Logging.TargetLoggingContext>
-;  V06 arg6         [V06,T14] (  1,  2   )     ref  ->   r8         class-hnd single-def <Microsoft.Build.Construction.ElementLocation>
+;  V01 arg1         [V01,T06] (  3,  2.25)     ref  ->   r4         class-hnd single-def <System.String>
+;  V02 arg2         [V02,T08] (  3,  3   )     ref  ->   r2         class-hnd single-def <System.Collections.Generic.List`1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord]>
+;  V03 arg3         [V03,T07] (  3,  2.25)     ref  ->   r5         class-hnd single-def <System.String>
+;  V04 arg4         [V04,T10] (  1,  0.25)     ref  ->  [sp+0x30]  class-hnd single-def <System.Collections.Generic.IDictionary`2[System.String,System.String]>
+;  V05 arg5         [V05,T11] (  1,  0.25)     ref  ->  [sp+0x34]  class-hnd single-def <Microsoft.Build.BackEnd.Logging.TargetLoggingContext>
+;  V06 arg6         [V06,T12] (  1,  0.25)     ref  ->  [sp+0x38]  class-hnd single-def <Microsoft.Build.Construction.ElementLocation>
 ;* V07 loc0         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord]>
 ;* V08 loc1         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord>
 ;* V09 loc2         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord>
 ;  V10 OutArgs      [V10    ] (  1,  1   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord]>
-;* V12 tmp2         [V12,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V12 tmp2         [V12,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V13 tmp3         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord]>
-;  V14 tmp4         [V14,T02] (  4, 16.34)     ref  ->   r9         single-def "field V07._list (fldOffset=0x0)" P-INDEP
-;  V15 tmp5         [V15,T04] (  3,  5.85)     ref  ->  [sp+0x08]  "field V07._current (fldOffset=0x4)" P-INDEP
-;  V16 tmp6         [V16,T00] (  6, 18.39)     int  ->  [sp+0x0C]  "field V07._index (fldOffset=0x8)" P-INDEP
-;  V17 tmp7         [V17,T05] (  2,  9   )     int  ->  r10         single-def "field V07._version (fldOffset=0xc)" P-INDEP
-;  V18 tmp8         [V18,T10] (  3,  3   )     ref  ->   r9         single-def "field V11._list (fldOffset=0x0)" P-INDEP
+;  V14 tmp4         [V14,T00] (  4,  2.92)     ref  ->   r6         single-def "field V07._list (fldOffset=0x0)" P-INDEP
+;  V15 tmp5         [V15,T04] (  3,  1.17)     ref  ->   r9         "field V07._current (fldOffset=0x4)" P-INDEP
+;  V16 tmp6         [V16,T01] (  6,  3.17)     int  ->   r8         "field V07._index (fldOffset=0x8)" P-INDEP
+;  V17 tmp7         [V17,T05] (  2,  2   )     int  ->   r7         single-def "field V07._version (fldOffset=0xc)" P-INDEP
+;  V18 tmp8         [V18,T09] (  3,  3   )     ref  ->   r6         single-def "field V11._list (fldOffset=0x0)" P-INDEP
 ;* V19 tmp9         [V19    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._current (fldOffset=0x4)" P-INDEP
 ;* V20 tmp10        [V20,T15] (  0,  0   )     int  ->  zero-ref    single-def "field V11._index (fldOffset=0x8)" P-INDEP
-;  V21 tmp11        [V21,T11] (  2,  2   )     int  ->  r10         single-def "field V11._version (fldOffset=0xc)" P-INDEP
-;  V22 tmp12        [V22,T01] (  3, 20.09)     ref  ->   r0         "arr expr"
-;  V23 cse0         [V23,T03] (  2,  7.99)     int  ->   r0         "CSE - aggressive"
+;  V21 tmp11        [V21,T13] (  2,  2   )     int  ->   r7         single-def "field V11._version (fldOffset=0xc)" P-INDEP
+;  V22 tmp12        [V22,T02] (  3,  2.51)     ref  ->   r0         "arr expr"
+;  V23 cse0         [V23,T14] (  2,  1.00)     int  ->   r0         "CSE - moderate"
 ;
-; Lcl frame size = 20
+; Lcl frame size = 12
 
 G_M927_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 20
-            add     r11, sp, 48
+            sub     sp, 12
+            add     r11, sp, 40
             mov     r4, r1
             ; gcrRegs +[r4]
             mov     r5, r3
             ; gcrRegs +[r5]
-            ldr     r6, [sp+0x38] // [V04 arg4]
-            ; gcrRegs +[r6]
-            ldr     r7, [sp+0x3C]  // [V05 arg5]
-            ; gcrRegs +[r7]
-            ldr     r8, [sp+0x40]  // [V06 arg6]
-            ; gcrRegs +[r8]
-                       ;; size=22 bbWeight=1 PerfScore 8.00
-G_M927_IG02:        ; bbWeight=1, gcrefRegs=01F4 {r2 r4 r5 r6 r7 r8}, byrefRegs=0000 {}, byref, isz
+                      ;; size=14 bbWeight=1 PerfScore 5.00
+G_M927_IG02:        ; bbWeight=1, gcrefRegs=0034 {r2 r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r2]
-            mov     r9, r2
-            ; gcrRegs +[r9]
-            ldr     r10, [r9+0x0C]
-            mov     lr, 0
+            mov     r6, r2
+            ; gcrRegs +[r6]
+            ldr     r7, [r6+0x0C]
+            mov     r8, 0
             b       SHORT G_M927_IG04
-                       ;; size=12 bbWeight=1 PerfScore 4.00
-G_M927_IG03:        ; bbWeight=2, gcrefRegs=13F0 {r4 r5 r6 r7 r8 r9 r12}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r2] +[r12]
-            str     r7, [sp+0x3C]
-            str     r7, [sp]
-            str     r8, [sp+0x04]
-            str     r12, [sp+0x08]
-            ; GC ptr vars +{V15}
-            mov     r0, r12
+                      ;; size=10 bbWeight=1 PerfScore 4.00
+G_M927_IG03:        ; bbWeight=0.25, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2] +[r9]
+            ldr     r10, [sp+0x34] // [V05 arg5]
+            ; gcrRegs +[r10]
+            str     r10, [sp]  // [V10 OutArgs]
+            ldr     lr, [sp+0x38]  // [V06 arg6]
+            ; gcrRegs +[lr]
+            str     lr, [sp+0x04]  // [V10 OutArgs+0x04]
+            mov     r0, r9
             ; gcrRegs +[r0]
             mov     r1, r4
             ; gcrRegs +[r1]
             mov     r2, r5
             ; gcrRegs +[r2]
-            str     r6, [sp+0x38]
-            mov     r3, r6
+            ldr     r3, [sp+0x30]  // [V04 arg4]
             ; gcrRegs +[r3]
-            movw    r6, 0xd1ff
-            ; gcrRegs -[r6]
-            movt    r6, 0xd1ff
-            ldr     r6, [r6]
-            ldr     r7, [r0]
-            ; gcrRegs -[r7]
-            blx     r6     // <unknown method>
-            ; gcrRegs -[r0-r3 r12]
+            movw    r12, 0xd1ff
+            movt    r12, 0xd1ff
+            ldr     r12, [r12]
+            ldr     r10, [r0]
+            ; gcrRegs -[r10]
+            blx     r12        // <unknown method>
+            ; gcrRegs -[r0-r3 lr]
             cmp     r0, 0
-            ldr     r6, [sp+0x38]  // [V04 arg4]
-            ; gcrRegs +[r6]
-            ldr     r7, [sp+0x3C]  // [V05 arg5]
-            ; gcrRegs +[r7]
-            ldr     lr, [sp+0x0C]  // [V16 tmp6]
             bne     SHORT G_M927_IG09
-                        ;; size=48 bbWeight=2 PerfScore 38.00
-G_M927_IG04:        ; bbWeight=8, gcVars=00000000 {}, gcrefRegs=03F0 {r4 r5 r6 r7 r8 r9}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; GC ptr vars -{V15}
-            ldr     r0, [r9+0x0C]
-            cmp     r10, r0
+                      ;; size=46 bbWeight=0.25 PerfScore 3.75
+G_M927_IG04:        ; bbWeight=1, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r9]
+            ldr     r0, [r6+0x0C]
+            cmp     r7, r0
             bne     SHORT G_M927_IG12
-                      ;; size=8 bbWeight=8 PerfScore 24.00
-G_M927_IG05:        ; bbWeight=4.00, gcrefRegs=03F0 {r4 r5 r6 r7 r8 r9}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r9+0x08]
-            cmp     lr, r0
+                       ;; size=6 bbWeight=1 PerfScore 3.00
+G_M927_IG05:        ; bbWeight=0.50, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r6+0x08]
+            cmp     r8, r0
             bhs     SHORT G_M927_IG07
-                      ;; size=8 bbWeight=4.00 PerfScore 11.99
-G_M927_IG06:        ; bbWeight=3.35, gcrefRegs=03F0 {r4 r5 r6 r7 r8 r9}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r9+0x04]
+                        ;; size=6 bbWeight=0.50 PerfScore 1.50
+G_M927_IG06:        ; bbWeight=0.42, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r6+0x04]
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x04]
-            cmp     lr, r1
+            cmp     r8, r1
             bhs     SHORT G_M927_IG11
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            lsl     r1, lr, 2
-            ldr     r12, [r0+r1]
-            ; gcrRegs +[r12]
-            add     lr, lr, 1
-            str     lr, [sp+0x0C]  // [V16 tmp6]
+            lsl     r1, r8, 2
+            ldr     r9, [r0+r1]
+            ; gcrRegs +[r9]
+            add     r8, r8, 1
             b       SHORT G_M927_IG03
-                       ;; size=30 bbWeight=3.35 PerfScore 33.48
-G_M927_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r4-r9 r12]
+                       ;; size=24 bbWeight=0.42 PerfScore 3.77
+G_M927_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r4-r6 r9]
             ; byrRegs -[r0]
             movs    r0, 0
-                        ;; size=2 bbWeight=4 PerfScore 4.00
-G_M927_IG08:        ; bbWeight=4, epilog, nogc, extend
-            add     sp, 20
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M927_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+            add     sp, 12
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
-                     ;; size=6 bbWeight=4 PerfScore 8.00
-G_M927_IG09:        ; bbWeight=0.50, gcVars=00000010 {V15}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; GC ptr vars +{V04 V15}
-            ldr     r4, [sp+0x08]  // [V15 tmp5]
-            ; gcrRegs +[r4]
-            mov     r0, r4
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M927_IG09:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[r9]
+            mov     r0, r9
             ; gcrRegs +[r0]
-                        ;; size=4 bbWeight=0.50 PerfScore 1.00
+                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M927_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-            add     sp, 20
+            add     sp, 12
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M927_IG11:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r0 r4]
-            ; GC ptr vars -{V04 V15}
+            ; gcrRegs -[r0 r9]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
@@ -152,7 +136,7 @@ G_M927_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 170, prolog size 10, PerfScore 133.47, instruction count 62, allocated bytes for code 170 (MethodHash=3ce6fc60) for method Microsoft.Build.Execution.TaskRegistry:GetMatchingRegistration(System.String,System.Collections.Generic.List`1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord],System.String,System.Collections.Generic.IDictionary`2[System.String,System.String],Microsoft.Build.BackEnd.Logging.TargetLoggingContext,Microsoft.Build.Construction.ElementLocation):Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord:this (FullOpts)
+; Total bytes of code 146, prolog size 10, PerfScore 24.02, instruction count 53, allocated bytes for code 146 (MethodHash=3ce6fc60) for method Microsoft.Build.Execution.TaskRegistry:GetMatchingRegistration(System.String,System.Collections.Generic.List`1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord],System.String,System.Collections.Generic.IDictionary`2[System.String,System.String],Microsoft.Build.BackEnd.Logging.TargetLoggingContext,Microsoft.Build.Construction.ElementLocation):Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -164,7 +148,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 85 (0x00055) Actual length = 170 (0x0000aa)
+  Function Length   : 73 (0x00049) Actual length = 146 (0x000092)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -176,7 +160,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    05          add sp, sp, #20                     ; opsize 16
+    03          add sp, sp, #12                     ; opsize 16
     DF          pop {r4,r5,r6,r7,r8,r9,r10,r11,lr}  ; opsize 32
     FF          end
     FF          end
  
-10 (-4.17%) : 199773.dasm - Internal.TypeSystem.TypeDesc+d__80:MoveNext():ubyte:this (FullOpts)
@@ -8,14 +8,15 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 16, 14.50)     ref  ->  [sp+0x04]  this class-hnd EH-live single-def <Internal.TypeSystem.TypeDesc+<GetVirtualMethods>d__80>
+;  V00 this         [V00,T00] ( 15,  8.75)     ref  ->  [sp+0x04]  this class-hnd EH-live single-def <Internal.TypeSystem.TypeDesc+<GetVirtualMethods>d__80>
 ;  V01 loc0         [V01,T02] (  4,  2.50)   ubyte  ->   r0        
 ;  V02 loc1         [V02,T03] (  3,  2.50)     int  ->   r0         single-def
-;  V03 loc2         [V03,T04] (  3,  2   )     ref  ->   r3         class-hnd single-def <<unknown class>>
-;  V04 loc3         [V04,T01] (  4,  6.50)     ref  ->   r5         class-hnd <<unknown class>>
+;  V03 loc2         [V03,T05] (  3,  2   )     ref  ->   r3         class-hnd single-def <<unknown class>>
+;  V04 loc3         [V04,T01] (  4,  1.25)     ref  ->   r4         class-hnd <<unknown class>>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T05] (  2,  2   )     ref  ->   r0         single-def "argument with side effect"
-;  V07 PSPSym       [V07,T06] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
+;  V06 tmp1         [V06,T06] (  2,  2   )     ref  ->   r0         single-def "argument with side effect"
+;  V07 PSPSym       [V07,T07] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
+;  V08 cse0         [V08,T04] (  5,  2   )     ref  ->   r0         multi-def "CSE - aggressive"
 ;  TEMP_01                                     ref  ->  [r11-0x18]
 ;
 ; Lcl frame size = 16
@@ -30,27 +31,27 @@ G_M14755_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             str     r1, [sp+0x0C]  // [V07 PSPSym]
             str     r0, [sp+0x04]  // [V00 this]
             ; GC ptr vars +{V00}
-            mov     r4, r0
-            ; gcrRegs +[r4]
+            mov     r5, r0
+            ; gcrRegs +[r5]
                         ;; size=22 bbWeight=1 PerfScore 9.00
-G_M14755_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     r0, [r4+0x10]
-            ldr     r3, [r4+0x08]
+G_M14755_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     r0, [r5+0x10]
+            ldr     r3, [r5+0x08]
             ; gcrRegs +[r3]
             cmp     r0, 0
             beq     SHORT G_M14755_IG04
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M14755_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M14755_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r3]
             cmp     r0, 1
-            beq     SHORT G_M14755_IG09
+            beq     SHORT G_M14755_IG07
             movs    r0, 0
-            b       SHORT G_M14755_IG11
+            b       SHORT G_M14755_IG12
                      ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M14755_IG04:        ; bbWeight=0.50, gcrefRegs=0018 {r3 r4}, byrefRegs=0000 {}, byref, isz
+G_M14755_IG04:        ; bbWeight=0.50, gcrefRegs=0028 {r3 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r3]
             mov     r0, -1
-            str     r0, [r4+0x10]
+            str     r0, [r5+0x10]
             mov     r0, r3
             ; gcrRegs +[r0]
             ldr     r3, [r3]
@@ -58,7 +59,6 @@ G_M14755_IG04:        ; bbWeight=0.50, gcrefRegs=0018 {r3 r4}, byrefRegs=0000 {}
             ldr     r3, [r3+0x30]
             ldr     r3, [r3+0x0C]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r4]
             ; gcr arg pop 0
             movw    r4, 0xd1ff
             movt    r4, 0xd1ff
@@ -66,117 +66,105 @@ G_M14755_IG04:        ; bbWeight=0.50, gcrefRegs=0018 {r3 r4}, byrefRegs=0000 {}
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             str     r0, [sp]
-            ldr     r4, [sp+0x04]    // [V00 this]
-            ; gcrRegs +[r4]
-            add     r0, r4, 12
+            add     r0, r5, 12
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            ldr     r1, [sp]  // [TEMP_01]
+            ldr     r1, [sp]
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            b       SHORT G_M14755_IG09
-                       ;; size=50 bbWeight=0.50 PerfScore 9.50
-G_M14755_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4]
-            ldr     r4, [sp+0x04]  // [V00 this]
+            b       SHORT G_M14755_IG07
+                       ;; size=48 bbWeight=0.50 PerfScore 9.00
+G_M14755_IG05:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r0, -1
+            str     r0, [r5+0x10]
+            ldr     r0, [r5+0x0C]
+            ; gcrRegs +[r0]
+            cmp     r0, 0
+            beq     SHORT G_M14755_IG11
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            ; gcr arg pop 0
+            b       SHORT G_M14755_IG11
+                       ;; size=26 bbWeight=0.50 PerfScore 5.00
+G_M14755_IG06:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4]
-            ldr     r0, [r4+0x0C]
+            adds    r0, r5, 4
+            ; byrRegs +[r0]
+            mov     r1, r4
+            ; gcrRegs +[r1]
+            movw    r12, 0xd1ff
+            movt    r12, 0xd1ff
+            blx     r12        // CORINFO_HELP_ASSIGN_REF
+            ; gcrRegs -[r1 r4]
+            ; byrRegs -[r0]
+            movs    r0, 1
+            str     r0, [r5+0x10]
+            b       SHORT G_M14755_IG12
+                       ;; size=20 bbWeight=0.50 PerfScore 4.00
+G_M14755_IG07:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mvn     r0, 2
+            str     r0, [r5+0x10]
+            b       SHORT G_M14755_IG09
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M14755_IG08:        ; bbWeight=0.25, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r5+0x0C]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
-            mov     r5, r0
-            ; gcrRegs +[r5]
-            mov     r0, r5
-            ldr     r3, [r5]
+            mov     r4, r0
+            ; gcrRegs +[r4]
+            mov     r0, r4
+            ldr     r3, [r4]
             ldr     r3, [r3+0x38]
             ldr     r3, [r3+0x04]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            ldr     r4, [sp+0x04]   // [V00 this]
-            ; gcrRegs +[r4]
+            bne     SHORT G_M14755_IG06
+                       ;; size=30 bbWeight=0.25 PerfScore 3.25
+G_M14755_IG09:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r4]
+            ldr     r0, [r5+0x0C]
+            ; gcrRegs +[r0]
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            ; gcr arg pop 0
+            cmp     r0, 0
             bne     SHORT G_M14755_IG08
-                     ;; size=34 bbWeight=2 PerfScore 30.00
-G_M14755_IG06:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r5]
-            ldr     r0, [r4+0x0C]
-            ; gcrRegs +[r0]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            cmp     r0, 0
-            bne     SHORT G_M14755_IG05
-                       ;; size=18 bbWeight=4 PerfScore 28.00
-G_M14755_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            mov     r0, -1
-            ldr     r4, [sp+0x04]
-            ; gcrRegs +[r4]
-            str     r0, [r4+0x10]
-            ldr     r0, [r4+0x0C]
-            ; gcrRegs +[r0]
-            cmp     r0, 0
-            beq     SHORT G_M14755_IG10
-            ldr     r0, [r4+0x0C]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            ldr     r4, [sp+0x04]  // [V00 this]
-            ; gcrRegs +[r4]
-            b       SHORT G_M14755_IG10
-                       ;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M14755_IG08:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r5]
-            adds    r0, r4, 4
-            ; byrRegs +[r0]
-            mov     r1, r5
-            ; gcrRegs +[r1]
-            movw    r12, 0xd1ff
-            movt    r12, 0xd1ff
-            blx     r12        // CORINFO_HELP_ASSIGN_REF
-            ; gcrRegs -[r1 r5]
-            ; byrRegs -[r0]
-            movs    r0, 1
-            str     r0, [r4+0x10]
-            b       SHORT G_M14755_IG11
-                       ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M14755_IG09:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            mvn     r0, 2
-            str     r0, [r4+0x10]
-            b       SHORT G_M14755_IG06
-                       ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M14755_IG10:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+                     ;; size=18 bbWeight=0.50 PerfScore 3.50
+G_M14755_IG10:        ; bbWeight=0.06, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M14755_IG05
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M14755_IG11:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             movs    r0, 0
-            str     r0, [r4+0x0C]
+            str     r0, [r5+0x0C]
                         ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M14755_IG11:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
-            ; gcrRegs -[r4]
+G_M14755_IG12:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
+            ; gcrRegs -[r5]
             ; GC ptr vars -{V00}
             add     sp, 16
             pop     {r4,r5,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M14755_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M14755_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             push    {r2,r3,r4,r5,r11,lr}
             add     r3, r11, 8
             str     r3, [sp+0x04]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M14755_IG13:        ; bbWeight=0, gcVars=00000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M14755_IG14:        ; bbWeight=0, gcVars=00000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; GC ptr vars +{V00}
...
  
-10 (-4.17%) : 251698.dasm - System.Security.Claims.ClaimsIdentity+<g_Core|590>d:MoveNext():ubyte:this (FullOpts)
@@ -8,15 +8,17 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 17, 16.50)     ref  ->  [sp+0x04]  this class-hnd EH-live single-def <System.Security.Claims.ClaimsIdentity+<<FindAll>g__Core|59_0>d>
+;  V00 this         [V00,T00] ( 16,  9   )     ref  ->  [sp+0x04]  this class-hnd EH-live single-def <System.Security.Claims.ClaimsIdentity+<<FindAll>g__Core|59_0>d>
 ;  V01 loc0         [V01,T03] (  4,  2.50)   ubyte  ->   r0        
 ;  V02 loc1         [V02,T04] (  3,  2.50)     int  ->   r0        
-;  V03 loc2         [V03,T05] (  3,  2   )     ref  ->   r3         class-hnd single-def <<unknown class>>
-;  V04 loc3         [V04,T02] (  3,  4.50)     ref  ->   r5         class-hnd <<unknown class>>
+;  V03 loc2         [V03,T06] (  3,  2   )     ref  ->   r3         class-hnd single-def <<unknown class>>
+;  V04 loc3         [V04,T02] (  3,  1   )     ref  ->   r4         class-hnd <<unknown class>>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T06] (  2,  2   )     ref  ->   r0         single-def "argument with side effect"
-;  V07 PSPSym       [V07,T07] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
-;  V08 rat0         [V08,T01] (  3, 12   )     ref  ->   r3         "delegate invoke call"
+;  V06 tmp1         [V06,T07] (  2,  2   )     ref  ->   r0         single-def "argument with side effect"
+;  V07 PSPSym       [V07,T09] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
+;  V08 cse0         [V08,T05] (  5,  2   )     ref  ->   r0         multi-def "CSE - aggressive"
+;* V09 rat0         [V09,T01] (  0,  0   )     ref  ->  zero-ref    "delegate invoke call"
+;  V10 rat1         [V10,T08] (  3,  1.50)     ref  ->   r3         "delegate invoke call"
 ;  TEMP_01                                     ref  ->  [r11-0x18]
 ;
 ; Lcl frame size = 16
@@ -31,27 +33,27 @@ G_M31085_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             str     r1, [sp+0x0C]  // [V07 PSPSym]
             str     r0, [sp+0x04]  // [V00 this]
             ; GC ptr vars +{V00}
-            mov     r4, r0
-            ; gcrRegs +[r4]
+            mov     r5, r0
+            ; gcrRegs +[r5]
                         ;; size=22 bbWeight=1 PerfScore 9.00
-G_M31085_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     r0, [r4+0x18]
-            ldr     r3, [r4+0x08]
+G_M31085_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     r0, [r5+0x18]
+            ldr     r3, [r5+0x08]
             ; gcrRegs +[r3]
             cmp     r0, 0
             beq     SHORT G_M31085_IG04
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M31085_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M31085_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r3]
             cmp     r0, 1
-            beq     SHORT G_M31085_IG09
+            beq     SHORT G_M31085_IG07
             movs    r0, 0
-            b       SHORT G_M31085_IG11
+            b       SHORT G_M31085_IG12
                      ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M31085_IG04:        ; bbWeight=0.50, gcrefRegs=0018 {r3 r4}, byrefRegs=0000 {}, byref, isz
+G_M31085_IG04:        ; bbWeight=0.50, gcrefRegs=0028 {r3 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r3]
             mov     r0, -1
-            str     r0, [r4+0x18]
+            str     r0, [r5+0x18]
             mov     r0, r3
             ; gcrRegs +[r0]
             ldr     r3, [r3]
@@ -59,7 +61,6 @@ G_M31085_IG04:        ; bbWeight=0.50, gcrefRegs=0018 {r3 r4}, byrefRegs=0000 {}
             ldr     r3, [r3+0x2C]
             ldr     r3, [r3+0x18]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r4]
             ; gcr arg pop 0
             movw    r4, 0xd1ff
             movt    r4, 0xd1ff
@@ -67,39 +68,66 @@ G_M31085_IG04:        ; bbWeight=0.50, gcrefRegs=0018 {r3 r4}, byrefRegs=0000 {}
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             str     r0, [sp]
-            ldr     r4, [sp+0x04]    // [V00 this]
-            ; gcrRegs +[r4]
-            add     r0, r4, 20
+            add     r0, r5, 20
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            ldr     r1, [sp]  // [TEMP_01]
+            ldr     r1, [sp]
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            b       SHORT G_M31085_IG09
-                       ;; size=50 bbWeight=0.50 PerfScore 9.50
-G_M31085_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4]
-            ldr     r4, [sp+0x04]  // [V00 this]
+            b       SHORT G_M31085_IG07
+                       ;; size=48 bbWeight=0.50 PerfScore 9.00
+G_M31085_IG05:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r0, -1
+            str     r0, [r5+0x18]
+            ldr     r0, [r5+0x14]
+            ; gcrRegs +[r0]
+            cmp     r0, 0
+            beq     SHORT G_M31085_IG11
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            ; gcr arg pop 0
+            b       SHORT G_M31085_IG11
+                       ;; size=26 bbWeight=0.50 PerfScore 5.00
+G_M31085_IG06:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4]
-            ldr     r0, [r4+0x14]
+            adds    r0, r5, 4
+            ; byrRegs +[r0]
+            mov     r1, r4
+            ; gcrRegs +[r1]
+            movw    r12, 0xd1ff
+            movt    r12, 0xd1ff
+            blx     r12        // CORINFO_HELP_ASSIGN_REF
+            ; gcrRegs -[r1 r4]
+            ; byrRegs -[r0]
+            movs    r0, 1
+            str     r0, [r5+0x18]
+            b       SHORT G_M31085_IG12
+                       ;; size=20 bbWeight=0.50 PerfScore 4.00
+G_M31085_IG07:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mvn     r0, 2
+            str     r0, [r5+0x18]
+            b       SHORT G_M31085_IG09
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M31085_IG08:        ; bbWeight=0.25, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r5+0x14]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
-            mov     r5, r0
-            ; gcrRegs +[r5]
-            ldr     r4, [sp+0x04]  // [V00 this]
+            mov     r4, r0
             ; gcrRegs +[r4]
-            ldr     r3, [r4+0x0C]
+            ldr     r3, [r5+0x0C]
             ; gcrRegs +[r3]
-            mov     r1, r5
+            mov     r1, r4
             ; gcrRegs +[r1]
             ldr     r0, [r3+0x04]
             ldr     r3, [r3+0x0C]
@@ -108,79 +136,40 @@ G_M31085_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs -[r0-r1]
             ; gcr arg pop 0
             cmp     r0, 0
+            bne     SHORT G_M31085_IG06
+                       ;; size=30 bbWeight=0.25 PerfScore 3.25
+G_M31085_IG09:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r4]
+            ldr     r0, [r5+0x14]
+            ; gcrRegs +[r0]
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            ; gcr arg pop 0
+            cmp     r0, 0
             bne     SHORT G_M31085_IG08
-                     ;; size=34 bbWeight=2 PerfScore 30.00
-G_M31085_IG06:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r5]
-            ldr     r0, [r4+0x14]
-            ; gcrRegs +[r0]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            cmp     r0, 0
-            bne     SHORT G_M31085_IG05
-                       ;; size=18 bbWeight=4 PerfScore 28.00
-G_M31085_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            mov     r0, -1
-            ldr     r4, [sp+0x04]
-            ; gcrRegs +[r4]
-            str     r0, [r4+0x18]
-            ldr     r0, [r4+0x14]
-            ; gcrRegs +[r0]
-            cmp     r0, 0
-            beq     SHORT G_M31085_IG10
-            ldr     r0, [r4+0x14]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            ldr     r4, [sp+0x04]  // [V00 this]
-            ; gcrRegs +[r4]
-            b       SHORT G_M31085_IG10
-                       ;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M31085_IG08:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r5]
-            adds    r0, r4, 4
-            ; byrRegs +[r0]
-            mov     r1, r5
-            ; gcrRegs +[r1]
-            movw    r12, 0xd1ff
-            movt    r12, 0xd1ff
-            blx     r12        // CORINFO_HELP_ASSIGN_REF
-            ; gcrRegs -[r1 r5]
-            ; byrRegs -[r0]
-            movs    r0, 1
-            str     r0, [r4+0x18]
-            b       SHORT G_M31085_IG11
-                       ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M31085_IG09:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            mvn     r0, 2
-            str     r0, [r4+0x18]
-            b       SHORT G_M31085_IG06
-                       ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M31085_IG10:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+                     ;; size=18 bbWeight=0.50 PerfScore 3.50
+G_M31085_IG10:        ; bbWeight=0.06, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M31085_IG05
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M31085_IG11:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             movs    r0, 0
-            str     r0, [r4+0x14]
+            str     r0, [r5+0x14]
                         ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M31085_IG11:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
-            ; gcrRegs -[r4]
+G_M31085_IG12:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
+            ; gcrRegs -[r5]
             ; GC ptr vars -{V00}
             add     sp, 16
             pop     {r4,r5,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M31085_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M31085_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             push    {r2,r3,r4,r5,r11,lr}
             add     r3, r11, 8
             str     r3, [sp+0x04]
...
  
+48 (+77.42%) : 238506.dasm - System.Configuration.XmlUtil:StrictReadToNextElement(int):this (FullOpts)
@@ -8,11 +8,11 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  5, 14   )     ref  ->   r4         this class-hnd single-def <System.Configuration.XmlUtil>
-;  V01 arg1         [V01,T03] (  3,  4   )     int  ->   r5         single-def
+;  V00 this         [V00,T01] (  8, 15.50)     ref  ->   r4         this class-hnd single-def <System.Configuration.XmlUtil>
+;  V01 arg1         [V01,T03] (  4,  4.25)     int  ->   r5         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T00] (  3, 48   )     ref  ->   r0         "argument with side effect"
-;  V04 tmp2         [V04,T02] (  3, 12   )     ref  ->   r0         "argument with side effect"
+;  V03 tmp1         [V03,T00] (  6, 54   )     ref  ->   r0         "argument with side effect"
+;  V04 tmp2         [V04,T02] (  6, 13.50)     ref  ->   r0         "argument with side effect"
 ;
 ; Lcl frame size = 0
 
@@ -26,7 +26,7 @@ G_M3549_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M3549_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M3549_IG04
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M3549_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M3549_IG03:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x0C]
             ; gcrRegs +[r0]
             ldr     r3, [r0]
@@ -35,7 +35,7 @@ G_M3549_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             cmp     r0, 1
-            beq     SHORT G_M3549_IG05
+            beq     SHORT G_M3549_IG08
             mov     r0, r4
             ; gcrRegs +[r0]
             mov     r1, r5
@@ -44,8 +44,9 @@ G_M3549_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ldr     r3, [r3]
             blx     r3     // System.Configuration.XmlUtil:VerifyIgnorableNodeType(int):this
             ; gcrRegs -[r0]
-                      ;; size=30 bbWeight=2 PerfScore 26.00
-G_M3549_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M3549_IG07
+                       ;; size=32 bbWeight=0.25 PerfScore 3.50
+G_M3549_IG04:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x0C]
             ; gcrRegs +[r0]
             ldr     r3, [r0]
@@ -55,13 +56,48 @@ G_M3549_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
             cmp     r0, 0
             bne     SHORT G_M3549_IG03
+                       ;; size=14 bbWeight=1 PerfScore 7.00
+G_M3549_IG05:        ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r4]
+            b       SHORT G_M3549_IG08
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M3549_IG06:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r4]
+            ldr     r0, [r4+0x0C]
+            ; gcrRegs +[r0]
+            ldr     r3, [r0]
+            ldr     r3, [r3+0x2C]
+            ldr     r3, [r3+0x14]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            cmp     r0, 1
+            beq     SHORT G_M3549_IG08
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            mov     r1, r5
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.Configuration.XmlUtil:VerifyIgnorableNodeType(int):this
+            ; gcrRegs -[r0]
+                       ;; size=30 bbWeight=2 PerfScore 26.00
+G_M3549_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r4+0x0C]
+            ; gcrRegs +[r0]
+            ldr     r3, [r0]
+            ldr     r3, [r3+0x4C]
+            ldr     r3, [r3+0x08]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            cmp     r0, 0
+            bne     SHORT G_M3549_IG06
                      ;; size=14 bbWeight=8 PerfScore 56.00
-G_M3549_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3549_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r4]
             pop     {r4,r5,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 62, prolog size 8, PerfScore 88.00, instruction count 26, allocated bytes for code 62 (MethodHash=eb85f222) for method System.Configuration.XmlUtil:StrictReadToNextElement(int):this (FullOpts)
+; Total bytes of code 110, prolog size 8, PerfScore 98.56, instruction count 48, allocated bytes for code 110 (MethodHash=eb85f222) for method System.Configuration.XmlUtil:StrictReadToNextElement(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -73,7 +109,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 31 (0x0001f) Actual length = 62 (0x00003e)
+  Function Length   : 55 (0x00037) Actual length = 110 (0x00006e)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
+48 (+77.42%) : 228412.dasm - System.Configuration.XmlUtil:StrictReadToNextElement(int):this (FullOpts)
@@ -8,11 +8,11 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  5, 14   )     ref  ->   r4         this class-hnd single-def <System.Configuration.XmlUtil>
-;  V01 arg1         [V01,T03] (  3,  4   )     int  ->   r5         single-def
+;  V00 this         [V00,T01] (  8, 15.50)     ref  ->   r4         this class-hnd single-def <System.Configuration.XmlUtil>
+;  V01 arg1         [V01,T03] (  4,  4.25)     int  ->   r5         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T00] (  3, 48   )     ref  ->   r0         "argument with side effect"
-;  V04 tmp2         [V04,T02] (  3, 12   )     ref  ->   r0         "argument with side effect"
+;  V03 tmp1         [V03,T00] (  6, 54   )     ref  ->   r0         "argument with side effect"
+;  V04 tmp2         [V04,T02] (  6, 13.50)     ref  ->   r0         "argument with side effect"
 ;
 ; Lcl frame size = 0
 
@@ -26,7 +26,7 @@ G_M3549_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M3549_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M3549_IG04
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M3549_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M3549_IG03:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x0C]
             ; gcrRegs +[r0]
             ldr     r3, [r0]
@@ -35,7 +35,7 @@ G_M3549_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             cmp     r0, 1
-            beq     SHORT G_M3549_IG05
+            beq     SHORT G_M3549_IG08
             mov     r0, r4
             ; gcrRegs +[r0]
             mov     r1, r5
@@ -44,8 +44,9 @@ G_M3549_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ldr     r3, [r3]
             blx     r3     // System.Configuration.XmlUtil:VerifyIgnorableNodeType(int):this
             ; gcrRegs -[r0]
-                      ;; size=30 bbWeight=2 PerfScore 26.00
-G_M3549_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M3549_IG07
+                       ;; size=32 bbWeight=0.25 PerfScore 3.50
+G_M3549_IG04:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x0C]
             ; gcrRegs +[r0]
             ldr     r3, [r0]
@@ -55,13 +56,48 @@ G_M3549_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
             cmp     r0, 0
             bne     SHORT G_M3549_IG03
+                       ;; size=14 bbWeight=1 PerfScore 7.00
+G_M3549_IG05:        ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r4]
+            b       SHORT G_M3549_IG08
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M3549_IG06:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r4]
+            ldr     r0, [r4+0x0C]
+            ; gcrRegs +[r0]
+            ldr     r3, [r0]
+            ldr     r3, [r3+0x2C]
+            ldr     r3, [r3+0x14]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            cmp     r0, 1
+            beq     SHORT G_M3549_IG08
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            mov     r1, r5
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.Configuration.XmlUtil:VerifyIgnorableNodeType(int):this
+            ; gcrRegs -[r0]
+                       ;; size=30 bbWeight=2 PerfScore 26.00
+G_M3549_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r4+0x0C]
+            ; gcrRegs +[r0]
+            ldr     r3, [r0]
+            ldr     r3, [r3+0x4C]
+            ldr     r3, [r3+0x08]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            cmp     r0, 0
+            bne     SHORT G_M3549_IG06
                      ;; size=14 bbWeight=8 PerfScore 56.00
-G_M3549_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3549_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r4]
             pop     {r4,r5,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 62, prolog size 8, PerfScore 88.00, instruction count 26, allocated bytes for code 62 (MethodHash=eb85f222) for method System.Configuration.XmlUtil:StrictReadToNextElement(int):this (FullOpts)
+; Total bytes of code 110, prolog size 8, PerfScore 98.56, instruction count 48, allocated bytes for code 110 (MethodHash=eb85f222) for method System.Configuration.XmlUtil:StrictReadToNextElement(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -73,7 +109,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 31 (0x0001f) Actual length = 62 (0x00003e)
+  Function Length   : 55 (0x00037) Actual length = 110 (0x00006e)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
+34 (+80.95%) : 230893.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.CType:GetNakedType(ubyte):Microsoft.CSharp.RuntimeBinder.Semantics.CType:this (FullOpts)
@@ -8,47 +8,83 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  3,  3   )     ref  ->   r0         this class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-;  V01 arg1         [V01,T02] (  3,  4   )   ubyte  ->   r4         single-def
-;  V02 loc0         [V02,T00] (  6, 22   )     ref  ->   r0         class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
-;  V03 loc1         [V03,T01] (  3, 20   )     int  ->   r3        
+;  V00 this         [V00,T02] (  6,  6   )     ref  ->   r0         this class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+;  V01 arg1         [V01,T03] (  4,  4.25)   ubyte  ->   r4         single-def
+;  V02 loc0         [V02,T00] (  7, 23   )     ref  ->  registers   class-hnd <Microsoft.CSharp.RuntimeBinder.Semantics.CType>
+;  V03 loc1         [V03,T01] (  6, 22.50)     int  ->   r5        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M38771_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r11,lr}
+            push    {r4,r5,r11,lr}
             add     r11, sp, 8
             mov     r4, r1
                        ;; size=10 bbWeight=1 PerfScore 3.00
-G_M38771_IG02:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+G_M38771_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0]
-            ldr     r3, [r0+0x04]
-            subs    r2, r3, 5
+            mov     r3, r0
+            ; gcrRegs +[r3]
+            ldr     r5, [r0+0x04]
+            subs    r2, r5, 5
             cmp     r2, 2
             bls     SHORT G_M38771_IG05
-                      ;; size=8 bbWeight=8 PerfScore 32.00
-G_M38771_IG03:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            cmp     r3, 8
-            bne     SHORT G_M38771_IG06
-                       ;; size=4 bbWeight=4 PerfScore 8.00
-G_M38771_IG04:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            uxtb    r3, r4
-            cmp     r3, 0
-            beq     SHORT G_M38771_IG06
-                       ;; size=6 bbWeight=2 PerfScore 6.00
-G_M38771_IG05:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+                       ;; size=10 bbWeight=1 PerfScore 5.00
+G_M38771_IG03:        ; bbWeight=0.50, gcrefRegs=0009 {r0 r3}, byrefRegs=0000 {}, byref, isz
+            cmp     r5, 8
+            bne     SHORT G_M38771_IG11
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M38771_IG04:        ; bbWeight=0.25, gcrefRegs=0009 {r0 r3}, byrefRegs=0000 {}, byref, isz
+            uxtb    r2, r4
+            cmp     r2, 0
+            beq     SHORT G_M38771_IG10
+                       ;; size=6 bbWeight=0.25 PerfScore 0.75
+G_M38771_IG05:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r3]
             ldr     r3, [r0]
             ldr     r3, [r3+0x2C]
             ldr     r3, [r3+0x14]
             blx     r3     // <unknown method>
-            b       SHORT G_M38771_IG02
+                        ;; size=8 bbWeight=1 PerfScore 4.00
+G_M38771_IG06:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+            ldr     r5, [r0+0x04]
+            subs    r3, r5, 5
+            cmp     r3, 2
+            bls     SHORT G_M38771_IG09
+                       ;; size=8 bbWeight=8 PerfScore 32.00
+G_M38771_IG07:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+            cmp     r5, 8
+            bne     SHORT G_M38771_IG12
+                       ;; size=4 bbWeight=4 PerfScore 8.00
+G_M38771_IG08:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+            uxtb    r3, r4
+            cmp     r3, 0
+            beq     SHORT G_M38771_IG12
+                       ;; size=6 bbWeight=2 PerfScore 6.00
+G_M38771_IG09:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+            ldr     r3, [r0]
+            ldr     r3, [r3+0x2C]
+            ldr     r3, [r3+0x14]
+            blx     r3     // <unknown method>
+            b       SHORT G_M38771_IG06
                         ;; size=10 bbWeight=4 PerfScore 20.00
-G_M38771_IG06:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
-            pop     {r3,r4,r11,pc}
+G_M38771_IG10:        ; bbWeight=0.12, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0] +[r3]
+            mov     r0, r3
+            ; gcrRegs +[r0]
+            b       SHORT G_M38771_IG12
+                       ;; size=4 bbWeight=0.12 PerfScore 0.25
+G_M38771_IG11:        ; bbWeight=0.25, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r0]
+            mov     r0, r3
+            ; gcrRegs +[r0]
+                       ;; size=2 bbWeight=0.25 PerfScore 0.25
+G_M38771_IG12:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[r3]
+            pop     {r4,r5,r11,pc}
                      ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 42, prolog size 8, PerfScore 70.00, instruction count 18, allocated bytes for code 42 (MethodHash=85d6688c) for method Microsoft.CSharp.RuntimeBinder.Semantics.CType:GetNakedType(ubyte):Microsoft.CSharp.RuntimeBinder.Semantics.CType:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 81.25, instruction count 35, allocated bytes for code 76 (MethodHash=85d6688c) for method Microsoft.CSharp.RuntimeBinder.Semantics.CType:GetNakedType(ubyte):Microsoft.CSharp.RuntimeBinder.Semantics.CType:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -60,11 +96,11 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 21 (0x00015) Actual length = 42 (0x00002a)
+  Function Length   : 38 (0x00026) Actual length = 76 (0x00004c)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     FF          end
     FF          end
 
  
  
libraries_tests.run.linux.arm.Release.mch
-48 (-19.20%) : 660449.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.FieldDeclarationSyntax:get_Modifiers():Microsoft.CodeAnalysis.SyntaxTokenList:this (Tier1)
@@ -9,45 +9,47 @@
 ; 4 inlinees with PGO data; 13 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  9,  7.55)     ref  ->   r4         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.FieldDeclarationSyntax>
-;  V01 RetBuf       [V01,T05] (  7,  6   )   byref  ->   r5         single-def
-;  V02 loc0         [V02,T11] (  5,  3   )     ref  ->   r6         class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
+;  V00 this         [V00,T03] (  8,  8   )     ref  ->   r4         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.FieldDeclarationSyntax>
+;  V01 RetBuf       [V01,T04] (  7,  6   )   byref  ->   r5         single-def
+;  V02 loc0         [V02,T13] (  5,  3   )     ref  ->   r6         class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op <Microsoft.CodeAnalysis.SyntaxTokenList>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T06] (  5,  6   )     ref  ->   r0         class-hnd single-def "spilling ret_expr" <Microsoft.CodeAnalysis.GreenNode>
-;  V06 tmp2         [V06,T08] (  3,  6   )     int  ->   r7         "impAppendStmt"
+;  V05 tmp1         [V05,T07] (  5,  6   )     ref  ->   r0         class-hnd single-def "spilling ret_expr" <Microsoft.CodeAnalysis.GreenNode>
+;  V06 tmp2         [V06,T09] (  3,  6   )     int  ->   r9         "impAppendStmt"
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.SyntaxTokenList>
-;  V08 tmp4         [V08,T13] (  4,  2   )     ref  ->   r6         "guarded devirt return temp"
+;  V08 tmp4         [V08,T15] (  4,  2   )     ref  ->   r6         "guarded devirt return temp"
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.FieldDeclarationSyntax>
 ;* V10 tmp6         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V11 tmp7         [V11,T00] (  7, 41.10)     int  ->   r7         "Inlining Arg"
+;* V11 tmp7         [V11,T11] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V13 tmp9         [V13,T03] (  5, 11   )     int  ->   r8         "Inline stloc first use temp"
-;  V14 tmp10        [V14,T02] (  3, 17   )     ref  ->   r9         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V13 tmp9         [V13,T06] (  4,  7   )     int  ->   r7         "Inline stloc first use temp"
+;  V14 tmp10        [V14,T01] (  3, 17   )     ref  ->   r0         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V16 tmp12        [V16,T01] (  3, 20   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V16 tmp12        [V16,T00] (  3, 20   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;* V18 tmp14        [V18,T17] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;* V18 tmp14        [V18,T19] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V19 tmp15        [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V20 tmp16        [V20,T09] (  6,  4   )     ref  ->  r10         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V20 tmp16        [V20,T10] (  4,  4   )     ref  ->   r8         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V21 tmp17        [V21    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V22 tmp18        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
 ;* V23 tmp19        [V23    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
-;  V24 tmp20        [V24,T10] (  4,  3.12)     int  ->   r8         "Inline stloc first use temp"
-;* V25 tmp21        [V25,T19] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V26 tmp22        [V26,T12] (  6,  2.62)     ref  ->   r0         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V27 tmp23        [V27,T20] (  4,  0.38)     int  ->   r8         "Inline stloc first use temp"
-;* V28 tmp24        [V28,T18] (  0,  0   )     ref  ->  zero-ref    single-def "field V07._parent (fldOffset=0x0)" P-INDEP
-;  V29 tmp25        [V29,T14] (  2,  2   )     ref  ->   r6         single-def "field V07.<Node>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V30 tmp26        [V30,T15] (  2,  2   )     int  ->   r8         single-def "field V07._index (fldOffset=0x8)" P-INDEP
-;  V31 tmp27        [V31,T16] (  2,  2   )     int  ->   r7         single-def "field V07.<Position>k__BackingField (fldOffset=0xc)" P-INDEP
-;  V32 tmp28        [V32,T07] (  3,  6   )     ref  ->   r0         "argument with side effect"
+;  V24 tmp20        [V24,T12] (  4,  3.12)     int  ->   r7         "Inline stloc first use temp"
+;* V25 tmp21        [V25,T21] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V26 tmp22        [V26,T14] (  6,  2.62)     ref  ->   r0         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V27 tmp23        [V27,T22] (  4,  0.38)     int  ->   r7         "Inline stloc first use temp"
+;* V28 tmp24        [V28,T20] (  0,  0   )     ref  ->  zero-ref    single-def "field V07._parent (fldOffset=0x0)" P-INDEP
+;  V29 tmp25        [V29,T16] (  2,  2   )     ref  ->   r6         single-def "field V07.<Node>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V30 tmp26        [V30,T17] (  2,  2   )     int  ->   r7         single-def "field V07._index (fldOffset=0x8)" P-INDEP
+;  V31 tmp27        [V31,T18] (  2,  2   )     int  ->   r9         single-def "field V07.<Position>k__BackingField (fldOffset=0xc)" P-INDEP
+;  V32 tmp28        [V32,T08] (  3,  6   )     ref  ->   r0         "argument with side effect"
+;  V33 cse0         [V33,T02] (  2, 16   )     int  ->   r3         "CSE - aggressive"
+;  V34 cse1         [V34,T05] (  2,  8   )     int  ->   r7         "CSE - aggressive"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M31075_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            add     r11, sp, 32
+            push    {r4,r5,r6,r7,r8,r9,r11,lr}
+            add     r11, sp, 24
             mov     r4, r0
             ; gcrRegs +[r4]
             mov     r5, r1
@@ -60,82 +62,54 @@ G_M31075_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, by
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             cmp     r1, r3
-            bne     SHORT G_M31075_IG23
+            bne     SHORT G_M31075_IG15
             ldr     r6, [r0+0x10]
             ; gcrRegs +[r6]
             cmp     r6, 0
-            beq     SHORT G_M31075_IG24
-                       ;; size=22 bbWeight=1 PerfScore 9.00
-G_M31075_IG03:        ; bbWeight=1, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref
-            ; gcrRegs -[r0]
-            movs    r7, 1
-            mov     r8, 0
-            ldr     r9, [r4+0x0C]
-            ; gcrRegs +[r9]
-                       ;; size=10 bbWeight=1 PerfScore 3.00
-G_M31075_IG04:        ; bbWeight=1, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0020 {r5}, byref, isz
-            subs    r7, r7, 1
-            cmp     r7, 0
-            beq     SHORT G_M31075_IG12
-                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M31075_IG05:        ; bbWeight=0.55, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r7, 2
             beq     SHORT G_M31075_IG16
-                     ;; size=4 bbWeight=0.55 PerfScore 1.10
-G_M31075_IG06:        ; bbWeight=0.45, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0020 {r5}, byref
-            mov     r10, 0
-                       ;; size=4 bbWeight=0.45 PerfScore 0.45
-G_M31075_IG07:        ; bbWeight=1, gcrefRegs=0650 {r4 r6 r9 r10}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs +[r10]
-            cmp     r10, 0
-            bne     SHORT G_M31075_IG13
-                       ;; size=6 bbWeight=1 PerfScore 2.00
-G_M31075_IG08:        ; bbWeight=8, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs -[r10]
-            mov     r0, r9
+                       ;; size=22 bbWeight=1 PerfScore 9.00
+G_M31075_IG03:        ; bbWeight=1, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
+            ; gcrRegs -[r0]
+            movs    r7, 0
+            ldr     r0, [r4+0x0C]
             ; gcrRegs +[r0]
-            mov     r1, r7
-            ldr     r3, [r9]
+            ldr     r8, [r4+0x14]
+            ; gcrRegs +[r8]
+            cmp     r8, 0
+            bne     SHORT G_M31075_IG07
+                       ;; size=14 bbWeight=1 PerfScore 5.00
+G_M31075_IG04:        ; bbWeight=8, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0020 {r5}, byref, isz
+            ; gcrRegs -[r8]
+            movs    r1, 0
+            ldr     r3, [r0]
             ldr     r3, [r3+0x30]
             ldr     r3, [r3+0x10]
             blx     r3     // <unknown method>
             cmp     r0, 0
-            beq     SHORT G_M31075_IG10
-                       ;; size=18 bbWeight=8 PerfScore 64.00
-G_M31075_IG09:        ; bbWeight=4, gcrefRegs=0251 {r0 r4 r6 r9}, byrefRegs=0020 {r5}, byref
-            ldr     r0, [r0+0x04]
+            beq     SHORT G_M31075_IG06
+                       ;; size=14 bbWeight=8 PerfScore 56.00
+G_M31075_IG05:        ; bbWeight=4, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0020 {r5}, byref
+            ldr     r7, [r0+0x04]
+                       ;; size=2 bbWeight=4 PerfScore 4.00
+G_M31075_IG06:        ; bbWeight=1, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
             ; gcrRegs -[r0]
-            add     r8, r0
-                       ;; size=4 bbWeight=4 PerfScore 8.00
-G_M31075_IG10:        ; bbWeight=8, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r7, 0
-            bgt     SHORT G_M31075_IG04
-                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M31075_IG11:        ; bbWeight=1, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs -[r9]
             ldr     r0, [r4+0x10]
-            add     r7, r0, r8
-            b       SHORT G_M31075_IG14
+            add     r9, r0, r7
+            b       SHORT G_M31075_IG08
                         ;; size=8 bbWeight=1 PerfScore 3.00
-G_M31075_IG12:        ; bbWeight=0.45, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs +[r9]
-            ldr     r10, [r4+0x14]
-            ; gcrRegs +[r10]
-            b       SHORT G_M31075_IG07
-                       ;; size=6 bbWeight=0.45 PerfScore 0.90
-G_M31075_IG13:        ; bbWeight=1, gcrefRegs=0450 {r4 r6 r10}, byrefRegs=0020 {r5}, byref
-            ; gcrRegs -[r9]
-            ldr     r0, [r10+0x10]
-            ldr     r1, [r10+0x0C]
+G_M31075_IG07:        ; bbWeight=1, gcrefRegs=0150 {r4 r6 r8}, byrefRegs=0020 {r5}, byref
+            ; gcrRegs +[r8]
+            ldr     r0, [r8+0x10]
+            ldr     r1, [r8+0x0C]
             ; gcrRegs +[r1]
             ldr     r1, [r1+0x04]
             ; gcrRegs -[r1]
             adds    r0, r0, r1
-            add     r7, r0, r8
+            add     r9, r0, r7
                      ;; size=16 bbWeight=1 PerfScore 5.00
-G_M31075_IG14:        ; bbWeight=1, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs -[r10]
-            mov     r8, 0
+G_M31075_IG08:        ; bbWeight=1, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
+            ; gcrRegs -[r8]
+            movs    r7, 0
             ldr     r0, [r4+0x0C]
             ; gcrRegs +[r0]
             movs    r1, 0
@@ -144,36 +118,26 @@ G_M31075_IG14:        ; bbWeight=1, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5},
             ldr     r3, [r3+0x10]
             blx     r3     // <unknown method>
             cmp     r0, 0
-            beq     SHORT G_M31075_IG21
-                       ;; size=20 bbWeight=1 PerfScore 9.00
-G_M31075_IG15:        ; bbWeight=0.50, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0020 {r5}, byref, isz
-            b       SHORT G_M31075_IG17
-                       ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M31075_IG16:        ; bbWeight=0.10, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs -[r0] +[r9]
-            ldr     r10, [r4+0x18]
-            ; gcrRegs +[r10]
-            b       SHORT G_M31075_IG07
-                       ;; size=6 bbWeight=0.10 PerfScore 0.20
-G_M31075_IG17:        ; bbWeight=0.50, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs -[r9-r10] +[r0]
+            beq     SHORT G_M31075_IG13
+                       ;; size=18 bbWeight=1 PerfScore 9.00
+G_M31075_IG09:        ; bbWeight=0.50, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0020 {r5}, byref, isz
             ldrh    r1, [r0+0x08]
             cmp     r1, 1
-            bne     SHORT G_M31075_IG20
+            bne     SHORT G_M31075_IG12
                         ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M31075_IG18:        ; bbWeight=0.12, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0020 {r5}, byref, isz
-            ldrb    r8, [r0+0x0B]
-            cmp     r8, 255
-            beq     SHORT G_M31075_IG26
-                       ;; size=10 bbWeight=0.12 PerfScore 0.38
-G_M31075_IG19:        ; bbWeight=0.12, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
+G_M31075_IG10:        ; bbWeight=0.12, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0020 {r5}, byref, isz
+            ldrb    r7, [r0+0x0B]
+            cmp     r7, 255
+            beq     SHORT G_M31075_IG18
+                       ;; size=6 bbWeight=0.12 PerfScore 0.38
+G_M31075_IG11:        ; bbWeight=0.12, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
             ; gcrRegs -[r0]
-            b       SHORT G_M31075_IG21
+            b       SHORT G_M31075_IG13
                         ;; size=2 bbWeight=0.12 PerfScore 0.12
-G_M31075_IG20:        ; bbWeight=1, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref
-            mov     r8, 1
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M31075_IG21:        ; bbWeight=1, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref
+G_M31075_IG12:        ; bbWeight=1, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref
+            movs    r7, 1
+                       ;; size=2 bbWeight=1 PerfScore 1.00
+G_M31075_IG13:        ; bbWeight=1, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref
             mov     r0, r5
             ; byrRegs +[r0]
             mov     r1, r4
@@ -192,13 +156,13 @@ G_M31075_IG21:        ; bbWeight=1, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5},
             blx     r12        // CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[r1 r6]
             ; byrRegs -[r0]
-            str     r8, [r5+0x08]
-            str     r7, [r5+0x0C]
+            str     r7, [r5+0x08]
+            str     r9, [r5+0x0C]
                       ;; size=34 bbWeight=1 PerfScore 12.00
-G_M31075_IG22:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r3,r4,r5,r6,r7,r8,r9,r10,r11,pc}
+G_M31075_IG14:        ; bbWeight=1, epilog, nogc, extend
...
  
-46 (-18.70%) : 88843.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.FieldDeclarationSyntax:get_Modifiers():Microsoft.CodeAnalysis.SyntaxTokenList:this (Tier1)
@@ -9,45 +9,47 @@
 ; 4 inlinees with PGO data; 13 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  9,  7.47)     ref  ->   r4         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.FieldDeclarationSyntax>
-;  V01 RetBuf       [V01,T05] (  7,  5.94)   byref  ->   r5         single-def
-;  V02 loc0         [V02,T11] (  3,  2.98)     ref  ->   r6         class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
+;  V00 this         [V00,T03] (  8,  7.90)     ref  ->   r4         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.FieldDeclarationSyntax>
+;  V01 RetBuf       [V01,T04] (  7,  5.94)   byref  ->   r5         single-def
+;  V02 loc0         [V02,T13] (  3,  2.98)     ref  ->   r6         class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op <Microsoft.CodeAnalysis.SyntaxTokenList>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T06] (  5,  6   )     ref  ->   r0         class-hnd single-def "spilling ret_expr" <Microsoft.CodeAnalysis.GreenNode>
-;  V06 tmp2         [V06,T08] (  3,  5.88)     int  ->   r7         "impAppendStmt"
+;  V05 tmp1         [V05,T07] (  5,  6   )     ref  ->   r0         class-hnd single-def "spilling ret_expr" <Microsoft.CodeAnalysis.GreenNode>
+;  V06 tmp2         [V06,T09] (  3,  5.88)     int  ->   r9         "impAppendStmt"
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.SyntaxTokenList>
-;  V08 tmp4         [V08,T13] (  3,  2   )     ref  ->   r6         "guarded devirt return temp"
+;  V08 tmp4         [V08,T15] (  3,  2   )     ref  ->   r6         "guarded devirt return temp"
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.FieldDeclarationSyntax>
 ;* V10 tmp6         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V11 tmp7         [V11,T00] (  7, 40.35)     int  ->   r7         "Inlining Arg"
+;* V11 tmp7         [V11,T11] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V13 tmp9         [V13,T03] (  5, 10.78)     int  ->   r8         "Inline stloc first use temp"
-;  V14 tmp10        [V14,T02] (  3, 16.66)     ref  ->   r9         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V13 tmp9         [V13,T06] (  4,  6.86)     int  ->   r7         "Inline stloc first use temp"
+;  V14 tmp10        [V14,T01] (  3, 16.66)     ref  ->   r0         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V16 tmp12        [V16,T01] (  3, 19.60)     ref  ->   r0         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V16 tmp12        [V16,T00] (  3, 19.60)     ref  ->   r0         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;* V18 tmp14        [V18,T17] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;* V18 tmp14        [V18,T19] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V19 tmp15        [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V20 tmp16        [V20,T09] (  6,  3.92)     ref  ->  r10         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V20 tmp16        [V20,T10] (  4,  3.92)     ref  ->   r8         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V21 tmp17        [V21    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V22 tmp18        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
 ;* V23 tmp19        [V23    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
-;  V24 tmp20        [V24,T10] (  4,  3.06)     int  ->   r8         "Inline stloc first use temp"
-;* V25 tmp21        [V25,T19] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V26 tmp22        [V26,T12] (  6,  2.57)     ref  ->   r0         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V27 tmp23        [V27,T20] (  4,  0.37)     int  ->   r8         "Inline stloc first use temp"
-;* V28 tmp24        [V28,T18] (  0,  0   )     ref  ->  zero-ref    single-def "field V07._parent (fldOffset=0x0)" P-INDEP
-;  V29 tmp25        [V29,T14] (  2,  1.96)     ref  ->   r6         single-def "field V07.<Node>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V30 tmp26        [V30,T15] (  2,  1.96)     int  ->   r8         single-def "field V07._index (fldOffset=0x8)" P-INDEP
-;  V31 tmp27        [V31,T16] (  2,  1.96)     int  ->   r7         single-def "field V07.<Position>k__BackingField (fldOffset=0xc)" P-INDEP
-;  V32 tmp28        [V32,T07] (  3,  5.88)     ref  ->   r0         "argument with side effect"
+;  V24 tmp20        [V24,T12] (  4,  3.06)     int  ->   r7         "Inline stloc first use temp"
+;* V25 tmp21        [V25,T21] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V26 tmp22        [V26,T14] (  6,  2.57)     ref  ->   r0         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V27 tmp23        [V27,T22] (  4,  0.37)     int  ->   r7         "Inline stloc first use temp"
+;* V28 tmp24        [V28,T20] (  0,  0   )     ref  ->  zero-ref    single-def "field V07._parent (fldOffset=0x0)" P-INDEP
+;  V29 tmp25        [V29,T16] (  2,  1.96)     ref  ->   r6         single-def "field V07.<Node>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V30 tmp26        [V30,T17] (  2,  1.96)     int  ->   r7         single-def "field V07._index (fldOffset=0x8)" P-INDEP
+;  V31 tmp27        [V31,T18] (  2,  1.96)     int  ->   r9         single-def "field V07.<Position>k__BackingField (fldOffset=0xc)" P-INDEP
+;  V32 tmp28        [V32,T08] (  3,  5.88)     ref  ->   r0         "argument with side effect"
+;  V33 cse0         [V33,T02] (  2, 15.68)     int  ->   r3         "CSE - aggressive"
+;  V34 cse1         [V34,T05] (  2,  7.84)     int  ->   r7         "CSE - aggressive"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M31075_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            add     r11, sp, 32
+            push    {r4,r5,r6,r7,r8,r9,r11,lr}
+            add     r11, sp, 24
             mov     r4, r0
             ; gcrRegs +[r4]
             mov     r5, r1
@@ -60,66 +62,44 @@ G_M31075_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, by
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             cmp     r1, r3
-            bne     SHORT G_M31075_IG25
+            bne     SHORT G_M31075_IG18
             ldr     r6, [r0+0x10]
             ; gcrRegs +[r6]
                        ;; size=18 bbWeight=1 PerfScore 7.00
 G_M31075_IG03:        ; bbWeight=1, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
             ; gcrRegs -[r0]
             cmp     r6, 0
-            beq     SHORT G_M31075_IG13
+            beq     SHORT G_M31075_IG08
                         ;; size=4 bbWeight=1 PerfScore 2.00
-G_M31075_IG04:        ; bbWeight=0.98, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref
-            movs    r7, 1
-            mov     r8, 0
-            ldr     r9, [r4+0x0C]
-            ; gcrRegs +[r9]
-                       ;; size=10 bbWeight=0.98 PerfScore 2.94
-G_M31075_IG05:        ; bbWeight=0.98, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0020 {r5}, byref, isz
-            subs    r7, r7, 1
-            cmp     r7, 0
-            beq     SHORT G_M31075_IG20
-                       ;; size=6 bbWeight=0.98 PerfScore 2.94
-G_M31075_IG06:        ; bbWeight=0.57, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r7, 2
-            beq     SHORT G_M31075_IG24
-                       ;; size=4 bbWeight=0.57 PerfScore 1.15
-G_M31075_IG07:        ; bbWeight=0.44, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0020 {r5}, byref
-            mov     r10, 0
-                       ;; size=4 bbWeight=0.44 PerfScore 0.44
-G_M31075_IG08:        ; bbWeight=0.98, gcrefRegs=0650 {r4 r6 r9 r10}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs +[r10]
-            cmp     r10, 0
-            bne     SHORT G_M31075_IG15
-                       ;; size=6 bbWeight=0.98 PerfScore 1.96
-G_M31075_IG09:        ; bbWeight=7.84, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs -[r10]
-            mov     r0, r9
+G_M31075_IG04:        ; bbWeight=0.98, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
+            movs    r7, 0
+            ldr     r0, [r4+0x0C]
             ; gcrRegs +[r0]
-            mov     r1, r7
-            ldr     r3, [r9]
+            ldr     r8, [r4+0x14]
+            ; gcrRegs +[r8]
+            cmp     r8, 0
+            bne     SHORT G_M31075_IG10
+                       ;; size=14 bbWeight=0.98 PerfScore 4.90
+G_M31075_IG05:        ; bbWeight=7.84, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0020 {r5}, byref, isz
+            ; gcrRegs -[r8]
+            movs    r1, 0
+            ldr     r3, [r0]
             ldr     r3, [r3+0x30]
             ldr     r3, [r3+0x10]
             blx     r3     // <unknown method>
             cmp     r0, 0
-            beq     SHORT G_M31075_IG11
-                       ;; size=18 bbWeight=7.84 PerfScore 62.73
-G_M31075_IG10:        ; bbWeight=3.92, gcrefRegs=0251 {r0 r4 r6 r9}, byrefRegs=0020 {r5}, byref
-            ldr     r0, [r0+0x04]
+            beq     SHORT G_M31075_IG07
+                       ;; size=14 bbWeight=7.84 PerfScore 54.89
+G_M31075_IG06:        ; bbWeight=3.92, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0020 {r5}, byref
+            ldr     r7, [r0+0x04]
+                       ;; size=2 bbWeight=3.92 PerfScore 3.92
+G_M31075_IG07:        ; bbWeight=0.98, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
             ; gcrRegs -[r0]
-            add     r8, r0
-                       ;; size=4 bbWeight=3.92 PerfScore 7.84
-G_M31075_IG11:        ; bbWeight=7.84, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r7, 0
-            bgt     SHORT G_M31075_IG05
-                       ;; size=4 bbWeight=7.84 PerfScore 15.68
-G_M31075_IG12:        ; bbWeight=0.98, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs -[r9]
             ldr     r0, [r4+0x10]
-            add     r7, r0, r8
-            b       SHORT G_M31075_IG16
+            add     r9, r0, r7
+            b       SHORT G_M31075_IG11
                         ;; size=8 bbWeight=0.98 PerfScore 2.94
-G_M31075_IG13:        ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref
+G_M31075_IG08:        ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref
             ; gcrRegs -[r4 r6]
             movs    r0, 0
             str     r0, [r5]
@@ -127,22 +107,22 @@ G_M31075_IG13:        ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, b
             str     r0, [r5+0x08]
             str     r0, [r5+0x0C]
                        ;; size=10 bbWeight=0.02 PerfScore 0.10
-G_M31075_IG14:        ; bbWeight=0.02, epilog, nogc, extend
-            pop     {r3,r4,r5,r6,r7,r8,r9,r10,r11,pc}
+G_M31075_IG09:        ; bbWeight=0.02, epilog, nogc, extend
+            pop     {r4,r5,r6,r7,r8,r9,r11,pc}
                      ;; size=4 bbWeight=0.02 PerfScore 0.02
-G_M31075_IG15:        ; bbWeight=0.98, gcVars=00000000 {}, gcrefRegs=0450 {r4 r6 r10}, byrefRegs=0020 {r5}, gcvars, byref
-            ; gcrRegs +[r4 r6 r10]
-            ldr     r0, [r10+0x10]
-            ldr     r1, [r10+0x0C]
+G_M31075_IG10:        ; bbWeight=0.98, gcVars=00000000 {}, gcrefRegs=0150 {r4 r6 r8}, byrefRegs=0020 {r5}, gcvars, byref
+            ; gcrRegs +[r4 r6 r8]
+            ldr     r0, [r8+0x10]
+            ldr     r1, [r8+0x0C]
             ; gcrRegs +[r1]
             ldr     r1, [r1+0x04]
             ; gcrRegs -[r1]
             adds    r0, r0, r1
-            add     r7, r0, r8
+            add     r9, r0, r7
                      ;; size=16 bbWeight=0.98 PerfScore 4.90
-G_M31075_IG16:        ; bbWeight=0.98, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs -[r10]
-            mov     r8, 0
+G_M31075_IG11:        ; bbWeight=0.98, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
+            ; gcrRegs -[r8]
+            movs    r7, 0
             ldr     r0, [r4+0x0C]
             ; gcrRegs +[r0]
             movs    r1, 0
@@ -151,33 +131,26 @@ G_M31075_IG16:        ; bbWeight=0.98, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r
             ldr     r3, [r3+0x10]
             blx     r3     // <unknown method>
             cmp     r0, 0
-            beq     SHORT G_M31075_IG22
-                       ;; size=20 bbWeight=0.98 PerfScore 8.82
-G_M31075_IG17:        ; bbWeight=0.49, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0020 {r5}, byref, isz
+            beq     SHORT G_M31075_IG16
+                       ;; size=18 bbWeight=0.98 PerfScore 8.82
+G_M31075_IG12:        ; bbWeight=0.49, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0020 {r5}, byref, isz
             ldrh    r1, [r0+0x08]
             cmp     r1, 1
-            bne     SHORT G_M31075_IG21
+            bne     SHORT G_M31075_IG15
                         ;; size=6 bbWeight=0.49 PerfScore 1.47
-G_M31075_IG18:        ; bbWeight=0.12, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0020 {r5}, byref, isz
-            ldrb    r8, [r0+0x0B]
-            cmp     r8, 255
-            beq     SHORT G_M31075_IG26
-                       ;; size=10 bbWeight=0.12 PerfScore 0.37
-G_M31075_IG19:        ; bbWeight=0.12, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
+G_M31075_IG13:        ; bbWeight=0.12, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0020 {r5}, byref, isz
+            ldrb    r7, [r0+0x0B]
+            cmp     r7, 255
+            beq     SHORT G_M31075_IG19
+                       ;; size=6 bbWeight=0.12 PerfScore 0.37
+G_M31075_IG14:        ; bbWeight=0.12, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref, isz
             ; gcrRegs -[r0]
-            b       SHORT G_M31075_IG22
+            b       SHORT G_M31075_IG16
                         ;; size=2 bbWeight=0.12 PerfScore 0.12
-G_M31075_IG20:        ; bbWeight=0.41, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs +[r9]
-            ldr     r10, [r4+0x14]
-            ; gcrRegs +[r10]
-            b       SHORT G_M31075_IG08
-                       ;; size=6 bbWeight=0.41 PerfScore 0.81
-G_M31075_IG21:        ; bbWeight=0.98, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref
-            ; gcrRegs -[r9-r10]
-            mov     r8, 1
-                       ;; size=4 bbWeight=0.98 PerfScore 0.98
-G_M31075_IG22:        ; bbWeight=0.98, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref
+G_M31075_IG15:        ; bbWeight=0.98, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref
+            movs    r7, 1
+                       ;; size=2 bbWeight=0.98 PerfScore 0.98
+G_M31075_IG16:        ; bbWeight=0.98, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r5}, byref
             mov     r0, r5
             ; byrRegs +[r0]
             mov     r1, r4
@@ -196,20 +169,14 @@ G_M31075_IG22:        ; bbWeight=0.98, gcrefRegs=0050 {r4 r6}, byrefRegs=0020 {r
             blx     r12        // CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[r1 r6]
             ; byrRegs -[r0]
-            str     r8, [r5+0x08]
-            str     r7, [r5+0x0C]
...
  
-48 (-15.38%) : 183540.dasm - Microsoft.CodeAnalysis.Syntax.SyntaxList+WithTwoChildren:GetNodeSlot(int):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
@@ -9,61 +9,62 @@
 ; 1 inlinees with PGO data; 16 single block inlinees; 9 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] ( 15, 11.50)     ref  ->   r4         this class-hnd single-def <Microsoft.CodeAnalysis.Syntax.SyntaxList+WithTwoChildren>
-;  V01 arg1         [V01,T06] (  4,  3.50)     int  ->   r1         single-def
+;  V00 this         [V00,T00] ( 14,  8   )     ref  ->   r4         this class-hnd single-def <Microsoft.CodeAnalysis.Syntax.SyntaxList+WithTwoChildren>
+;  V01 arg1         [V01,T01] (  4,  3.50)     int  ->   r1         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V04 tmp2         [V04,T07] (  5,  5   )   byref  ->   r5         single-def "Inlining Arg"
-;  V05 tmp3         [V05,T11] (  4,  2   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V06 tmp4         [V06,T19] (  3,  1.50)     ref  ->   r0         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V07 tmp5         [V07,T15] (  2,  2   )     ref  ->   r1         class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V04 tmp2         [V04,T02] (  5,  5   )   byref  ->   r5         single-def "Inlining Arg"
+;  V05 tmp3         [V05,T06] (  4,  2   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V06 tmp4         [V06,T16] (  3,  1.50)     ref  ->   r0         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V07 tmp5         [V07,T10] (  2,  2   )     ref  ->   r1         class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
-;  V09 tmp7         [V09,T22] (  3,  1.50)     int  ->   r2         "Inline return value spill temp"
-;* V10 tmp8         [V10,T25] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V09 tmp7         [V09,T21] (  3,  1.50)     int  ->   r2         "Inline return value spill temp"
+;* V10 tmp8         [V10,T26] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
 ;  V12 tmp10        [V12,T24] (  2,  1   )     int  ->   r2         "Inline stloc first use temp"
-;* V13 tmp11        [V13,T26] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;* V13 tmp11        [V13,T28] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
 ;* V14 tmp12        [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V15 tmp13        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V16 tmp14        [V16,T20] (  3,  1.50)     ref  ->   r2         class-hnd single-def "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V16 tmp14        [V16,T17] (  3,  1.50)     ref  ->   r2         class-hnd single-def "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V17 tmp15        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V18 tmp16        [V18,T16] (  2,  2   )     ref  ->   r1         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V18 tmp16        [V18,T11] (  2,  2   )     ref  ->   r1         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V19 tmp17        [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V20 tmp18        [V20,T08] (  5,  5   )   byref  ->   r5         single-def "Inlining Arg"
-;  V21 tmp19        [V21,T12] (  4,  2   )     ref  ->   r6         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V22 tmp20        [V22,T13] (  4,  2   )     ref  ->   r7         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V23 tmp21        [V23,T17] (  2,  2   )     ref  ->   r6         class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V20 tmp18        [V20,T03] (  5,  5   )   byref  ->   r5         single-def "Inlining Arg"
+;  V21 tmp19        [V21,T07] (  4,  2   )     ref  ->   r6         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V22 tmp20        [V22,T08] (  4,  2   )     ref  ->   r7         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V23 tmp21        [V23,T12] (  2,  2   )     ref  ->   r6         class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V24 tmp22        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
-;  V25 tmp23        [V25,T14] (  4,  2   )     int  ->   r2         "Inline return value spill temp"
-;  V26 tmp24        [V26,T00] (  7, 45   )     int  ->   r9         "Inlining Arg"
+;  V25 tmp23        [V25,T09] (  4,  2   )     int  ->   r2         "Inline return value spill temp"
+;* V26 tmp24        [V26,T14] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp25        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V28 tmp26        [V28,T05] (  5,  5.50)     int  ->  r10         "Inline stloc first use temp"
-;  V29 tmp27        [V29,T04] (  3,  8.50)     ref  ->  [sp+0x04]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V28 tmp26        [V28,T15] (  4,  1.75)     int  ->   r9         "Inline stloc first use temp"
+;  V29 tmp27        [V29,T18] (  3,  1.50)     ref  ->   r0         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
 ;* V30 tmp28        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V31 tmp29        [V31,T03] (  3, 10   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V32 tmp30        [V32,T21] (  3,  1.50)     ref  ->   r0         class-hnd single-def "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V33 tmp31        [V33,T02] (  5, 10.50)     ref  ->   r0         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V34 tmp32        [V34,T18] (  2,  2   )     ref  ->   r1         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V35 tmp33        [V35,T09] (  3,  3   )     ref  ->   r0         single-def "argument with side effect"
-;  V36 tmp34        [V36,T10] (  3,  3   )     ref  ->   r0         single-def "argument with side effect"
-;  V37 cse0         [V37,T23] (  3,  1.50)     int  ->   r8         "CSE - moderate"
+;  V31 tmp29        [V31,T23] (  3,  1.25)     ref  ->   r0         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V32 tmp30        [V32,T19] (  3,  1.50)     ref  ->   r0         class-hnd single-def "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V33 tmp31        [V33,T20] (  3,  1.50)     ref  ->   r3         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V34 tmp32        [V34,T13] (  2,  2   )     ref  ->   r1         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V35 tmp33        [V35,T04] (  3,  3   )     ref  ->   r0         single-def "argument with side effect"
+;  V36 tmp34        [V36,T05] (  3,  3   )     ref  ->   r0         single-def "argument with side effect"
+;  V37 cse0         [V37,T25] (  2,  1   )     int  ->   r3         "CSE - moderate"
+;  V38 cse1         [V38,T22] (  3,  1.50)     int  ->   r8         "CSE - moderate"
+;  V39 cse2         [V39,T27] (  2,  0.50)     int  ->   r9         "CSE - conservative"
 ;
-; Lcl frame size = 12
+; Lcl frame size = 0
 
 G_M57109_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 12
-            add     r11, sp, 40
+            push    {r4,r5,r6,r7,r8,r9,r11,lr}
+            add     r11, sp, 24
             mov     r4, r0
             ; gcrRegs +[r4]
-                      ;; size=12 bbWeight=1 PerfScore 4.00
+                      ;; size=10 bbWeight=1 PerfScore 3.00
 G_M57109_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             cmp     r1, 0
             beq     SHORT G_M57109_IG07
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M57109_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             cmp     r1, 1
-            bne     G_M57109_IG23
+            bne     SHORT G_M57109_IG16
             add     r5, r4, 24
             ; byrRegs +[r5]
             ldr     r6, [r5]
@@ -88,13 +89,12 @@ G_M57109_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
             cmp     r0, 0
             bne     SHORT G_M57109_IG05
             ldr     r6, [r4+0x04]
-            mov     r9, 1
             ldr     r0, [r4+0x18]
             ; gcrRegs +[r0]
             cmp     r0, 0
             beq     SHORT G_M57109_IG11
             ldr     r2, [r0+0x10]
-                        ;; size=62 bbWeight=0.50 PerfScore 13.00
+                      ;; size=56 bbWeight=0.50 PerfScore 12.50
 G_M57109_IG04:        ; bbWeight=0.50, gcrefRegs=00C0 {r6 r7}, byrefRegs=0020 {r5}, byref, isz
             ; gcrRegs -[r0 r4]
             mov     r0, r7
@@ -108,7 +108,7 @@ G_M57109_IG04:        ; bbWeight=0.50, gcrefRegs=00C0 {r6 r7}, byrefRegs=0020 {r
             mov     r1, r0
             ; gcrRegs +[r1]
             cmp     r5, 0
-            beq     SHORT G_M57109_IG22
+            beq     SHORT G_M57109_IG15
             mov     r0, r5
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -128,9 +128,8 @@ G_M57109_IG05:        ; bbWeight=0.50, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, b
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M57109_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+            pop     {r4,r5,r6,r7,r8,r9,r11,pc}
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M57109_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0 r6] +[r4]
             add     r5, r4, 20
@@ -170,7 +169,7 @@ G_M57109_IG09:        ; bbWeight=0.50, gcrefRegs=0003 {r0 r1}, byrefRegs=0020 {r
             mov     r1, r0
             ; gcrRegs +[r1]
             cmp     r5, 0
-            beq     SHORT G_M57109_IG22
+            beq     SHORT G_M57109_IG15
             mov     r0, r5
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -184,86 +183,51 @@ G_M57109_IG09:        ; bbWeight=0.50, gcrefRegs=0003 {r0 r1}, byrefRegs=0020 {r
                        ;; size=30 bbWeight=0.50 PerfScore 6.50
 G_M57109_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[r5]
-            add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M57109_IG11:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00D0 {r4 r6 r7}, byrefRegs=0020 {r5}, gcvars, byref
+            pop     {r4,r5,r6,r7,r8,r9,r11,pc}
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
+G_M57109_IG11:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00D0 {r4 r6 r7}, byrefRegs=0020 {r5}, gcvars, byref, isz
             ; gcrRegs -[r0] +[r4 r6-r7]
             ; byrRegs +[r5]
-            mov     r10, 0
-            ldr     r3, [r4+0x0C]
+            mov     r9, 0
+            ldr     r0, [r4+0x0C]
+            ; gcrRegs +[r0]
+            ldr     r3, [r4+0x14]
             ; gcrRegs +[r3]
-            str     r3, [sp+0x04]
-            ; GC ptr vars +{V29}
-                       ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M57109_IG12:        ; bbWeight=4, gcVars=00000010 {V29}, gcrefRegs=00D8 {r3 r4 r6 r7}, byrefRegs=0020 {r5}, gcvars, byref, isz
-            add     r9, r9, -1
-            cmp     r9, 0
-            beq     SHORT G_M57109_IG14
-                       ;; size=10 bbWeight=4 PerfScore 12.00
-G_M57109_IG13:        ; bbWeight=2, gcrefRegs=00D8 {r3 r4 r6 r7}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r9, 1
-            beq     SHORT G_M57109_IG15
-            b       SHORT G_M57109_IG16
-                       ;; size=8 bbWeight=2 PerfScore 6.00
-G_M57109_IG14:        ; bbWeight=2, gcrefRegs=00D8 {r3 r4 r6 r7}, byrefRegs=0020 {r5}, byref, isz
-            ldr     r0, [r4+0x14]
-            ; gcrRegs +[r0]
-            b       SHORT G_M57109_IG17
-                       ;; size=4 bbWeight=2 PerfScore 4.00
-G_M57109_IG15:        ; bbWeight=2, gcrefRegs=00D8 {r3 r4 r6 r7}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs -[r0]
-            ldr     r0, [r4+0x18]
-            ; gcrRegs +[r0]
-            b       SHORT G_M57109_IG17
-                       ;; size=4 bbWeight=2 PerfScore 4.00
-G_M57109_IG16:        ; bbWeight=2, gcrefRegs=00D8 {r3 r4 r6 r7}, byrefRegs=0020 {r5}, byref
-            ; gcrRegs -[r0]
-            movs    r0, 0
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M57109_IG17:        ; bbWeight=4, gcrefRegs=00D9 {r0 r3 r4 r6 r7}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs +[r0]
-            cmp     r0, 0
-            bne     SHORT G_M57109_IG21
-            mov     r0, r3
-            mov     r1, r9
-            ldr     r2, [r3]
-            ldr     r2, [r2+0x30]
-            ldr     r2, [r2+0x10]
-            blx     r2     // <unknown method>
+            cmp     r3, 0
+            bne     SHORT G_M57109_IG14
+            movs    r1, 0
+            ldr     r3, [r0]
             ; gcrRegs -[r3]
+            ldr     r3, [r3+0x30]
+            ldr     r3, [r3+0x10]
+            blx     r3     // <unknown method>
             cmp     r0, 0
-            beq     SHORT G_M57109_IG19
-                       ;; size=20 bbWeight=4 PerfScore 40.00
-G_M57109_IG18:        ; bbWeight=2, gcrefRegs=00D1 {r0 r4 r6 r7}, byrefRegs=0020 {r5}, byref
-            ldr     r0, [r0+0x04]
+            beq     SHORT G_M57109_IG13
+                       ;; size=26 bbWeight=0.50 PerfScore 6.00
+G_M57109_IG12:        ; bbWeight=0.25, gcrefRegs=00D1 {r0 r4 r6 r7}, byrefRegs=0020 {r5}, byref
+            ldr     r9, [r0+0x04]
+                       ;; size=4 bbWeight=0.25 PerfScore 0.25
+G_M57109_IG13:        ; bbWeight=0.50, gcrefRegs=00D0 {r4 r6 r7}, byrefRegs=0020 {r5}, byref, isz
             ; gcrRegs -[r0]
-            add     r10, r0
-                       ;; size=4 bbWeight=2 PerfScore 4.00
-G_M57109_IG19:        ; bbWeight=4, gcrefRegs=00D0 {r4 r6 r7}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r9, 0
-            ldr     r3, [sp+0x04]  // [V29 tmp27]
-            ; gcrRegs +[r3]
-            bgt     SHORT G_M57109_IG12
-                       ;; size=8 bbWeight=4 PerfScore 12.00
-G_M57109_IG20:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00D0 {r4 r6 r7}, byrefRegs=0020 {r5}, gcvars, byref, isz
-            ; gcrRegs -[r3]
-            ; GC ptr vars -{V29}
             ldr     r0, [r4+0x10]
-            add     r2, r0, r10
+            add     r2, r0, r9
             b       SHORT G_M57109_IG04
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M57109_IG21:        ; bbWeight=0.50, gcrefRegs=00C1 {r0 r6 r7}, byrefRegs=0020 {r5}, byref, isz
-            ; gcrRegs -[r4] +[r0]
+G_M57109_IG14:        ; bbWeight=0.50, gcrefRegs=00C8 {r3 r6 r7}, byrefRegs=0020 {r5}, byref, isz
+            ; gcrRegs -[r4] +[r3]
+            mov     r0, r3
+            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
+            ; gcrRegs -[r3]
             movt    r3, 0xd1ff
             ldr     r3, [r3]
+            ldr     r2, [r0]
             blx     r3       // Microsoft.CodeAnalysis.SyntaxNode:get_EndPosition():int:this
             ; gcrRegs -[r0]
-            add     r2, r0, r10
+            add     r2, r0, r9
             b       SHORT G_M57109_IG04
...
  
+38 (+76.00%) : 528188.dasm - System.Runtime.Tests.ControlledExecutionTests:RunInfiniteLoop():this (Tier0-FullOpts)
@@ -7,38 +7,55 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4, 18   )     ref  ->   r4         this class-hnd single-def <System.Runtime.Tests.ControlledExecutionTests>
-;  V01 loc0         [V01,T00] (  3, 24   )     int  ->   r0        
+;  V00 this         [V00,T01] (  6, 20   )     ref  ->   r4         this class-hnd single-def <System.Runtime.Tests.ControlledExecutionTests>
+;  V01 loc0         [V01,T00] (  6, 27   )     int  ->   r5        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
-G_M38489_IG01:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r11,lr}
+G_M38489_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+            push    {r4,r5,r11,lr}
             add     r11, sp, 8
             mov     r4, r0
             ; gcrRegs +[r4]
-                      ;; size=10 bbWeight=8 PerfScore 24.00
-G_M38489_IG02:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+                       ;; size=10 bbWeight=1 PerfScore 3.00
+G_M38489_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x08]
             dmb     15
-            adds    r0, r0, 1
-            str     r0, [r4+0x08]
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ands    r0, r3
+            adds    r5, r0, 1
+            str     r5, [r4+0x08]
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+            ands    r0, r5
             cmp     r0, 0
-            bne     SHORT G_M38489_IG02
+            bne     SHORT G_M38489_IG03
             movs    r0, 0
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
-            b       SHORT G_M38489_IG02
+                     ;; size=38 bbWeight=1 PerfScore 14.00
+G_M38489_IG03:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r4+0x08]
+            dmb     15
+            adds    r5, r0, 1
+            str     r5, [r4+0x08]
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+            ands    r0, r5
+            cmp     r0, 0
+            bne     SHORT G_M38489_IG03
+            movs    r0, 0
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // <unknown method>
+            ; gcr arg pop 0
+            b       SHORT G_M38489_IG03
                         ;; size=40 bbWeight=8 PerfScore 120.00
 
-; Total bytes of code 50, prolog size 10, PerfScore 144.00, instruction count 18, allocated bytes for code 50 (MethodHash=e35169a6) for method System.Runtime.Tests.ControlledExecutionTests:RunInfiniteLoop():this (Tier0-FullOpts)
+; Total bytes of code 88, prolog size 10, PerfScore 137.00, instruction count 32, allocated bytes for code 88 (MethodHash=e35169a6) for method System.Runtime.Tests.ControlledExecutionTests:RunInfiniteLoop():this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -50,11 +67,11 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 25 (0x00019) Actual length = 50 (0x000032)
+  Function Length   : 44 (0x0002c) Actual length = 88 (0x000058)
   ---- Epilog scopes ----
   No epilogs
   ---- Unwind codes ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     FF          end
     FF          end
 
  
+46 (+76.67%) : 253823.dasm - System.Data.DataTableCollection:AssignName():System.String:this (Tier0-FullOpts)
@@ -8,10 +8,10 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  6, 22   )     ref  ->   r4         this class-hnd single-def <System.Data.DataTableCollection>
+;  V00 this         [V00,T01] ( 10, 24.50)     ref  ->   r4         this class-hnd single-def <System.Data.DataTableCollection>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T00] (  3, 34   )     ref  ->   r5         class-hnd exact "dup spill" <System.String>
+;  V03 tmp1         [V03,T00] (  5, 38   )     ref  ->   r5         class-hnd exact "dup spill" <System.String>
 ;
 ; Lcl frame size = 0
 
@@ -24,12 +24,13 @@ G_M26994_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M26994_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M26994_IG04
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M26994_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M26994_IG03:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x18]
             adds    r0, r0, 1
             str     r0, [r4+0x18]
-                        ;; size=6 bbWeight=2 PerfScore 6.00
-G_M26994_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M26994_IG07
+                       ;; size=8 bbWeight=0.25 PerfScore 1.00
+G_M26994_IG04:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x18]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -48,17 +49,47 @@ G_M26994_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ; gcrRegs -[r0-r1]
             cmp     r0, 0
             bge     SHORT G_M26994_IG03
+                      ;; size=36 bbWeight=1 PerfScore 14.00
+G_M26994_IG05:        ; bbWeight=0.12, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r4]
+            b       SHORT G_M26994_IG08
+                       ;; size=2 bbWeight=0.12 PerfScore 0.12
+G_M26994_IG06:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r5] +[r4]
+            ldr     r0, [r4+0x18]
+            adds    r0, r0, 1
+            str     r0, [r4+0x18]
+                       ;; size=6 bbWeight=2 PerfScore 6.00
+G_M26994_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r4+0x18]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.Data.DataTableCollection:MakeName(int):System.String
+            ; gcrRegs +[r0]
+            mov     r5, r0
+            ; gcrRegs +[r5]
+            mov     r0, r4
+            mov     r1, r5
+            ; gcrRegs +[r1]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0-r1]
+            cmp     r0, 0
+            bge     SHORT G_M26994_IG06
                         ;; size=36 bbWeight=8 PerfScore 112.00
-G_M26994_IG05:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
+G_M26994_IG08:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r4]
             mov     r0, r5
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M26994_IG06:        ; bbWeight=1, epilog, nogc, extend
+G_M26994_IG09:        ; bbWeight=1, epilog, nogc, extend
             pop     {r4,r5,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 124.00, instruction count 23, allocated bytes for code 60 (MethodHash=52a6968d) for method System.Data.DataTableCollection:AssignName():System.String:this (Tier0-FullOpts)
+; Total bytes of code 106, prolog size 8, PerfScore 139.12, instruction count 42, allocated bytes for code 106 (MethodHash=52a6968d) for method System.Data.DataTableCollection:AssignName():System.String:this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -70,7 +101,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 60 (0x00003c)
+  Function Length   : 53 (0x00035) Actual length = 106 (0x00006a)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
+48 (+77.42%) : 245312.dasm - System.Configuration.XmlUtil:StrictReadToNextElement(int):this (Tier0-FullOpts)
@@ -8,11 +8,11 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  5, 14   )     ref  ->   r4         this class-hnd single-def <System.Configuration.XmlUtil>
-;  V01 arg1         [V01,T03] (  3,  4   )     int  ->   r5         single-def
+;  V00 this         [V00,T01] (  8, 15.50)     ref  ->   r4         this class-hnd single-def <System.Configuration.XmlUtil>
+;  V01 arg1         [V01,T03] (  4,  4.25)     int  ->   r5         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T00] (  3, 48   )     ref  ->   r0         "argument with side effect"
-;  V04 tmp2         [V04,T02] (  3, 12   )     ref  ->   r0         "argument with side effect"
+;  V03 tmp1         [V03,T00] (  6, 54   )     ref  ->   r0         "argument with side effect"
+;  V04 tmp2         [V04,T02] (  6, 13.50)     ref  ->   r0         "argument with side effect"
 ;
 ; Lcl frame size = 0
 
@@ -26,7 +26,7 @@ G_M3549_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M3549_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M3549_IG04
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M3549_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M3549_IG03:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x0C]
             ; gcrRegs +[r0]
             ldr     r3, [r0]
@@ -35,7 +35,7 @@ G_M3549_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             cmp     r0, 1
-            beq     SHORT G_M3549_IG05
+            beq     SHORT G_M3549_IG08
             mov     r0, r4
             ; gcrRegs +[r0]
             mov     r1, r5
@@ -44,8 +44,9 @@ G_M3549_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ldr     r3, [r3]
             blx     r3     // System.Configuration.XmlUtil:VerifyIgnorableNodeType(int):this
             ; gcrRegs -[r0]
-                      ;; size=30 bbWeight=2 PerfScore 26.00
-G_M3549_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M3549_IG07
+                       ;; size=32 bbWeight=0.25 PerfScore 3.50
+G_M3549_IG04:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x0C]
             ; gcrRegs +[r0]
             ldr     r3, [r0]
@@ -55,13 +56,48 @@ G_M3549_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
             cmp     r0, 0
             bne     SHORT G_M3549_IG03
+                       ;; size=14 bbWeight=1 PerfScore 7.00
+G_M3549_IG05:        ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r4]
+            b       SHORT G_M3549_IG08
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M3549_IG06:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r4]
+            ldr     r0, [r4+0x0C]
+            ; gcrRegs +[r0]
+            ldr     r3, [r0]
+            ldr     r3, [r3+0x2C]
+            ldr     r3, [r3+0x14]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            cmp     r0, 1
+            beq     SHORT G_M3549_IG08
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            mov     r1, r5
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.Configuration.XmlUtil:VerifyIgnorableNodeType(int):this
+            ; gcrRegs -[r0]
+                       ;; size=30 bbWeight=2 PerfScore 26.00
+G_M3549_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r4+0x0C]
+            ; gcrRegs +[r0]
+            ldr     r3, [r0]
+            ldr     r3, [r3+0x4C]
+            ldr     r3, [r3+0x08]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            cmp     r0, 0
+            bne     SHORT G_M3549_IG06
                      ;; size=14 bbWeight=8 PerfScore 56.00
-G_M3549_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3549_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r4]
             pop     {r4,r5,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 62, prolog size 8, PerfScore 88.00, instruction count 26, allocated bytes for code 62 (MethodHash=eb85f222) for method System.Configuration.XmlUtil:StrictReadToNextElement(int):this (Tier0-FullOpts)
+; Total bytes of code 110, prolog size 8, PerfScore 98.56, instruction count 48, allocated bytes for code 110 (MethodHash=eb85f222) for method System.Configuration.XmlUtil:StrictReadToNextElement(int):this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -73,7 +109,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 31 (0x0001f) Actual length = 62 (0x00003e)
+  Function Length   : 55 (0x00037) Actual length = 110 (0x00006e)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
  
librariestestsnotieredcompilation.run.linux.arm.Release.mch
-44 (-10.78%) : 175751.dasm - System.Xml.XmlConvertTests.EncodeDecodeTests:v3():int:this (FullOpts)
@@ -9,12 +9,12 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <System.Xml.XmlConvertTests.EncodeDecodeTests>
-;  V01 loc0         [V01,T06] (  2,  5   )     ref  ->   r4         class-hnd exact single-def <ubyte[]>
-;  V02 loc1         [V02,T02] (  8, 14   )     ref  ->   r5         class-hnd <System.String>
-;  V03 loc2         [V03,T00] (  7, 25   )     int  ->   r6        
+;  V01 loc0         [V01,T10] (  2,  2   )     ref  ->   r0         class-hnd exact single-def <ubyte[]>
+;  V02 loc1         [V02,T01] (  6,  6   )     ref  ->   r5         class-hnd <System.String>
+;* V03 loc2         [V03,T12] (  0,  0   )     int  ->  zero-ref   
 ;* V04 loc3         [V04    ] (  0,  0   )  ushort  ->  zero-ref    ld-addr-op
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T04] (  4,  8   )     ref  ->   r4         class-hnd exact single-def "dup spill" <ubyte[]>
+;  V06 tmp1         [V06,T00] (  4,  8   )     ref  ->   r0         class-hnd exact single-def "dup spill" <ubyte[]>
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V08 tmp3         [V08    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V09 tmp4         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
@@ -23,12 +23,12 @@
 ;* V12 tmp7         [V12    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp8         [V13    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V14 tmp9         [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;  V15 tmp10        [V15,T01] (  2, 16   )  ushort  ->   r7         "Inlining Arg"
+;  V15 tmp10        [V15,T07] (  2,  4   )  ushort  ->   r4         "Inlining Arg"
 ;* V16 tmp11        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.String>
-;  V17 tmp12        [V17,T03] (  3, 12   )     ref  ->   r1         class-hnd exact "Inline stloc first use temp" <System.String>
+;  V17 tmp12        [V17,T08] (  3,  3   )     ref  ->   r1         class-hnd exact "Inline stloc first use temp" <System.String>
 ;* V18 tmp13        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V19 tmp14        [V19,T07] (  3,  4   )     ref  ->   r1         class-hnd single-def "Inlining Arg" <System.String>
-;  V20 tmp15        [V20,T05] (  2,  8   )   byref  ->   r7         "field V07._reference (fldOffset=0x0)" P-INDEP
+;  V19 tmp14        [V19,T02] (  3,  4   )     ref  ->   r1         class-hnd single-def "Inlining Arg" <System.String>
+;  V20 tmp15        [V20,T11] (  2,  2   )   byref  ->   r4         "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V21 tmp16        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x4)" P-INDEP
 ;* V22 tmp17        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp18        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x4)" P-INDEP
@@ -40,20 +40,20 @@
 ;* V29 tmp24        [V29    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x4)" P-INDEP
 ;* V30 tmp25        [V30    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V31 tmp26        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x4)" P-INDEP
-;  V32 tmp27        [V32,T08] (  2,  4   )     ref  ->   r2         single-def "argument with side effect"
-;  V33 tmp28        [V33,T09] (  2,  4   )     ref  ->   r0         single-def "argument with side effect"
-;  V34 tmp29        [V34,T10] (  2,  4   )     ref  ->   r0         single-def "argument with side effect"
-;  V35 tmp30        [V35,T11] (  2,  4   )     ref  ->   r0         single-def "argument with side effect"
+;  V32 tmp27        [V32,T03] (  2,  4   )     ref  ->   r2         single-def "argument with side effect"
+;  V33 tmp28        [V33,T04] (  2,  4   )     ref  ->   r0         single-def "argument with side effect"
+;  V34 tmp29        [V34,T05] (  2,  4   )     ref  ->   r0         single-def "argument with side effect"
+;  V35 tmp30        [V35,T06] (  2,  4   )     ref  ->   r0         single-def "argument with side effect"
 ;  V36 cse0         [V36,T13] (  3,  1.50)     ref  ->   r0         "CSE - moderate"
-;  V37 cse1         [V37,T12] (  3,  2.50)     ref  ->   r0         "CSE - moderate"
+;  V37 cse1         [V37,T09] (  3,  2.50)     ref  ->   r0         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
 G_M51879_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r11,lr}
-            add     r11, sp, 16
+            push    {r4,r5,r11,lr}
+            add     r11, sp, 8
                      ;; size=8 bbWeight=1 PerfScore 2.00
-G_M51879_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M51879_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movs    r1, 2
@@ -61,37 +61,20 @@ G_M51879_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[r0]
-            mov     r4, r0
-            ; gcrRegs +[r4]
-            movs    r0, 113
-            ; gcrRegs -[r0]
-            strb    r0, [r4+0x08]
-            movs    r0, 255
-            strb    r0, [r4+0x09]
-            movw    r5, 0xd1ff
-            movt    r5, 0xd1ff
-            movs    r6, 0
-                       ;; size=40 bbWeight=1 PerfScore 14.00
-G_M51879_IG03:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r5]
-            cmp     r6, 2
-            bhi     G_M51879_IG09
-            movs    r0, 2
-            subs    r0, r0, r6
-            cmp     r0, 2
-            blo     G_M51879_IG09
-            add     r0, r4, 8
-            ; byrRegs +[r0]
-            adds    r7, r0, r6
-            ; byrRegs +[r7]
+            movs    r3, 113
+            strb    r3, [r0+0x08]
+            movs    r3, 255
+            strb    r3, [r0+0x09]
+            add     r4, r0, 8
+            ; byrRegs +[r4]
             movs    r0, 1
-            ; byrRegs -[r0]
+            ; gcrRegs -[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ldrh    r7, [r7]
-            ; byrRegs -[r7]
+            ldrh    r4, [r4]
+            ; byrRegs -[r4]
             movs    r0, 1
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -99,23 +82,18 @@ G_M51879_IG03:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ; gcrRegs +[r0]
             mov     r1, r0
             ; gcrRegs +[r1]
-            strh    r7, [r1+0x08]
-            mov     r0, r5
+            strh    r4, [r1+0x08]
+            movw    r0, 0xd1ff
+            ; gcrRegs -[r0]
+            movt    r0, 0xd1ff
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r1 r5]
+            ; gcrRegs -[r1] +[r0]
             mov     r5, r0
             ; gcrRegs +[r5]
-            adds    r6, r6, 2
-            cmp     r6, 2
-            blt     SHORT G_M51879_IG03
-                       ;; size=76 bbWeight=4 PerfScore 116.00
-G_M51879_IG04:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0 r4]
             mov     r0, r5
-            ; gcrRegs +[r0]
             movs    r1, 1
             movs    r2, 0
             movw    r3, 0xd1ff
@@ -144,9 +122,9 @@ G_M51879_IG04:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             ldr     r0, [r0]
             ; gcrRegs +[r0]
             cmp     r0, 0
-            beq     SHORT G_M51879_IG08
-                       ;; size=70 bbWeight=1 PerfScore 25.00
-G_M51879_IG05:        ; bbWeight=0.50, gcrefRegs=0023 {r0 r1 r5}, byrefRegs=0000 {}, byref
+            beq     SHORT G_M51879_IG04
+                       ;; size=156 bbWeight=1 PerfScore 55.00
+G_M51879_IG03:        ; bbWeight=0.50, gcrefRegs=0023 {r0 r1 r5}, byrefRegs=0000 {}, byref, isz
             mov     r2, r1
             ; gcrRegs +[r2]
             movw    r4, 0xd1ff
@@ -156,8 +134,23 @@ G_M51879_IG05:        ; bbWeight=0.50, gcrefRegs=0023 {r0 r1 r5}, byrefRegs=0000
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0 r2]
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
-G_M51879_IG06:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
+            b       SHORT G_M51879_IG05
+                       ;; size=18 bbWeight=0.50 PerfScore 3.50
+G_M51879_IG04:        ; bbWeight=0.50, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r1]
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+            ldr     r0, [r0]
+            ; gcrRegs +[r0]
+            cmp     r0, 0
+            beq     SHORT G_M51879_IG05
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0-r1]
+                       ;; size=26 bbWeight=0.50 PerfScore 4.50
+G_M51879_IG05:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -216,54 +209,27 @@ G_M51879_IG06:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             ; gcrRegs -[r0]
             movs    r0, 1
                        ;; size=152 bbWeight=1 PerfScore 50.00
-G_M51879_IG07:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r4,r5,r6,r7,r11,pc}
+G_M51879_IG06:        ; bbWeight=1, epilog, nogc, extend
+            pop     {r4,r5,r11,pc}
                      ;; size=4 bbWeight=1 PerfScore 1.00
-G_M51879_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[r1 r5]
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            ldr     r0, [r0]
-            ; gcrRegs +[r0]
-            cmp     r0, 0
-            beq     SHORT G_M51879_IG06
-            movw    r4, 0xd1ff
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0-r1]
-            b       SHORT G_M51879_IG06
-                       ;; size=28 bbWeight=0.50 PerfScore 5.00
-G_M51879_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r5]
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r3, [r3]
-            blx     r3     // System.ThrowHelper:ThrowArgumentOutOfRangeException()
-            bkpt    
-                       ;; size=14 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 408, prolog size 8, PerfScore 216.00, instruction count 142, allocated bytes for code 408 (MethodHash=89473558) for method System.Xml.XmlConvertTests.EncodeDecodeTests:v3():int:this (FullOpts)
+; Total bytes of code 364, prolog size 8, PerfScore 116.00, instruction count 124, allocated bytes for code 364 (MethodHash=89473558) for method System.Xml.XmlConvertTests.EncodeDecodeTests:v3():int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Code Words        : 1
-  Epilog Count      : 1
+  Epilog Count      : 0
   F bit             : 0
-  E bit             : 0
+  E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 204 (0x000cc) Actual length = 408 (0x000198)
-  ---- Epilog scopes ----
-  ---- Scope 0
-  Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-  Condition                  : 14 (0xe) (always)
-  Epilog Start Index         : 0 (0x00)
+  Function Length   : 182 (0x000b6) Actual length = 364 (0x00016c)
+  --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 F0       pop {r4,r5,r6,r7,r11,lr}            ; opsize 32
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     FF          end
     FF          end
 
  
-28 (-9.40%) : 144049.dasm - System.Buffers.Text.Tests.TestData+d__200:MoveNext():ubyte:this (FullOpts)
@@ -8,53 +8,56 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 15, 13.50)     ref  ->  [sp+0x04]  this class-hnd EH-live single-def <System.Buffers.Text.Tests.TestData+<get_SingleTestData>d__200>
+;  V00 this         [V00,T00] ( 14,  7.75)     ref  ->  [sp+0x04]  this class-hnd EH-live single-def <System.Buffers.Text.Tests.TestData+<get_SingleTestData>d__200>
 ;  V01 loc0         [V01,T06] (  4,  2.50)   ubyte  ->   r0        
 ;  V02 loc1         [V02,T07] (  3,  2.50)     int  ->   r0         single-def
 ;* V03 loc2         [V03    ] (  0,  0   )    long  ->  zero-ref   
-;  V04 loc3         [V04,T04] (  3,  4.50)   float  ->  f16        
+;  V04 loc3         [V04,T04] (  3,  1   )   float  ->   f8        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Buffers.Text.Tests.TestData+<get_DoubleTestData>d__198>
-;  V07 tmp2         [V07,T05] (  4,  4   )     ref  ->   r5         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.Text.Tests.TestData+<get_DoubleTestData>d__198>
+;  V07 tmp2         [V07,T05] (  4,  4   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <System.Buffers.Text.Tests.TestData+<get_DoubleTestData>d__198>
 ;* V08 tmp3         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Buffers.Text.Tests.TestData+<get_DoubleTestData>d__198>
 ;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V10 tmp5         [V10,T01] (  2,  8   )  double  ->   f0:f1      "argument with side effect"
-;  V11 PSPSym       [V11,T08] (  1,  1   )     int  ->  [sp+0x14]  do-not-enreg[V] "PSPSym"
-;  V12 rat0         [V12    ] (  1,  4   )    long  ->  [sp+0x08]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
-;  V13 rat1         [V13,T02] (  2,  6   )     int  ->   r0         "field V12.lo (fldOffset=0x0)" P-INDEP
-;  V14 rat2         [V14,T03] (  2,  6   )     int  ->   r1         "field V12.hi (fldOffset=0x4)" P-INDEP
-;  TEMP_01                                     ref  ->  [r11-0x28]
+;  V10 tmp5         [V10,T01] (  2,  1   )  double  ->   f0:f1      "argument with side effect"
+;  V11 PSPSym       [V11,T09] (  1,  1   )     int  ->  [sp+0x14]  do-not-enreg[V] "PSPSym"
+;  V12 cse0         [V12,T08] (  5,  2   )     ref  ->   r0         multi-def "CSE - aggressive"
+;* V13 rat0         [V13    ] (  0,  0   )    long  ->  zero-ref    do-not-enreg[BR] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+;* V14 rat1         [V14,T02] (  0,  0   )     int  ->  zero-ref    "field V13.lo (fldOffset=0x0)" P-DEP
+;* V15 rat2         [V15,T03] (  0,  0   )     int  ->  zero-ref    "field V13.hi (fldOffset=0x4)" P-DEP
+;  V16 rat3         [V16    ] (  1,  0.50)    long  ->  [sp+0x08]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
+;  V17 rat4         [V17,T10] (  2,  0.75)     int  ->   r0         "field V16.lo (fldOffset=0x0)" P-INDEP
+;  V18 rat5         [V18,T11] (  2,  0.75)     int  ->   r1         "field V16.hi (fldOffset=0x4)" P-INDEP
+;  TEMP_01                                     ref  ->  [r11-0x20]
 ;
 ; Lcl frame size = 24
 
 G_M24716_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             push    {r4,r5,r11,lr}
-            vpush   {d8-d8}
             sub     sp, 24
-            add     r11, sp, 40
+            add     r11, sp, 32
             movs    r1, 0
             str     r1, [sp]   // [TEMP_01]
-            add     r1, sp, 48
+            add     r1, sp, 40
             str     r1, [sp+0x14]   // [V11 PSPSym]
             str     r0, [sp+0x04]  // [V00 this]
             ; GC ptr vars +{V00}
-            mov     r4, r0
-            ; gcrRegs +[r4]
-                       ;; size=26 bbWeight=1 PerfScore 10.00
-G_M24716_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     r0, [r4+0x08]
+            mov     r5, r0
+            ; gcrRegs +[r5]
+                       ;; size=22 bbWeight=1 PerfScore 9.00
+G_M24716_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     r0, [r5+0x08]
             cmp     r0, 0
             beq     SHORT G_M24716_IG04
                        ;; size=6 bbWeight=1 PerfScore 3.00
-G_M24716_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M24716_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             cmp     r0, 1
-            beq     SHORT G_M24716_IG09
+            beq     SHORT G_M24716_IG07
             movs    r0, 0
-            b       SHORT G_M24716_IG11
+            b       SHORT G_M24716_IG12
                      ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M24716_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M24716_IG04:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             mov     r0, -1
-            str     r0, [r4+0x08]
+            str     r0, [r5+0x08]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movw    r3, 0xd1ff
@@ -62,26 +65,26 @@ G_M24716_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
             blx     r3     // CORINFO_HELP_NEWFAST
             ; gcrRegs +[r0]
             ; gcr arg pop 0
-            mov     r5, r0
-            ; gcrRegs +[r5]
+            mov     r4, r0
+            ; gcrRegs +[r4]
             mvn     r3, 1
-            str     r3, [r5+0x14]
+            str     r3, [r4+0x14]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            str     r0, [r5+0x18]
-            mov     r0, r5
+            str     r0, [r4+0x18]
+            mov     r0, r4
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r5]
+            ; gcrRegs -[r4]
             ; gcr arg pop 0
             str     r0, [sp]
-            adds    r0, r4, 4
+            adds    r0, r5, 4
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
             ldr     r1, [sp]
@@ -91,16 +94,38 @@ G_M24716_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            b       SHORT G_M24716_IG09
+            b       SHORT G_M24716_IG07
                       ;; size=76 bbWeight=0.50 PerfScore 13.00
-G_M24716_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4]
-            ldr     r4, [sp+0x04]  // [V00 this]
-            ; gcrRegs +[r4]
-            ldr     r0, [r4+0x04]
+G_M24716_IG05:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r0, -1
+            str     r0, [r5+0x08]
+            ldr     r0, [r5+0x04]
+            ; gcrRegs +[r0]
+            cmp     r0, 0
+            beq     SHORT G_M24716_IG11
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            ; gcr arg pop 0
+            b       SHORT G_M24716_IG11
+                       ;; size=26 bbWeight=0.50 PerfScore 5.00
+G_M24716_IG06:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            vstr    s8, [r5+0x0C]
+            movs    r0, 1
+            str     r0, [r5+0x08]
+            b       SHORT G_M24716_IG12
+                       ;; size=10 bbWeight=0.50 PerfScore 2.00
+G_M24716_IG07:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mvn     r0, 2
+            str     r0, [r5+0x08]
+            b       SHORT G_M24716_IG09
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M24716_IG08:        ; bbWeight=0.25, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r5+0x04]
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
@@ -114,81 +139,46 @@ G_M24716_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_LNG2DBL
             ; gcr arg pop 0
-            vcvt.d2f s16, d0
-            vmov.f2i r0, s16
+            vcvt.d2f s8, d0
+            vmov.f2i r0, s8
             mvn     r3, 0x80000000
             ands    r0, r3
             cmp     r0, 0x7f800000
-            ldr     r4, [sp+0x04]  // [V00 this]
-            ; gcrRegs +[r4]
+            bne     SHORT G_M24716_IG06
+                       ;; size=54 bbWeight=0.25 PerfScore 4.25
+G_M24716_IG09:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r5+0x04]
+            ; gcrRegs +[r0]
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            ldr     r3, [r4]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            ; gcr arg pop 0
+            cmp     r0, 0
             bne     SHORT G_M24716_IG08
-                     ;; size=58 bbWeight=2 PerfScore 38.00
-G_M24716_IG06:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r4+0x04]
-            ; gcrRegs +[r0]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            cmp     r0, 0
-            bne     SHORT G_M24716_IG05
-                       ;; size=18 bbWeight=4 PerfScore 28.00
-G_M24716_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            mov     r0, -1
-            ldr     r4, [sp+0x04]
-            ; gcrRegs +[r4]
-            str     r0, [r4+0x08]
-            ldr     r0, [r4+0x04]
-            ; gcrRegs +[r0]
-            cmp     r0, 0
-            beq     SHORT G_M24716_IG10
-            ldr     r0, [r4+0x04]
-            movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
-            movt    r4, 0xd1ff
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ; gcr arg pop 0
-            ldr     r4, [sp+0x04]  // [V00 this]
-            ; gcrRegs +[r4]
-            b       SHORT G_M24716_IG10
-                       ;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M24716_IG08:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            vstr    s16, [r4+0x0C]
-            movs    r0, 1
-            str     r0, [r4+0x08]
-            b       SHORT G_M24716_IG11
-                       ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M24716_IG09:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            mvn     r0, 2
-            str     r0, [r4+0x08]
-            b       SHORT G_M24716_IG06
-                       ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M24716_IG10:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+                     ;; size=18 bbWeight=0.50 PerfScore 3.50
+G_M24716_IG10:        ; bbWeight=0.06, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M24716_IG05
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M24716_IG11:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             movs    r0, 0
-            str     r0, [r4+0x04]
+            str     r0, [r5+0x04]
                         ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M24716_IG11:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
-            ; gcrRegs -[r4]
+G_M24716_IG12:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
+            ; gcrRegs -[r5]
             ; GC ptr vars -{V00}
             add     sp, 24
-            vpop    {d8-d8}
             pop     {r4,r5,r11,pc}
-                        ;; size=10 bbWeight=1 PerfScore 3.00
...
  
-36 (-9.00%) : 284921.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5155_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -8,16 +8,16 @@
 ; 2 inlinees with PGO data; 4 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T03] ( 15, 27   )     ref  ->   r4         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
-;  V01 arg1         [V01,T11] (  4,  4.00)  struct ( 8) [sp+0x30]  do-not-enreg[S] single-def <System.ReadOnlySpan`1[ushort]>
+;  V00 arg0         [V00,T01] ( 16, 10.00)     ref  ->   r4         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
+;  V01 arg1         [V01,T07] (  4,  4.00)  struct ( 8) [sp+0x28]  do-not-enreg[S] single-def <System.ReadOnlySpan`1[ushort]>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
-;  V03 loc1         [V03,T02] ( 10, 32   )     int  ->   r8         single-def
-;  V04 loc2         [V04,T12] (  8,  5.00)     int  ->   r7        
+;  V03 loc1         [V03,T04] (  9,  6.50)     int  ->   r8         single-def
+;  V04 loc2         [V04,T08] (  8,  5.00)     int  ->   r7        
 ;* V05 loc3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    <System.ReadOnlySpan`1[ushort]>
-;  V06 loc4         [V06,T00] ( 15, 75.50)     int  ->   r9        
+;  V06 loc4         [V06,T00] (  6,  3.50)     int  ->   r9        
 ;* V07 loc5         [V07    ] (  0,  0   )     int  ->  zero-ref   
-;  V08 loc6         [V08,T07] (  8, 23   )     int  ->  r10        
-;  V09 loc7         [V09,T08] (  3, 17   )     int  ->  [sp+0x04] 
+;  V08 loc6         [V08,T05] (  5,  3.00)     int  ->  r10        
+;* V09 loc7         [V09,T06] (  0,  0   )     int  ->  zero-ref   
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V11 tmp1         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V12 tmp2         [V12    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
@@ -29,47 +29,48 @@
 ;* V18 tmp8         [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp9         [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp10        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V21 tmp11        [V21,T14] (  4,  4   )     int  ->   r6         "Inlining Arg"
-;  V22 tmp12        [V22,T13] (  5,  5   )     int  ->   r5         "Inlining Arg"
+;  V21 tmp11        [V21,T11] (  4,  4   )     int  ->   r6         "Inlining Arg"
+;  V22 tmp12        [V22,T09] (  5,  5   )     int  ->   r9         "Inlining Arg"
 ;* V23 tmp13        [V23    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V24 tmp14        [V24,T17] (  4,  2   )     int  ->   r0         single-def "Inline stloc first use temp"
-;  V25 tmp15        [V25,T15] (  3,  3   )     ref  ->   r3         class-hnd single-def "impAppendStmt" <<unknown class>>
-;  V26 tmp16        [V26,T16] (  2,  3   )   byref  ->   r5         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp17        [V27,T10] (  6,  6.00)     int  ->   r6         single-def "field V02._length (fldOffset=0x4)" P-INDEP
+;  V24 tmp14        [V24,T18] (  4,  2   )     int  ->   r0         single-def "Inline stloc first use temp"
+;  V25 tmp15        [V25,T12] (  3,  3   )     ref  ->   r3         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V26 tmp16        [V26,T20] (  2,  1.25)   byref  ->   r5         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V27 tmp17        [V27,T10] (  6,  4.25)     int  ->   r6         single-def "field V02._length (fldOffset=0x4)" P-INDEP
 ;* V28 tmp18        [V28    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V29 tmp19        [V29    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x4)" P-INDEP
 ;* V30 tmp20        [V30    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V31 tmp21        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x4)" P-INDEP
 ;* V32 tmp22        [V32    ] (  0,  0   )   byref  ->  zero-ref    "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V33 tmp23        [V33    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x4)" P-INDEP
-;  V34 tmp24        [V34,T01] (  3, 48   )     ref  ->   r0         "arr expr"
-;* V35 tmp25        [V35,T09] (  0,  0   )     ref  ->  zero-ref    "arr expr"
-;* V36 tmp26        [V36,T19] (  0,  0   )     ref  ->  zero-ref    single-def "arr expr"
-;  V37 tmp27        [V37,T18] (  2,  2.00)     ref  ->   r0         single-def "arr expr"
-;  V38 cse0         [V38,T04] (  2, 16   )     ref  ->   r0         "CSE - aggressive"
-;  V39 cse1         [V39,T06] (  4, 24.50)     int  ->   r1         "CSE - aggressive"
-;  V40 cse2         [V40,T05] (  4, 24.50)   byref  ->   r0         "CSE - aggressive"
+;  V34 tmp24        [V34,T02] (  3,  6.00)     ref  ->   r0         "arr expr"
+;* V35 tmp25        [V35,T03] (  0,  0   )     ref  ->  zero-ref    "arr expr"
+;  V36 tmp26        [V36,T13] (  3,  3.00)     ref  ->   r0         single-def "arr expr"
+;  V37 tmp27        [V37,T19] (  2,  2.00)     ref  ->   r3         single-def "arr expr"
+;  V38 cse0         [V38,T21] (  2,  0.50)     int  ->   r0         "CSE - moderate"
+;  V39 cse1         [V39,T14] (  2,  2.00)     ref  ->   r0         "CSE - moderate"
+;  V40 cse2         [V40,T17] (  2,  0.50)   byref  ->   r0         "CSE - moderate"
+;  V41 cse3         [V41,T22] (  2,  0.50)     int  ->   r0         "CSE - moderate"
+;  V42 cse4         [V42,T16] (  3,  3.00)     int  ->   r2         "CSE - moderate"
+;  V43 cse5         [V43,T15] (  3,  3.00)   byref  ->   r0         "CSE - moderate"
 ;
-; Lcl frame size = 12
+; Lcl frame size = 4
 
 G_M19571_IG01:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r1,r2}
-            push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 12
-            add     r11, sp, 40
+            push    {r3,r4,r5,r6,r7,r8,r9,r10,r11,lr}
+            add     r11, sp, 32
             mov     r4, r0
             ; gcrRegs +[r4]
-                      ;; size=14 bbWeight=1.00 PerfScore 5.00
+                       ;; size=12 bbWeight=1.00 PerfScore 4.00
 G_M19571_IG02:        ; bbWeight=1.00, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r5, [sp+0x30]
+            ldr     r5, [sp+0x28]
             ; byrRegs +[r5]
-            ldr     r6, [sp+0x34]
+            ldr     r6, [sp+0x2C]
             ldr     r7, [r4+0x34]
             mov     r8, r7
-            mov     r9, 0
             cmp     r8, r6
-            bhi     G_M19571_IG23
-                       ;; size=18 bbWeight=1.00 PerfScore 7.00
+            bhi     G_M19571_IG21
+                       ;; size=14 bbWeight=1.00 PerfScore 6.00
 G_M19571_IG03:        ; bbWeight=1.00, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, byref, isz
             subs    r0, r6, r8
             cmp     r0, 0
@@ -86,21 +87,16 @@ G_M19571_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5},
             blx     r3     // <unknown method>
             ; gcr arg pop 0
                        ;; size=28 bbWeight=0.50 PerfScore 4.00
-G_M19571_IG05:        ; bbWeight=1.00, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, byref
-            mov     r10, 0
-            movs    r3, 0
-            str     r3, [sp+0x04]  // [V09 loc7]
-                       ;; size=8 bbWeight=1.00 PerfScore 3.00
-G_M19571_IG06:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, byref, isz
+G_M19571_IG05:        ; bbWeight=1.00, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, byref, isz
             ldr     r1, [r4+0x18]
             ; gcrRegs +[r1]
             ldr     r1, [r1+0x04]
             ; gcrRegs -[r1]
             subs    r1, r1, 1
-            cmp     r1, r9
-            bgt     SHORT G_M19571_IG08
-                       ;; size=10 bbWeight=8 PerfScore 40.00
-G_M19571_IG07:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, byref
+            cmp     r1, 0
+            bgt     SHORT G_M19571_IG07
+                       ;; size=10 bbWeight=1.00 PerfScore 5.00
+G_M19571_IG06:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, byref
             ldr     r1, [r4+0x18]
             ; gcrRegs +[r1]
             ldr     r1, [r1+0x04]
@@ -108,76 +104,72 @@ G_M19571_IG07:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, by
             lsls    r1, r1, 1
             add     r0, r4, 24
             ; byrRegs +[r0]
-            movw    r2, 0xd1ff
-            movt    r2, 0xd1ff
-            ldr     r2, [r2]
-            blx     r2     // System.Array:Resize[int](byref,int)
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.Array:Resize[int](byref,int)
             ; byrRegs -[r0]
             ; gcr arg pop 0
-                      ;; size=22 bbWeight=2 PerfScore 16.00
-G_M19571_IG08:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, byref, isz
+                     ;; size=22 bbWeight=0.25 PerfScore 2.00
+G_M19571_IG07:        ; bbWeight=1.00, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, byref, isz
+            ldr     r0, [r4+0x18]
+            ; gcrRegs +[r0]
+            movs    r3, 0
+            ldr     r2, [r0+0x04]
+            cmp     r3, r2
+            bhs     SHORT G_M19571_IG20
+            adds    r0, 8
+            ; gcrRegs -[r0]
+            ; byrRegs +[r0]
+                       ;; size=12 bbWeight=1.00 PerfScore 6.00
+G_M19571_IG08:        ; bbWeight=1.00, gcrefRegs=0010 {r4}, byrefRegs=0021 {r0 r5}, byref, isz
+            str     r3, [r0]
+            movs    r3, 1
+            cmp     r3, r2
+            bhs     SHORT G_M19571_IG20
+            str     r8, [r0+0x04]
+            mov     r9, 2
+            mov     r10, r3
+            cmp     r8, 0
+            ble     SHORT G_M19571_IG14
+                       ;; size=24 bbWeight=1.00 PerfScore 9.00
+G_M19571_IG09:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, byref, isz
+            ; byrRegs -[r0]
+            add     r0, r8, -1
+            cmp     r0, r6
+            bhs     SHORT G_M19571_IG20
+            lsl     r0, r8, 1
+            subs    r0, r0, 2
+            ldrh    r0, [r5+r0]
+            cmp     r0, 10
+            beq     SHORT G_M19571_IG14
+                       ;; size=20 bbWeight=0.25 PerfScore 2.00
+G_M19571_IG10:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs -[r5]
+            add     r10, r10, -1
+            cmp     r10, 0
+            blt     SHORT G_M19571_IG18
+                       ;; size=10 bbWeight=0.50 PerfScore 1.50
+G_M19571_IG11:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            add     r9, r9, -1
             ldr     r0, [r4+0x18]
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x04]
             cmp     r9, r1
-            bhs     G_M19571_IG22
+            bhs     SHORT G_M19571_IG20
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            lsl     r2, r9, 2
-            ldr     r3, [sp+0x04]  // [V09 loc7]
-            str     r3, [r0+r2]
-            add     r9, r9, 1
-            cmp     r9, r1
-            bhs     SHORT G_M19571_IG22
-            lsl     r3, r9, 2
-            str     r8, [r0+r3]
-            add     r9, r9, 1
-            mov     r3, r8
-            add     r10, r10, 1
-            cmp     r8, 0
-            ble     SHORT G_M19571_IG10
-                       ;; size=52 bbWeight=8 PerfScore 144.00
-G_M19571_IG09:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0021 {r0 r5}, byref, isz
-            add     r2, r8, -1
-            cmp     r2, r6
-            bhs     SHORT G_M19571_IG22
-            lsl     r2, r8, 1
-            subs    r2, r2, 2
-            ldrh    r2, [r5+r2]
-            cmp     r2, 10
-            bne     SHORT G_M19571_IG12
-                       ;; size=20 bbWeight=2 PerfScore 16.00
-G_M19571_IG10:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, byref, isz
-            ; byrRegs -[r0]
-            cmp     r10, 0
-            str     r3, [sp+0x04]  // [V09 loc7]
-            ble     SHORT G_M19571_IG06
-                       ;; size=8 bbWeight=4 PerfScore 12.00
-G_M19571_IG11:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r5]
-            b       SHORT G_M19571_IG16
-                       ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M19571_IG12:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0001 {r0}, byref, isz
-            ; byrRegs +[r0]
-            add     r10, r10, -1
-            cmp     r10, 0
-            blt     SHORT G_M19571_IG20
-                       ;; size=10 bbWeight=0.50 PerfScore 1.50
-G_M19571_IG13:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0001 {r0}, byref, isz
-            add     r9, r9, -1
-            cmp     r9, r1
-            bhs     SHORT G_M19571_IG22
             lsl     r1, r9, 2
             ldr     r7, [r0+r1]
             cmp     r7, r6
-            bhi     SHORT G_M19571_IG23
-                       ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M19571_IG14:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            bhi     SHORT G_M19571_IG21
+                       ;; size=24 bbWeight=0.50 PerfScore 5.00
+G_M19571_IG12:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r0]
             subs    r0, r6, r7
             cmp     r0, 0
-            bge     SHORT G_M19571_IG15
+            bge     SHORT G_M19571_IG13
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
...
  
+38 (+76.00%) : 213959.dasm - System.Runtime.Tests.ControlledExecutionTests:RunInfiniteLoop():this (FullOpts)
@@ -7,38 +7,55 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4, 18   )     ref  ->   r4         this class-hnd single-def <System.Runtime.Tests.ControlledExecutionTests>
-;  V01 loc0         [V01,T00] (  3, 24   )     int  ->   r0        
+;  V00 this         [V00,T01] (  6, 20   )     ref  ->   r4         this class-hnd single-def <System.Runtime.Tests.ControlledExecutionTests>
+;  V01 loc0         [V01,T00] (  6, 27   )     int  ->   r5        
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
-G_M38489_IG01:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r11,lr}
+G_M38489_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+            push    {r4,r5,r11,lr}
             add     r11, sp, 8
             mov     r4, r0
             ; gcrRegs +[r4]
-                      ;; size=10 bbWeight=8 PerfScore 24.00
-G_M38489_IG02:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+                       ;; size=10 bbWeight=1 PerfScore 3.00
+G_M38489_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x08]
             dmb     15
-            adds    r0, r0, 1
-            str     r0, [r4+0x08]
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ands    r0, r3
+            adds    r5, r0, 1
+            str     r5, [r4+0x08]
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+            ands    r0, r5
             cmp     r0, 0
-            bne     SHORT G_M38489_IG02
+            bne     SHORT G_M38489_IG03
             movs    r0, 0
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
-            b       SHORT G_M38489_IG02
+                     ;; size=38 bbWeight=1 PerfScore 14.00
+G_M38489_IG03:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r4+0x08]
+            dmb     15
+            adds    r5, r0, 1
+            str     r5, [r4+0x08]
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+            ands    r0, r5
+            cmp     r0, 0
+            bne     SHORT G_M38489_IG03
+            movs    r0, 0
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // <unknown method>
+            ; gcr arg pop 0
+            b       SHORT G_M38489_IG03
                         ;; size=40 bbWeight=8 PerfScore 120.00
 
-; Total bytes of code 50, prolog size 10, PerfScore 144.00, instruction count 18, allocated bytes for code 50 (MethodHash=e35169a6) for method System.Runtime.Tests.ControlledExecutionTests:RunInfiniteLoop():this (FullOpts)
+; Total bytes of code 88, prolog size 10, PerfScore 137.00, instruction count 32, allocated bytes for code 88 (MethodHash=e35169a6) for method System.Runtime.Tests.ControlledExecutionTests:RunInfiniteLoop():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -50,11 +67,11 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 25 (0x00019) Actual length = 50 (0x000032)
+  Function Length   : 44 (0x0002c) Actual length = 88 (0x000058)
   ---- Epilog scopes ----
   No epilogs
   ---- Unwind codes ----
-    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     FF          end
     FF          end
 
  
+46 (+76.67%) : 90640.dasm - System.Data.DataTableCollection:AssignName():System.String:this (FullOpts)
@@ -8,10 +8,10 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  6, 22   )     ref  ->   r4         this class-hnd single-def <System.Data.DataTableCollection>
+;  V00 this         [V00,T01] ( 10, 24.50)     ref  ->   r4         this class-hnd single-def <System.Data.DataTableCollection>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T00] (  3, 34   )     ref  ->   r5         class-hnd exact "dup spill" <System.String>
+;  V03 tmp1         [V03,T00] (  5, 38   )     ref  ->   r5         class-hnd exact "dup spill" <System.String>
 ;
 ; Lcl frame size = 0
 
@@ -24,12 +24,13 @@ G_M26994_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M26994_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M26994_IG04
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M26994_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M26994_IG03:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x18]
             adds    r0, r0, 1
             str     r0, [r4+0x18]
-                        ;; size=6 bbWeight=2 PerfScore 6.00
-G_M26994_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M26994_IG07
+                       ;; size=8 bbWeight=0.25 PerfScore 1.00
+G_M26994_IG04:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x18]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -48,17 +49,47 @@ G_M26994_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ; gcrRegs -[r0-r1]
             cmp     r0, 0
             bge     SHORT G_M26994_IG03
+                      ;; size=36 bbWeight=1 PerfScore 14.00
+G_M26994_IG05:        ; bbWeight=0.12, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r4]
+            b       SHORT G_M26994_IG08
+                       ;; size=2 bbWeight=0.12 PerfScore 0.12
+G_M26994_IG06:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r5] +[r4]
+            ldr     r0, [r4+0x18]
+            adds    r0, r0, 1
+            str     r0, [r4+0x18]
+                       ;; size=6 bbWeight=2 PerfScore 6.00
+G_M26994_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r4+0x18]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.Data.DataTableCollection:MakeName(int):System.String
+            ; gcrRegs +[r0]
+            mov     r5, r0
+            ; gcrRegs +[r5]
+            mov     r0, r4
+            mov     r1, r5
+            ; gcrRegs +[r1]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0-r1]
+            cmp     r0, 0
+            bge     SHORT G_M26994_IG06
                         ;; size=36 bbWeight=8 PerfScore 112.00
-G_M26994_IG05:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
+G_M26994_IG08:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r4]
             mov     r0, r5
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M26994_IG06:        ; bbWeight=1, epilog, nogc, extend
+G_M26994_IG09:        ; bbWeight=1, epilog, nogc, extend
             pop     {r4,r5,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 124.00, instruction count 23, allocated bytes for code 60 (MethodHash=52a6968d) for method System.Data.DataTableCollection:AssignName():System.String:this (FullOpts)
+; Total bytes of code 106, prolog size 8, PerfScore 139.12, instruction count 42, allocated bytes for code 106 (MethodHash=52a6968d) for method System.Data.DataTableCollection:AssignName():System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -70,7 +101,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 60 (0x00003c)
+  Function Length   : 53 (0x00035) Actual length = 106 (0x00006a)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
+48 (+77.42%) : 88314.dasm - System.Configuration.XmlUtil:StrictReadToNextElement(int):this (FullOpts)
@@ -8,11 +8,11 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  5, 14   )     ref  ->   r4         this class-hnd single-def <System.Configuration.XmlUtil>
-;  V01 arg1         [V01,T03] (  3,  4   )     int  ->   r5         single-def
+;  V00 this         [V00,T01] (  8, 15.50)     ref  ->   r4         this class-hnd single-def <System.Configuration.XmlUtil>
+;  V01 arg1         [V01,T03] (  4,  4.25)     int  ->   r5         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T00] (  3, 48   )     ref  ->   r0         "argument with side effect"
-;  V04 tmp2         [V04,T02] (  3, 12   )     ref  ->   r0         "argument with side effect"
+;  V03 tmp1         [V03,T00] (  6, 54   )     ref  ->   r0         "argument with side effect"
+;  V04 tmp2         [V04,T02] (  6, 13.50)     ref  ->   r0         "argument with side effect"
 ;
 ; Lcl frame size = 0
 
@@ -26,7 +26,7 @@ G_M3549_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M3549_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M3549_IG04
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M3549_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M3549_IG03:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x0C]
             ; gcrRegs +[r0]
             ldr     r3, [r0]
@@ -35,7 +35,7 @@ G_M3549_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             cmp     r0, 1
-            beq     SHORT G_M3549_IG05
+            beq     SHORT G_M3549_IG08
             mov     r0, r4
             ; gcrRegs +[r0]
             mov     r1, r5
@@ -44,8 +44,9 @@ G_M3549_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ldr     r3, [r3]
             blx     r3     // System.Configuration.XmlUtil:VerifyIgnorableNodeType(int):this
             ; gcrRegs -[r0]
-                      ;; size=30 bbWeight=2 PerfScore 26.00
-G_M3549_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M3549_IG07
+                       ;; size=32 bbWeight=0.25 PerfScore 3.50
+G_M3549_IG04:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x0C]
             ; gcrRegs +[r0]
             ldr     r3, [r0]
@@ -55,13 +56,48 @@ G_M3549_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
             cmp     r0, 0
             bne     SHORT G_M3549_IG03
+                       ;; size=14 bbWeight=1 PerfScore 7.00
+G_M3549_IG05:        ; bbWeight=0.06, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r4]
+            b       SHORT G_M3549_IG08
+                       ;; size=2 bbWeight=0.06 PerfScore 0.06
+G_M3549_IG06:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r4]
+            ldr     r0, [r4+0x0C]
+            ; gcrRegs +[r0]
+            ldr     r3, [r0]
+            ldr     r3, [r3+0x2C]
+            ldr     r3, [r3+0x14]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            cmp     r0, 1
+            beq     SHORT G_M3549_IG08
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            mov     r1, r5
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.Configuration.XmlUtil:VerifyIgnorableNodeType(int):this
+            ; gcrRegs -[r0]
+                       ;; size=30 bbWeight=2 PerfScore 26.00
+G_M3549_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r4+0x0C]
+            ; gcrRegs +[r0]
+            ldr     r3, [r0]
+            ldr     r3, [r3+0x4C]
+            ldr     r3, [r3+0x08]
+            blx     r3     // <unknown method>
+            ; gcrRegs -[r0]
+            cmp     r0, 0
+            bne     SHORT G_M3549_IG06
                      ;; size=14 bbWeight=8 PerfScore 56.00
-G_M3549_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M3549_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r4]
             pop     {r4,r5,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 62, prolog size 8, PerfScore 88.00, instruction count 26, allocated bytes for code 62 (MethodHash=eb85f222) for method System.Configuration.XmlUtil:StrictReadToNextElement(int):this (FullOpts)
+; Total bytes of code 110, prolog size 8, PerfScore 98.56, instruction count 48, allocated bytes for code 110 (MethodHash=eb85f222) for method System.Configuration.XmlUtil:StrictReadToNextElement(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -73,7 +109,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 31 (0x0001f) Actual length = 62 (0x00003e)
+  Function Length   : 55 (0x00037) Actual length = 110 (0x00006e)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
  
realworld.run.linux.arm.checked.mch
-40 (-35.09%) : 1832.dasm - BepuPhysics.CollisionDetection.ContactConstraintAccessor`6[BepuPhysics.Constraints.Contact.Contact1,BepuPhysics.CollisionDetection.TwoBodyHandles,BepuPhysics.Constraints.Contact.Contact1PrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.CollisionDetection.ContactImpulses1,BepuPhysics.CollisionDetection.ConstraintCache1]:CopyContactData(byref,byref,byref) (FullOpts)
@@ -8,17 +8,17 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T03] (  4,  4   )   byref  ->   r4         single-def
-;  V01 arg1         [V01,T04] (  4,  4   )   byref  ->   r5         single-def
-;  V02 arg2         [V02,T05] (  4,  4   )   byref  ->   r6         single-def
+;  V00 arg0         [V00,T00] (  4,  4   )   byref  ->   r4         single-def
+;  V01 arg1         [V01,T01] (  4,  4   )   byref  ->   r5         single-def
+;  V02 arg2         [V02,T02] (  4,  4   )   byref  ->   r6         single-def
 ;* V03 loc0         [V03,T09] (  0,  0   )     int  ->  zero-ref   
-;  V04 loc1         [V04,T06] (  2,  5   )   byref  ->   r6         single-def
-;  V05 loc2         [V05,T07] (  2,  5   )   byref  ->   r3         single-def
-;  V06 loc3         [V06,T00] (  7, 25   )     int  ->   r2        
-;  V07 loc4         [V07,T01] (  4, 16   )   byref  ->   r0        
-;  V08 loc5         [V08,T02] (  3, 12   )   byref  ->   lr        
+;  V04 loc1         [V04,T05] (  2,  2   )   byref  ->   r6         single-def
+;  V05 loc2         [V05,T06] (  2,  2   )   byref  ->   r3         single-def
+;* V06 loc3         [V06,T08] (  0,  0   )     int  ->  zero-ref   
+;  V07 loc4         [V07,T03] (  4,  4   )   byref  ->   r2        
+;  V08 loc5         [V08,T04] (  3,  3   )   byref  ->   r6        
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 cse0         [V10,T08] (  2,  5   )   byref  ->   r1         hoist "CSE - aggressive"
+;  V10 cse0         [V10,T07] (  2,  2   )   byref  ->   r2         "CSE - aggressive"
 ;
 ; Lcl frame size = 4
 
@@ -47,41 +47,26 @@ G_M31235_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0070 {r4 r5 r6}
             ; gcr arg pop 0
             adds    r3, r5, 4
             ; byrRegs +[r3]
-            movs    r2, 0
-            ldrsb   r1, [r4]
-            add     r1, r4, 28
-            ; byrRegs +[r1]
-                       ;; size=34 bbWeight=1 PerfScore 13.00
-G_M31235_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=004A {r1 r3 r6}, byref, isz
-            ; byrRegs -[r4-r5]
-            movs    r0, 20
-            mul     r0, r2, r0
-            adds    r0, r1, r0
-            ; byrRegs +[r0]
-            lsl     lr, r2, 4
-            add     lr, r6
-            ; byrRegs +[lr]
-            ldr     r12, [r0+0x10]
-            lsls    r4, r2, 2
-            str     r12, [r3+r4]
-            ldr     r12, [r0]
-            str     r12, [lr]
-            ldr     r12, [r0+0x04]
-            str     r12, [lr+0x04]
-            ldr     r12, [r0+0x08]
-            str     r12, [lr+0x08]
-            vldr    s8, [r0+0x0C]
-            vstr    s8, [lr+0x0C]
-            adds    r2, r2, 1
-            cmp     r2, 0
-            ble     SHORT G_M31235_IG03
-                       ;; size=62 bbWeight=4 PerfScore 76.00
-G_M31235_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; byrRegs -[r0-r1 r3 r6 lr]
+            ldrsb   r2, [r4]
+            add     r2, r4, 28
+            ; byrRegs +[r2]
+            ldr     r1, [r2+0x10]
+            str     r1, [r3]
+            ldr     r3, [r2]
+            ; byrRegs -[r3]
+            str     r3, [r6]
+            ldr     r3, [r2+0x04]
+            str     r3, [r6+0x04]
+            ldr     r3, [r2+0x08]
+            str     r3, [r6+0x08]
+            vldr    s8, [r2+0x0C]
+            vstr    s8, [r6+0x0C]
+                       ;; size=56 bbWeight=1 PerfScore 22.00
+G_M31235_IG03:        ; bbWeight=1, epilog, nogc, extend
             pop     {r3,r4,r5,r6,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 114, prolog size 14, PerfScore 95.00, instruction count 38, allocated bytes for code 114 (MethodHash=076885fc) for method BepuPhysics.CollisionDetection.ContactConstraintAccessor`6[BepuPhysics.Constraints.Contact.Contact1,BepuPhysics.CollisionDetection.TwoBodyHandles,BepuPhysics.Constraints.Contact.Contact1PrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.CollisionDetection.ContactImpulses1,BepuPhysics.CollisionDetection.ConstraintCache1]:CopyContactData(byref,byref,byref) (FullOpts)
+; Total bytes of code 74, prolog size 14, PerfScore 28.00, instruction count 28, allocated bytes for code 74 (MethodHash=076885fc) for method BepuPhysics.CollisionDetection.ContactConstraintAccessor`6[BepuPhysics.Constraints.Contact.Contact1,BepuPhysics.CollisionDetection.TwoBodyHandles,BepuPhysics.Constraints.Contact.Contact1PrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.CollisionDetection.ContactImpulses1,BepuPhysics.CollisionDetection.ConstraintCache1]:CopyContactData(byref,byref,byref) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -93,7 +78,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 57 (0x00039) Actual length = 114 (0x000072)
+  Function Length   : 37 (0x00025) Actual length = 74 (0x00004a)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
-10 (-6.41%) : 14709.dasm - FSharp.Compiler.TypedTreePickle+p_tcaug@1979-16:Invoke(Microsoft.FSharp.Core.Unit,FSharp.Compiler.TypedTreePickle+WriterState):Microsoft.FSharp.Core.Unit:this (FullOpts)
@@ -10,74 +10,65 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <FSharp.Compiler.TypedTreePickle+p_tcaug@1979-16>
 ;* V01 arg1         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Microsoft.FSharp.Core.Unit>
-;  V02 arg2         [V02,T05] (  3, 10   )     ref  ->   r4         class-hnd single-def <FSharp.Compiler.TypedTreePickle+WriterState>
+;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->   r2         class-hnd single-def <FSharp.Compiler.TypedTreePickle+WriterState>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T03] (  4, 25   )     int  ->   r5         "Inline stloc first use temp"
+;* V04 tmp1         [V04,T05] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V05 tmp2         [V05,T06] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V06 tmp3         [V06,T00] (  7,112   )     ref  ->   r6         class-hnd exact "Inlining Arg" <FSharp.Compiler.IO.ByteBuffer>
-;  V07 tmp4         [V07,T04] (  3, 24   )     int  ->   r7         "Inline stloc first use temp"
+;  V06 tmp3         [V06,T00] (  7, 14   )     ref  ->   r4         class-hnd exact "Inlining Arg" <FSharp.Compiler.IO.ByteBuffer>
+;  V07 tmp4         [V07,T04] (  3,  3   )     int  ->   r5         "Inline stloc first use temp"
 ;  V08 tmp5         [V08,T07] (  3,  0   )     ref  ->   r4         class-hnd exact "NewObj constructor temp" <<unknown class>>
-;  V09 tmp6         [V09,T01] (  3, 48   )     ref  ->   r0         "arr expr"
-;  V10 tmp7         [V10,T02] (  3, 48   )     int  ->   r3         "index expr"
+;  V09 tmp6         [V09,T01] (  3,  6   )     ref  ->   r0         "arr expr"
+;  V10 tmp7         [V10,T02] (  3,  6   )     int  ->   r3         "index expr"
 ;  V11 tmp8         [V11,T08] (  2,  0   )     ref  ->   r1         "argument with side effect"
 ;
 ; Lcl frame size = 0
 
 G_M15044_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r11,lr}
-            add     r11, sp, 16
-            mov     r4, r2
+            push    {r4,r5,r11,lr}
+            add     r11, sp, 8
+                       ;; size=8 bbWeight=1 PerfScore 2.00
+G_M15044_IG02:        ; bbWeight=1, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r2]
+            ldr     r4, [r2+0x04]
             ; gcrRegs +[r4]
-                     ;; size=10 bbWeight=1 PerfScore 3.00
-G_M15044_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
-            movs    r5, 0
-                       ;; size=2 bbWeight=1 PerfScore 1.00
-G_M15044_IG03:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r6, [r4+0x04]
-            ; gcrRegs +[r6]
-            ldrb    r0, [r6+0x0D]
+            ldrb    r0, [r4+0x0D]
             cmp     r0, 0
-            bne     SHORT G_M15044_IG07
-            ldr     r0, [r6+0x08]
-            adds    r7, r0, 1
-            mov     r0, r6
+            bne     SHORT G_M15044_IG05
+            ldr     r0, [r4+0x08]
+            adds    r5, r0, 1
+            mov     r0, r4
             ; gcrRegs +[r0]
-            mov     r1, r7
+            mov     r1, r5
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
-            ldr     r0, [r6+0x04]
+            ; gcrRegs -[r0 r2]
+            ldr     r0, [r4+0x04]
             ; gcrRegs +[r0]
-            ldr     r3, [r6+0x08]
+            ldr     r3, [r4+0x08]
             ldr     r2, [r0+0x04]
             cmp     r3, r2
-            bhs     SHORT G_M15044_IG06
+            bhs     SHORT G_M15044_IG04
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
             movs    r2, 0
             strb    r2, [r0+r3]
-            str     r7, [r6+0x08]
-            adds    r5, r5, 1
-            cmp     r5, 1
-            bne     SHORT G_M15044_IG03
-                       ;; size=52 bbWeight=8 PerfScore 192.00
-G_M15044_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r4 r6]
-            ; byrRegs -[r0]
+            str     r5, [r4+0x08]
             movs    r0, 0
-                      ;; size=2 bbWeight=1 PerfScore 1.00
-G_M15044_IG05:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r4,r5,r6,r7,r11,pc}
+            ; byrRegs -[r0]
+                       ;; size=48 bbWeight=1 PerfScore 22.00
+G_M15044_IG03:        ; bbWeight=1, epilog, nogc, extend
+            pop     {r4,r5,r11,pc}
                      ;; size=4 bbWeight=1 PerfScore 1.00
-G_M15044_IG06:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M15044_IG04:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[r4]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M15044_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M15044_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movw    r3, 0xd1ff
@@ -112,7 +103,7 @@ G_M15044_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=76 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 156, prolog size 8, PerfScore 198.00, instruction count 57, allocated bytes for code 156 (MethodHash=4234c53b) for method FSharp.Compiler.TypedTreePickle+p_tcaug@1979-16:Invoke(Microsoft.FSharp.Core.Unit,FSharp.Compiler.TypedTreePickle+WriterState):Microsoft.FSharp.Core.Unit:this (FullOpts)
+; Total bytes of code 146, prolog size 8, PerfScore 25.00, instruction count 52, allocated bytes for code 146 (MethodHash=4234c53b) for method FSharp.Compiler.TypedTreePickle+p_tcaug@1979-16:Invoke(Microsoft.FSharp.Core.Unit,FSharp.Compiler.TypedTreePickle+WriterState):Microsoft.FSharp.Core.Unit:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -124,7 +115,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 78 (0x0004e) Actual length = 156 (0x00009c)
+  Function Length   : 73 (0x00049) Actual length = 146 (0x000092)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -132,7 +123,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 F0       pop {r4,r5,r6,r7,r11,lr}            ; opsize 32
+    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
     FF          end
     FF          end
 
  
-2 (-2.86%) : 10354.dasm - FSharp.Compiler.NameResolution+MakeCtorGroup@243:Invoke(FSharp.Compiler.Infos+MethInfo):int:this (FullOpts)
@@ -11,11 +11,13 @@
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <FSharp.Compiler.NameResolution+MakeCtorGroup@243>
 ;  V01 arg1         [V01,T03] (  3,  3   )     ref  ->   r1         class-hnd single-def <FSharp.Compiler.Infos+MethInfo>
 ;  V02 loc0         [V02,T04] (  3,  2.50)     ref  ->   r0         class-hnd exact single-def <Microsoft.FSharp.Collections.FSharpList`1[int]>
-;  V03 loc1         [V03,T02] (  4,  9   )     int  ->   r3        
-;  V04 loc2         [V04,T00] (  4, 12.50)     ref  ->   r0         class-hnd <Microsoft.FSharp.Collections.FSharpList`1[int]>
-;  V05 loc3         [V05,T01] (  3, 12   )     ref  ->   r2         class-hnd <Microsoft.FSharp.Collections.FSharpList`1[int]>
+;  V03 loc1         [V03,T02] (  4,  9   )     int  ->   r0        
+;  V04 loc2         [V04,T00] (  6, 13.50)     ref  ->  registers   class-hnd <Microsoft.FSharp.Collections.FSharpList`1[int]>
+;  V05 loc3         [V05,T01] (  5, 13   )     ref  ->  registers   class-hnd <Microsoft.FSharp.Collections.FSharpList`1[int]>
 ;* V06 loc4         [V06    ] (  0,  0   )     int  ->  zero-ref   
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;  V08 cse0         [V08,T05] (  3,  2.50)     ref  ->   r3         "CSE - aggressive"
+;  V09 cse1         [V09,T06] (  2,  1   )     int  ->   r0         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
@@ -46,31 +48,29 @@ G_M3240_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
 G_M3240_IG04:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M3240_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[r0]
-            movs    r3, 0
+G_M3240_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0009 {r0 r3}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[r0 r3]
+            ldr     r0, [r0+0x08]
+            ; gcrRegs -[r0]
                         ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M3240_IG06:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            ldr     r2, [r0+0x04]
+G_M3240_IG06:        ; bbWeight=4, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
+            ldr     r2, [r3+0x04]
             ; gcrRegs +[r2]
             cmp     r2, 0
             beq     SHORT G_M3240_IG07
-            ldr     r0, [r0+0x08]
-            ; gcrRegs -[r0]
-            adds    r3, r3, r0
-            bvs     SHORT G_M3240_IG09
-            mov     r0, r2
-            ; gcrRegs +[r0]
+            ldr     r3, [r3+0x08]
+            ; gcrRegs -[r3]
+            adds    r0, r0, r3
+            bvs     SHORT G_M3240_IG08
+            mov     r3, r2
+            ; gcrRegs +[r3]
             b       SHORT G_M3240_IG06
                        ;; size=16 bbWeight=4 PerfScore 32.00
-G_M3240_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r0 r2]
-            mov     r0, r3
-                       ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M3240_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3240_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            ; gcrRegs -[r2-r3]
             pop     {r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M3240_IG09:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M3240_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_OVERFLOW
@@ -78,7 +78,7 @@ G_M3240_IG09:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefR
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 70, prolog size 6, PerfScore 45.50, instruction count 28, allocated bytes for code 70 (MethodHash=fc34f357) for method FSharp.Compiler.NameResolution+MakeCtorGroup@243:Invoke(FSharp.Compiler.Infos+MethInfo):int:this (FullOpts)
+; Total bytes of code 68, prolog size 6, PerfScore 45.00, instruction count 27, allocated bytes for code 68 (MethodHash=fc34f357) for method FSharp.Compiler.NameResolution+MakeCtorGroup@243:Invoke(FSharp.Compiler.Infos+MethInfo):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -90,7 +90,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 70 (0x000046)
+  Function Length   : 34 (0x00022) Actual length = 68 (0x000044)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+34 (+70.83%) : 34954.dasm - System.Management.Automation.FunctionInfo:get_Options():int:this (FullOpts)
@@ -8,12 +8,13 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  5, 15   )     ref  ->   r0         this class-hnd <System.Management.Automation.FunctionInfo>
+;  V00 this         [V00,T04] (  7, 17   )     ref  ->   r0         this class-hnd <System.Management.Automation.FunctionInfo>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T03] (  3, 17   )     ref  ->   r1         single-def "CASTCLASS eval op1"
-;  V03 tmp2         [V03,T04] (  3, 17   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
-;  V04 tmp3         [V04,T00] (  4, 25   )     ref  ->   r0         class-hnd "spilling QMark2" <System.Management.Automation.FunctionInfo>
+;  V02 tmp1         [V02,T02] (  6, 19.12)     ref  ->   r1         "CASTCLASS eval op1"
+;  V03 tmp2         [V03,T03] (  6, 19.12)     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V04 tmp3         [V04,T00] (  8, 29.12)     ref  ->   r0         class-hnd "spilling QMark2" <System.Management.Automation.FunctionInfo>
 ;  V05 cse0         [V05,T01] (  3, 20   )     ref  ->   r1         "CSE - aggressive"
+;  V06 cse1         [V06,T05] (  3,  2.50)     ref  ->   r1         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -21,14 +22,14 @@ G_M40934_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             push    {r11,lr}
             mov     r11, sp
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M40934_IG02:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+G_M40934_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x10]
             ; gcrRegs +[r1]
             cmp     r1, 0
-            beq     SHORT G_M40934_IG06
-                       ;; size=6 bbWeight=8 PerfScore 24.00
-G_M40934_IG03:        ; bbWeight=4, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+            beq     SHORT G_M40934_IG09
+                       ;; size=6 bbWeight=1 PerfScore 3.00
+G_M40934_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
             mov     r0, r1
             ; gcrRegs +[r0]
@@ -37,8 +38,33 @@ G_M40934_IG03:        ; bbWeight=4, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byre
             movt    r2, 0xd1ff
             cmp     r3, r2
             beq     SHORT G_M40934_IG05
+                      ;; size=16 bbWeight=0.50 PerfScore 3.00
+G_M40934_IG04:        ; bbWeight=0.06, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r0]
+            mov     r0, r2
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_CHKCASTCLASS_SPECIAL
+            ; gcrRegs -[r1] +[r0]
+            ; gcr arg pop 0
+                       ;; size=12 bbWeight=0.06 PerfScore 0.25
+G_M40934_IG05:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+            ldr     r1, [r0+0x10]
+            ; gcrRegs +[r1]
+            cmp     r1, 0
+            beq     SHORT G_M40934_IG09
+                       ;; size=6 bbWeight=8 PerfScore 24.00
+G_M40934_IG06:        ; bbWeight=4, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0]
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            ldr     r3, [r0]
+            movw    r2, 0xd1ff
+            movt    r2, 0xd1ff
+            cmp     r3, r2
+            beq     SHORT G_M40934_IG08
                         ;; size=16 bbWeight=4 PerfScore 24.00
-G_M40934_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
+G_M40934_IG07:        ; bbWeight=0.50, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
             mov     r0, r2
             movw    r3, 0xd1ff
@@ -47,18 +73,18 @@ G_M40934_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, b
             ; gcrRegs -[r1] +[r0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M40934_IG05:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            b       SHORT G_M40934_IG02
+G_M40934_IG08:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M40934_IG05
                         ;; size=2 bbWeight=4 PerfScore 4.00
-G_M40934_IG06:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+G_M40934_IG09:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
             ldr     r0, [r0+0x54]
             ; gcrRegs -[r0]
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M40934_IG07:        ; bbWeight=1, epilog, nogc, extend
+G_M40934_IG10:        ; bbWeight=1, epilog, nogc, extend
             pop     {r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 48, prolog size 6, PerfScore 58.00, instruction count 18, allocated bytes for code 48 (MethodHash=b2d36019) for method System.Management.Automation.FunctionInfo:get_Options():int:this (FullOpts)
+; Total bytes of code 82, prolog size 6, PerfScore 64.25, instruction count 31, allocated bytes for code 82 (MethodHash=b2d36019) for method System.Management.Automation.FunctionInfo:get_Options():int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -70,7 +96,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 24 (0x00018) Actual length = 48 (0x000030)
+  Function Length   : 41 (0x00029) Actual length = 82 (0x000052)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
+34 (+73.91%) : 29844.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetSwitchBinder(Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.SwitchBinder (FullOpts)
@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6, 22   )     ref  ->   r4         class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V01 loc0         [V01,T01] (  3, 13   )     ref  ->   r0         class-hnd <Microsoft.CodeAnalysis.CSharp.SwitchBinder>
+;  V00 arg0         [V00,T00] ( 10, 24.50)     ref  ->   r4         class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V01 loc0         [V01,T01] (  5, 14.50)     ref  ->   r0         class-hnd <Microsoft.CodeAnalysis.CSharp.SwitchBinder>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 4
@@ -23,10 +23,11 @@ G_M1427_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M1427_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M1427_IG04
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M1427_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M1427_IG03:        ; bbWeight=0.25, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r4, [r4+0x08]
-                      ;; size=2 bbWeight=2 PerfScore 2.00
-G_M1427_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M1427_IG08
+                       ;; size=4 bbWeight=0.25 PerfScore 0.50
+G_M1427_IG04:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             mov     r1, r4
             ; gcrRegs +[r1]
             movw    r0, 0xd1ff
@@ -37,18 +38,43 @@ G_M1427_IG04:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r1] +[r0]
             ; gcr arg pop 0
             cmp     r4, 0
-            beq     SHORT G_M1427_IG06
-                       ;; size=24 bbWeight=8 PerfScore 64.00
-G_M1427_IG05:        ; bbWeight=4, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref, isz
+            beq     SHORT G_M1427_IG10
+                       ;; size=24 bbWeight=1 PerfScore 8.00
+G_M1427_IG05:        ; bbWeight=0.50, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref, isz
             cmp     r0, 0
             beq     SHORT G_M1427_IG03
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M1427_IG06:        ; bbWeight=0.12, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r4]
+            b       SHORT G_M1427_IG10
+                       ;; size=2 bbWeight=0.12 PerfScore 0.12
+G_M1427_IG07:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r0] +[r4]
+            ldr     r4, [r4+0x08]
+                       ;; size=2 bbWeight=2 PerfScore 2.00
+G_M1427_IG08:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            mov     r1, r4
+            ; gcrRegs +[r1]
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_ISINSTANCEOFCLASS
+            ; gcrRegs -[r1] +[r0]
+            ; gcr arg pop 0
+            cmp     r4, 0
+            beq     SHORT G_M1427_IG10
+                       ;; size=24 bbWeight=8 PerfScore 64.00
+G_M1427_IG09:        ; bbWeight=4, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, byref, isz
+            cmp     r0, 0
+            beq     SHORT G_M1427_IG07
                      ;; size=4 bbWeight=4 PerfScore 8.00
-G_M1427_IG06:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M1427_IG10:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r4]
             pop     {r3,r4,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 46, prolog size 10, PerfScore 79.00, instruction count 16, allocated bytes for code 46 (MethodHash=85d7fa6c) for method Microsoft.CodeAnalysis.CSharp.Binder:GetSwitchBinder(Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.SwitchBinder (FullOpts)
+; Total bytes of code 80, prolog size 10, PerfScore 88.62, instruction count 29, allocated bytes for code 80 (MethodHash=85d7fa6c) for method Microsoft.CodeAnalysis.CSharp.Binder:GetSwitchBinder(Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.SwitchBinder (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -60,7 +86,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 23 (0x00017) Actual length = 46 (0x00002e)
+  Function Length   : 40 (0x00028) Actual length = 80 (0x000050)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
  
+48 (+82.76%) : 8858.dasm - FSharp.Compiler.TypedTreeOps:accFreeInTypesLeftToRight(FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,Microsoft.FSharp.Collections.FSharpList1[FSharp.Compiler.TypedTree+Typar],Microsoft.FSharp.Collections.FSharpList1[FSharp.Compiler.TypedTree+TType]):Microsoft.FSharp.Collections.FSharpList`1FSharp.Compiler.TypedTree+Typar
@@ -8,66 +8,93 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T03] (  3,  6   )     ref  ->   r5         class-hnd single-def <FSharp.Compiler.TcGlobals+TcGlobals>
-;  V01 arg1         [V01,T04] (  3,  6   )   ubyte  ->   r6         single-def
-;  V02 arg2         [V02,T05] (  3,  6   )   ubyte  ->   r7         single-def
-;  V03 arg3         [V03,T02] (  5, 11   )     ref  ->   r3         class-hnd <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar]>
-;  V04 arg4         [V04,T01] (  3, 16   )     ref  ->   r4         class-hnd <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType]>
+;  V00 arg0         [V00,T05] (  4,  7   )     ref  ->   r5         class-hnd single-def <FSharp.Compiler.TcGlobals+TcGlobals>
+;  V01 arg1         [V01,T08] (  3,  3   )   ubyte  ->   r1         single-def
+;  V02 arg2         [V02,T09] (  3,  3   )   ubyte  ->   r2         single-def
+;  V03 arg3         [V03,T02] (  7, 13   )     ref  ->   r3         class-hnd <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar]>
+;  V04 arg4         [V04,T01] (  6, 19   )     ref  ->   r4         class-hnd <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType]>
 ;* V05 loc0         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType]>
-;  V06 loc1         [V06,T06] (  2,  8   )     ref  ->   r2         class-hnd exact <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType]>
-;  V07 loc2         [V07,T07] (  2,  8   )     ref  ->   r1         class-hnd <FSharp.Compiler.TypedTree+TType>
+;  V06 loc1         [V06,T03] (  4, 10   )     ref  ->   lr         class-hnd exact <Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType]>
+;  V07 loc2         [V07,T04] (  4, 10   )     ref  ->   r6         class-hnd <FSharp.Compiler.TypedTree+TType>
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct ( 4) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 cse0         [V09,T00] (  3, 20   )     ref  ->   r2         "CSE - aggressive"
+;  V09 cse0         [V09,T00] (  3, 20   )     ref  ->   lr         "CSE - aggressive"
+;  V10 cse1         [V10,T10] (  3,  3   )     ref  ->   lr         "CSE - aggressive"
+;  V11 cse2         [V11,T06] (  3,  6   )     int  ->   r7         "CSE - aggressive"
+;  V12 cse3         [V12,T07] (  3,  6   )     int  ->   r8         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 12
 
-G_M38869_IG01:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r2,r3,r4,r5,r6,r7,r11,lr}
-            add     r11, sp, 24
+G_M38869_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+            push    {r4,r5,r6,r7,r8,r11,lr}
+            sub     sp, 12
+            add     r11, sp, 32
             mov     r5, r0
             ; gcrRegs +[r5]
-            mov     r6, r1
-            mov     r7, r2
-            ldr     r4, [sp+0x20]
+            ldr     r4, [sp+0x28]
             ; gcrRegs +[r4]
-                      ;; size=16 bbWeight=8 PerfScore 48.00
-G_M38869_IG02:        ; bbWeight=8, gcrefRegs=0038 {r3 r4 r5}, byrefRegs=0000 {}, byref, isz
+                     ;; size=14 bbWeight=1 PerfScore 5.00
+G_M38869_IG02:        ; bbWeight=1, gcrefRegs=0038 {r3 r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r3]
-            ldr     r2, [r4+0x08]
-            ; gcrRegs +[r2]
-            cmp     r2, 0
-            beq     SHORT G_M38869_IG04
-                       ;; size=6 bbWeight=8 PerfScore 24.00
-G_M38869_IG03:        ; bbWeight=4, gcrefRegs=003C {r2 r3 r4 r5}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [r4+0x04]
-            ; gcrRegs +[r1]
-            mov     r4, r2
-            str     r1, [sp]
-            uxtb    r2, r7
-            ; gcrRegs -[r2]
-            uxtb    r1, r6
-            ; gcrRegs -[r1]
+            ldr     lr, [r4+0x08]
+            ; gcrRegs +[lr]
+            cmp     lr, 0
+            beq     SHORT G_M38869_IG05
+            ldr     r6, [r4+0x04]
+            ; gcrRegs +[r6]
+            mov     r4, lr
+            str     r6, [sp]
+            uxtb    r7, r2
+            mov     r2, r7
+            uxtb    r8, r1
+            mov     r1, r8
             mov     r0, r5
             ; gcrRegs +[r0]
             movw    lr, 0xd1ff
+            ; gcrRegs -[lr]
             movt    lr, 0xd1ff
             ldr     lr, [lr]
             blx     lr     // <unknown method>
-            ; gcrRegs -[r3]
+            ; gcrRegs -[r3 r6]
             mov     r3, r0
             ; gcrRegs +[r3]
-            b       SHORT G_M38869_IG02
+                     ;; size=44 bbWeight=1 PerfScore 16.00
+G_M38869_IG03:        ; bbWeight=8, gcrefRegs=0038 {r3 r4 r5}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0]
+            ldr     lr, [r4+0x08]
+            ; gcrRegs +[lr]
+            cmp     lr, 0
+            beq     SHORT G_M38869_IG05
+                       ;; size=10 bbWeight=8 PerfScore 24.00
+G_M38869_IG04:        ; bbWeight=4, gcrefRegs=4038 {r3 r4 r5 lr}, byrefRegs=0000 {}, byref, isz
+            ldr     r6, [r4+0x04]
+            ; gcrRegs +[r6]
+            mov     r4, lr
+            str     r6, [sp]
+            mov     r2, r7
+            mov     r1, r8
+            mov     r0, r5
+            ; gcrRegs +[r0]
+            movw    lr, 0xd1ff
+            ; gcrRegs -[lr]
+            movt    lr, 0xd1ff
+            ldr     lr, [lr]
+            blx     lr     // <unknown method>
+            ; gcrRegs -[r3 r6]
+            mov     r3, r0
+            ; gcrRegs +[r3]
+            b       SHORT G_M38869_IG03
                         ;; size=30 bbWeight=4 PerfScore 48.00
-G_M38869_IG04:        ; bbWeight=1, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref
+G_M38869_IG05:        ; bbWeight=1, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0 r4-r5]
             mov     r0, r3
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M38869_IG05:        ; bbWeight=1, epilog, nogc, extend
-            pop     {r2,r3,r4,r5,r6,r7,r11,pc}
-                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M38869_IG06:        ; bbWeight=1, epilog, nogc, extend
+            add     sp, 12
+            pop     {r4,r5,r6,r7,r8,r11,pc}
+                       ;; size=6 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 58, prolog size 8, PerfScore 122.00, instruction count 23, allocated bytes for code 58 (MethodHash=5afc682a) for method FSharp.Compiler.TypedTreeOps:accFreeInTypesLeftToRight(FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType]):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar] (FullOpts)
+; Total bytes of code 106, prolog size 10, PerfScore 96.00, instruction count 39, allocated bytes for code 106 (MethodHash=5afc682a) for method FSharp.Compiler.TypedTreeOps:accFreeInTypesLeftToRight(FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType]):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar] (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -79,11 +106,11 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 29 (0x0001d) Actual length = 58 (0x00003a)
+  Function Length   : 53 (0x00035) Actual length = 106 (0x00006a)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 FC       pop {r2,r3,r4,r5,r6,r7,r11,lr}      ; opsize 32
-    FF          end
+    03          add sp, sp, #12                     ; opsize 16
+    A9 F0       pop {r4,r5,r6,r7,r8,r11,lr}         ; opsize 32
     FF          end
 
  
  
  
Details
Improvements/regressions per collection
| Collection | Contexts with diffs | Improvements | Regressions | Same size | Improvements (bytes) | Regressions (bytes) | 
| benchmarks.run.linux.arm.checked.mch | 10,836 | 19 | 10,780 | 37 | -500 | +1,464,868 | 
| benchmarks.run_pgo.linux.arm.checked.mch | 23,955 | 105 | 23,812 | 38 | -2,010 | +4,103,288 | 
| benchmarks.run_tiered.linux.arm.checked.mch | 9,401 | 18 | 9,345 | 38 | -490 | +1,394,748 | 
| coreclr_tests.run.linux.arm.checked.mch | 35,990 | 828 | 34,855 | 307 | -27,692 | +6,532,728 | 
| libraries.crossgen2.linux.arm.checked.mch | 17,298 | 50 | 17,214 | 34 | -640 | +3,331,992 | 
| libraries.pmi.linux.arm.checked.mch | 23,072 | 85 | 22,930 | 57 | -1,136 | +5,002,702 | 
| libraries_tests.run.linux.arm.Release.mch | 72,175 | 877 | 71,037 | 261 | -16,842 | +23,342,796 | 
| librariestestsnotieredcompilation.run.linux.arm.Release.mch | 22,499 | 124 | 22,263 | 112 | -3,284 | +6,455,484 | 
| realworld.run.linux.arm.checked.mch | 5,419 | 26 | 5,382 | 11 | -568 | +1,873,504 | 
|  | 220,645 | 2,132 | 217,618 | 895 | -53,162 | +53,502,110 | 
Context information
| Collection | Diffed contexts | MinOpts | FullOpts | Missed, base | Missed, diff | 
| benchmarks.run.linux.arm.checked.mch | 45,937 | 5,279 | 40,658 | 1,423 (3.00%) | 1,461 (3.08%) | 
| benchmarks.run_pgo.linux.arm.checked.mch | 159,214 | 58,093 | 101,121 | 3,553 (2.18%) | 3,611 (2.22%) | 
| benchmarks.run_tiered.linux.arm.checked.mch | 71,315 | 38,077 | 33,238 | 1,124 (1.55%) | 1,162 (1.60%) | 
| coreclr_tests.run.linux.arm.checked.mch | 471,122 | 259,093 | 212,029 | 7,618 (1.59%) | 7,915 (1.65%) | 
| libraries.crossgen2.linux.arm.checked.mch | 195,287 | 14 | 195,273 | 1 (0.00%) | 154 (0.08%) | 
| libraries.pmi.linux.arm.checked.mch | 269,754 | 6 | 269,748 | 9,463 (3.39%) | 9,670 (3.46%) | 
| libraries_tests.run.linux.arm.Release.mch | 707,528 | 442,850 | 264,678 | 17,522 (2.41%) | 18,246 (2.51%) | 
| librariestestsnotieredcompilation.run.linux.arm.Release.mch | 272,581 | 21,565 | 251,016 | 35,091 (11.40%) | 35,270 (11.46%) | 
| realworld.run.linux.arm.checked.mch | 36,008 | 153 | 35,855 | 1,734 (4.59%) | 1,796 (4.75%) | 
|  | 2,228,746 | 825,130 | 1,403,616 | 77,529 (3.36%) | 79,285 (3.44%) | 
jit-analyze output
benchmarks.run.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 15030000 (overridden on cmd)
Total bytes of diff: 16494368 (overridden on cmd)
Total bytes of delta: 1464368 (9.74 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       18936 : 29672.dasm (65.05 % of base)
       11072 : 25598.dasm (103.86 % of base)
       10204 : 13269.dasm (38.14 % of base)
        8262 : 38197.dasm (79.95 % of base)
        6024 : 36789.dasm (36.37 % of base)
        6024 : 18940.dasm (99.21 % of base)
        6008 : 24295.dasm (72.98 % of base)
        5880 : 13118.dasm (90.74 % of base)
        5854 : 12945.dasm (59.10 % of base)
        5818 : 10723.dasm (85.63 % of base)
        5660 : 19305.dasm (72.58 % of base)
        5490 : 18554.dasm (110.02 % of base)
        5480 : 39255.dasm (34.34 % of base)
        5292 : 21233.dasm (76.47 % of base)
        5224 : 2351.dasm (66.19 % of base)
        5178 : 24666.dasm (82.93 % of base)
        5046 : 25550.dasm (82.94 % of base)
        4602 : 25846.dasm (101.19 % of base)
        4600 : 13446.dasm (54.12 % of base)
        4214 : 2068.dasm (90.66 % of base)
Top file improvements (bytes):
        -300 : 6214.dasm (-3.83 % of base)
         -72 : 646.dasm (-9.18 % of base)
         -52 : 24726.dasm (-6.28 % of base)
         -12 : 12710.dasm (-5.17 % of base)
         -10 : 13412.dasm (-0.94 % of base)
         -10 : 21476.dasm (-1.60 % of base)
          -8 : 21494.dasm (-12.90 % of base)
          -8 : 26838.dasm (-1.37 % of base)
          -6 : 663.dasm (-2.04 % of base)
          -4 : 25154.dasm (-0.60 % of base)
          -2 : 13184.dasm (-1.79 % of base)
          -2 : 7712.dasm (-1.54 % of base)
          -2 : 24882.dasm (-0.42 % of base)
          -2 : 111.dasm (-1.61 % of base)
          -2 : 1942.dasm (-1.22 % of base)
          -2 : 1973.dasm (-1.61 % of base)
          -2 : 19781.dasm (-0.44 % of base)
          -2 : 223.dasm (-1.56 % of base)
          -2 : 45913.dasm (-0.34 % of base)
80 total files with Code Size differences (19 improved, 61 regressed), 20 unchanged.
Top method regressions (bytes):
       18936 (65.05 % of base) : 29672.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
       11072 (103.86 % of base) : 25598.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)
       10204 (38.14 % of base) : 13269.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
        8262 (79.95 % of base) : 38197.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (FullOpts)
        6024 (36.37 % of base) : 36789.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        6024 (99.21 % of base) : 18940.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this (FullOpts)
        6008 (72.98 % of base) : 24295.dasm - Benchstone.BenchF.LLoops:Main1(int):this (FullOpts)
        5880 (90.74 % of base) : 13118.dasm - BilinearTest:BilinearInterpol_Vector(double[],double[],double,double,double[],double,double,double):double[]:this (FullOpts)
        5854 (59.10 % of base) : 12945.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
        5818 (85.63 % of base) : 10723.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
        5660 (72.58 % of base) : 19305.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (FullOpts)
        5490 (110.02 % of base) : 18554.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (FullOpts)
        5480 (34.34 % of base) : 39255.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        5292 (76.47 % of base) : 21233.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
        5224 (66.19 % of base) : 2351.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
        5178 (82.93 % of base) : 24666.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
        5046 (82.94 % of base) : 25550.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (FullOpts)
        4602 (101.19 % of base) : 25846.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (FullOpts)
        4600 (54.12 % of base) : 13446.dasm - Jil.Deserialize.Methods:SkipWithLeadCharThunkReader(byref,int) (FullOpts)
        4214 (90.66 % of base) : 2068.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)
Top method improvements (bytes):
        -300 (-3.83 % of base) : 6214.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -72 (-9.18 % of base) : 646.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (FullOpts)
         -52 (-6.28 % of base) : 24726.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],byref,ubyte,ubyte):System.Runtime.CompilerServices.StrongBox`1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]:this (FullOpts)
         -12 (-5.17 % of base) : 12710.dasm - Sigil.Impl.LinqAlternative+<_Where>d__2`1[int]:MoveNext():ubyte:this (FullOpts)
         -10 (-0.94 % of base) : 13412.dasm - Jil.Deserialize.InlineDeserializer`1[System.__Canon]:ReadNullable(System.Reflection.MemberInfo,System.Type):this (FullOpts)
         -10 (-1.60 % of base) : 21476.dasm - System.MathBenchmarks.Double:MaxTest() (FullOpts)
          -8 (-1.37 % of base) : 26838.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<Microsoft-Cci-ITypeDefinition-GetFields>d__31:MoveNext():ubyte:this (FullOpts)
          -8 (-12.90 % of base) : 21494.dasm - Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (FullOpts)
          -6 (-2.04 % of base) : 663.dasm - System.Linq.Enumerable+<OfTypeIterator>d__64`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-0.60 % of base) : 25154.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80:MoveNext():ubyte:this (FullOpts)
          -2 (-0.42 % of base) : 24882.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (FullOpts)
          -2 (-1.56 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.22 % of base) : 1942.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.61 % of base) : 111.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.61 % of base) : 1973.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.79 % of base) : 13184.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.54 % of base) : 7712.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-0.44 % of base) : 19781.dasm - System.MathBenchmarks.Single:CopySignTest() (FullOpts)
          -2 (-0.34 % of base) : 45913.dasm - System.MathBenchmarks.Single:MaxTest() (FullOpts)
Top method regressions (percentages):
         254 (142.70 % of base) : 10636.dasm - Benchstone.MDBenchI.MDArray2:VerifyCopy(int[,,],int[,,]):ubyte (FullOpts)
         934 (123.87 % of base) : 14598.dasm - System.Text.Tests.Perf_StringBuilder:Append_Strings(int):System.Text.StringBuilder:this (FullOpts)
         726 (117.10 % of base) : 36489.dasm - System.Number:UInt128ToDecChars[ushort](uint,System.UInt128):uint (FullOpts)
          70 (116.67 % of base) : 26528.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (FullOpts)
        1796 (115.87 % of base) : 24857.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (FullOpts)
        1710 (114.77 % of base) : 36664.dasm - Benchstone.BenchF.Romber:Test():ubyte:this (FullOpts)
         364 (113.04 % of base) : 3547.dasm - Newtonsoft.Json.JsonTextReader:EatWhitespace():this (FullOpts)
         142 (112.70 % of base) : 24562.dasm - Microsoft.CodeAnalysis.GreenNode:GetLastTerminal():Microsoft.CodeAnalysis.GreenNode:this (FullOpts)
         146 (112.31 % of base) : 24557.dasm - Microsoft.CodeAnalysis.GreenNode:GetFirstTerminal():Microsoft.CodeAnalysis.GreenNode:this (FullOpts)
         926 (111.84 % of base) : 27367.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMethodDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes,int):this (FullOpts)
         514 (111.74 % of base) : 7976.dasm - System.SpanHelpers:NonPackedIndexOfAnyValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,ubyte,int):int (FullOpts)
         534 (110.79 % of base) : 24010.dasm - System.SpanHelpers:LastIndexOfAnyValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,ubyte,int):int (FullOpts)
        5490 (110.02 % of base) : 18554.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (FullOpts)
        1126 (109.96 % of base) : 293.dasm - System.Reflection.TypeNameParser:ParseNonQualifiedTypeName():System.Reflection.TypeNameParser+TypeName:this (FullOpts)
         166 (109.21 % of base) : 19397.dasm - System.Collections.Generic.SortedSet`1+Enumerator[int]:Initialize():this (FullOpts)
         126 (108.62 % of base) : 19109.dasm - AssignRect:CopyToAssign(int[,],int[,]) (FullOpts)
         322 (105.23 % of base) : 21834.dasm - Neural:adjust_mid_wts(int) (FullOpts)
        1314 (105.12 % of base) : 42107.dasm - System.Tests.Perf_Array:ArrayRetrieve1D():int:this (FullOpts)
         984 (104.90 % of base) : 3106.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
        1030 (104.67 % of base) : 27366.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeTypeDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
Top method improvements (percentages):
          -8 (-12.90 % of base) : 21494.dasm - Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (FullOpts)
         -72 (-9.18 % of base) : 646.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (FullOpts)
         -52 (-6.28 % of base) : 24726.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],byref,ubyte,ubyte):System.Runtime.CompilerServices.StrongBox`1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]:this (FullOpts)
         -12 (-5.17 % of base) : 12710.dasm - Sigil.Impl.LinqAlternative+<_Where>d__2`1[int]:MoveNext():ubyte:this (FullOpts)
        -300 (-3.83 % of base) : 6214.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
          -6 (-2.04 % of base) : 663.dasm - System.Linq.Enumerable+<OfTypeIterator>d__64`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.79 % of base) : 13184.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.61 % of base) : 111.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.61 % of base) : 1973.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -10 (-1.60 % of base) : 21476.dasm - System.MathBenchmarks.Double:MaxTest() (FullOpts)
          -2 (-1.56 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.54 % of base) : 7712.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-1.37 % of base) : 26838.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<Microsoft-Cci-ITypeDefinition-GetFields>d__31:MoveNext():ubyte:this (FullOpts)
          -2 (-1.22 % of base) : 1942.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:MoveNext():ubyte:this (FullOpts)
         -10 (-0.94 % of base) : 13412.dasm - Jil.Deserialize.InlineDeserializer`1[System.__Canon]:ReadNullable(System.Reflection.MemberInfo,System.Type):this (FullOpts)
          -4 (-0.60 % of base) : 25154.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80:MoveNext():ubyte:this (FullOpts)
          -2 (-0.44 % of base) : 19781.dasm - System.MathBenchmarks.Single:CopySignTest() (FullOpts)
          -2 (-0.42 % of base) : 24882.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (FullOpts)
          -2 (-0.34 % of base) : 45913.dasm - System.MathBenchmarks.Single:MaxTest() (FullOpts)
  
benchmarks.run_pgo.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 63279568 (overridden on cmd)
Total bytes of diff: 67380846 (overridden on cmd)
Total bytes of delta: 4101278 (6.48 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       18936 : 112334.dasm (65.05 % of base)
       11378 : 90753.dasm (104.46 % of base)
       10204 : 35771.dasm (38.14 % of base)
        8262 : 130887.dasm (79.95 % of base)
        6834 : 67188.dasm (100.53 % of base)
        6024 : 128064.dasm (36.37 % of base)
        6008 : 100884.dasm (72.98 % of base)
        5880 : 30766.dasm (90.74 % of base)
        5854 : 40825.dasm (59.10 % of base)
        5822 : 29695.dasm (85.57 % of base)
        5768 : 60656.dasm (102.63 % of base)
        5668 : 72370.dasm (72.46 % of base)
        5480 : 134131.dasm (34.34 % of base)
        5368 : 90557.dasm (82.58 % of base)
        5336 : 88201.dasm (83.35 % of base)
        5326 : 14126.dasm (66.48 % of base)
        5292 : 75325.dasm (76.47 % of base)
        4838 : 91370.dasm (102.24 % of base)
        4430 : 7707.dasm (93.54 % of base)
        3924 : 36462.dasm (83.95 % of base)
Top file improvements (bytes):
        -274 : 21310.dasm (-3.51 % of base)
         -98 : 66485.dasm (-6.72 % of base)
         -88 : 135126.dasm (-6.64 % of base)
         -88 : 137970.dasm (-6.64 % of base)
         -84 : 59382.dasm (-6.12 % of base)
         -84 : 9750.dasm (-6.52 % of base)
         -84 : 123613.dasm (-6.12 % of base)
         -84 : 80139.dasm (-6.12 % of base)
         -82 : 74028.dasm (-5.97 % of base)
         -36 : 88336.dasm (-4.41 % of base)
         -26 : 106553.dasm (-4.28 % of base)
         -14 : 101728.dasm (-3.70 % of base)
         -14 : 156781.dasm (-3.70 % of base)
         -14 : 28905.dasm (-3.55 % of base)
         -14 : 37109.dasm (-3.55 % of base)
         -14 : 39909.dasm (-3.55 % of base)
         -14 : 40549.dasm (-3.55 % of base)
         -14 : 42741.dasm (-3.55 % of base)
         -14 : 51137.dasm (-3.70 % of base)
         -14 : 152690.dasm (-3.70 % of base)
87 total files with Code Size differences (25 improved, 62 regressed), 20 unchanged.
Top method regressions (bytes):
       18936 (65.05 % of base) : 112334.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
       11378 (104.46 % of base) : 90753.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 (Tier0-FullOpts)
       10204 (38.14 % of base) : 35771.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
        8262 (79.95 % of base) : 130887.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier0-FullOpts)
        6834 (100.53 % of base) : 67188.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this (Tier0-FullOpts)
        6024 (36.37 % of base) : 128064.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        6008 (72.98 % of base) : 100884.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier0-FullOpts)
        5880 (90.74 % of base) : 30766.dasm - BilinearTest:BilinearInterpol_Vector(double[],double[],double,double,double[],double,double,double):double[]:this (Tier0-FullOpts)
        5854 (59.10 % of base) : 40825.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
        5822 (85.57 % of base) : 29695.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
        5768 (102.63 % of base) : 60656.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (Tier0-FullOpts)
        5668 (72.46 % of base) : 72370.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (Tier0-FullOpts)
        5480 (34.34 % of base) : 134131.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        5368 (82.58 % of base) : 90557.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (Tier0-FullOpts)
        5336 (83.35 % of base) : 88201.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (Tier0-FullOpts)
        5326 (66.48 % of base) : 14126.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0-FullOpts)
        5292 (76.47 % of base) : 75325.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
        4838 (102.24 % of base) : 91370.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (Tier0-FullOpts)
        4430 (93.54 % of base) : 7707.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier0-FullOpts)
        3924 (83.95 % of base) : 36462.dasm - Jil.Deserialize.Methods:SkipEncodedStringWithLeadCharThunkReader(byref,int) (Tier0-FullOpts)
Top method improvements (bytes):
        -274 (-3.51 % of base) : 21310.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         -98 (-6.72 % of base) : 66485.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -88 (-6.64 % of base) : 135126.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -88 (-6.64 % of base) : 137970.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -84 (-6.12 % of base) : 59382.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -84 (-6.52 % of base) : 9750.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -84 (-6.12 % of base) : 123613.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -84 (-6.12 % of base) : 80139.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -82 (-5.97 % of base) : 74028.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -36 (-4.41 % of base) : 88336.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],byref,ubyte,ubyte):System.Runtime.CompilerServices.StrongBox`1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]:this (Tier0-FullOpts)
         -26 (-4.28 % of base) : 106553.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ContextAwareSyntax:PredefinedType(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.PredefinedTypeSyntax:this (Tier1)
         -14 (-3.70 % of base) : 101728.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.70 % of base) : 156781.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.55 % of base) : 28905.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.55 % of base) : 37109.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.55 % of base) : 39909.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.55 % of base) : 40549.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.55 % of base) : 42741.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.70 % of base) : 51137.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.70 % of base) : 152690.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
Top method regressions (percentages):
         254 (142.70 % of base) : 31637.dasm - Benchstone.MDBenchI.MDArray2:VerifyCopy(int[,,],int[,,]):ubyte (Tier0-FullOpts)
        1484 (141.33 % of base) : 95233.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeTypeDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier0-FullOpts)
        1584 (133.11 % of base) : 95296.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeAssemblyRefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier0-FullOpts)
        1182 (129.04 % of base) : 95241.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMethodDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes,int):this (Tier0-FullOpts)
         934 (123.87 % of base) : 42711.dasm - System.Text.Tests.Perf_StringBuilder:Append_Strings(int):System.Text.StringBuilder:this (Tier0-FullOpts)
          70 (116.67 % of base) : 92969.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (Tier0-FullOpts)
         642 (115.47 % of base) : 95250.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMemberRefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier0-FullOpts)
        1710 (114.77 % of base) : 123145.dasm - Benchstone.BenchF.Romber:Test():ubyte:this (Tier0-FullOpts)
         336 (113.51 % of base) : 13305.dasm - Newtonsoft.Json.JsonTextReader:EatWhitespace():this (Tier0-FullOpts)
        1814 (112.81 % of base) : 88585.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (Tier0-FullOpts)
         514 (111.74 % of base) : 27516.dasm - System.SpanHelpers:NonPackedIndexOfAnyValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,ubyte,int):int (Tier0-FullOpts)
         534 (110.79 % of base) : 98819.dasm - System.SpanHelpers:LastIndexOfAnyValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,ubyte,int):int (Tier0-FullOpts)
        1126 (109.96 % of base) : 761.dasm - System.Reflection.TypeNameParser:ParseNonQualifiedTypeName():System.Reflection.TypeNameParser+TypeName:this (Tier0-FullOpts)
         166 (109.21 % of base) : 71649.dasm - System.Collections.Generic.SortedSet`1+Enumerator[int]:Initialize():this (Tier0-FullOpts)
         126 (108.62 % of base) : 69674.dasm - AssignRect:CopyToAssign(int[,],int[,]) (Tier0-FullOpts)
         208 (108.33 % of base) : 46500.dasm - System.IO.RowConfigReader:TryFindNextKeyOccurrence(System.String,int,byref):ubyte:this (Tier0-FullOpts)
         138 (107.81 % of base) : 87905.dasm - Microsoft.CodeAnalysis.GreenNode:GetLastTerminal():Microsoft.CodeAnalysis.GreenNode:this (Tier0-FullOpts)
         142 (107.58 % of base) : 87898.dasm - Microsoft.CodeAnalysis.GreenNode:GetFirstTerminal():Microsoft.CodeAnalysis.GreenNode:this (Tier0-FullOpts)
         332 (107.10 % of base) : 115826.dasm - MS.Internal.Xml.XPath.XPathParser:ParseMultiplicativeExpr(MS.Internal.Xml.XPath.AstNode):MS.Internal.Xml.XPath.AstNode:this (Tier0-FullOpts)
         636 (107.07 % of base) : 95225.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeTypeRefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier0-FullOpts)
Top method improvements (percentages):
          -8 (-12.90 % of base) : 74932.dasm - Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
         -98 (-6.72 % of base) : 66485.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -88 (-6.64 % of base) : 135126.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -88 (-6.64 % of base) : 137970.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -84 (-6.52 % of base) : 9750.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -84 (-6.12 % of base) : 59382.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -84 (-6.12 % of base) : 123613.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -84 (-6.12 % of base) : 80139.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -82 (-5.97 % of base) : 74028.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -12 (-5.17 % of base) : 34936.dasm - Sigil.Impl.LinqAlternative+<_Where>d__2`1[int]:MoveNext():ubyte:this (Tier0-FullOpts)
         -36 (-4.41 % of base) : 88336.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],byref,ubyte,ubyte):System.Runtime.CompilerServices.StrongBox`1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]:this (Tier0-FullOpts)
         -26 (-4.28 % of base) : 106553.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ContextAwareSyntax:PredefinedType(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.PredefinedTypeSyntax:this (Tier1)
         -14 (-3.70 % of base) : 101728.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.70 % of base) : 156781.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.70 % of base) : 51137.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.70 % of base) : 152690.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.55 % of base) : 28905.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.55 % of base) : 37109.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.55 % of base) : 39909.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -14 (-3.55 % of base) : 40549.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
  
benchmarks.run_tiered.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 17368546 (overridden on cmd)
Total bytes of diff: 18762804 (overridden on cmd)
Total bytes of delta: 1394258 (8.03 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       18936 : 56031.dasm (65.05 % of base)
       11072 : 46757.dasm (103.86 % of base)
       10204 : 25723.dasm (38.14 % of base)
        8262 : 62308.dasm (79.95 % of base)
        6024 : 35927.dasm (99.21 % of base)
        6024 : 61539.dasm (36.37 % of base)
        6008 : 42853.dasm (72.98 % of base)
        5880 : 25400.dasm (90.74 % of base)
        5854 : 25004.dasm (59.10 % of base)
        5818 : 22244.dasm (85.63 % of base)
        5660 : 38317.dasm (72.58 % of base)
        5490 : 34362.dasm (110.02 % of base)
        5480 : 62818.dasm (34.34 % of base)
        5292 : 40496.dasm (76.47 % of base)
        5224 : 5651.dasm (66.19 % of base)
        5178 : 44601.dasm (82.93 % of base)
        5046 : 46678.dasm (82.94 % of base)
        4602 : 47299.dasm (101.19 % of base)
        4600 : 26294.dasm (54.12 % of base)
        4214 : 5142.dasm (90.66 % of base)
Top file improvements (bytes):
        -300 : 12215.dasm (-3.83 % of base)
         -72 : 2777.dasm (-9.92 % of base)
         -52 : 44726.dasm (-6.28 % of base)
         -12 : 24453.dasm (-5.17 % of base)
         -10 : 40292.dasm (-1.60 % of base)
          -8 : 40093.dasm (-12.90 % of base)
          -8 : 49429.dasm (-1.37 % of base)
          -6 : 1793.dasm (-2.03 % of base)
          -4 : 45631.dasm (-0.60 % of base)
          -2 : 271.dasm (-1.61 % of base)
          -2 : 3238.dasm (-1.54 % of base)
          -2 : 38215.dasm (-0.44 % of base)
          -2 : 14665.dasm (-1.54 % of base)
          -2 : 23536.dasm (-1.79 % of base)
          -2 : 65883.dasm (-0.34 % of base)
          -2 : 44994.dasm (-0.42 % of base)
          -2 : 4675.dasm (-1.22 % of base)
          -2 : 527.dasm (-1.56 % of base)
79 total files with Code Size differences (18 improved, 61 regressed), 21 unchanged.
Top method regressions (bytes):
       18936 (65.05 % of base) : 56031.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
       11072 (103.86 % of base) : 46757.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 (Tier0-FullOpts)
       10204 (38.14 % of base) : 25723.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
        8262 (79.95 % of base) : 62308.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier0-FullOpts)
        6024 (36.37 % of base) : 61539.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        6024 (99.21 % of base) : 35927.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this (Tier0-FullOpts)
        6008 (72.98 % of base) : 42853.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier0-FullOpts)
        5880 (90.74 % of base) : 25400.dasm - BilinearTest:BilinearInterpol_Vector(double[],double[],double,double,double[],double,double,double):double[]:this (Tier0-FullOpts)
        5854 (59.10 % of base) : 25004.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
        5818 (85.63 % of base) : 22244.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
        5660 (72.58 % of base) : 38317.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (Tier0-FullOpts)
        5490 (110.02 % of base) : 34362.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (Tier0-FullOpts)
        5480 (34.34 % of base) : 62818.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        5292 (76.47 % of base) : 40496.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
        5224 (66.19 % of base) : 5651.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0-FullOpts)
        5178 (82.93 % of base) : 44601.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (Tier0-FullOpts)
        5046 (82.94 % of base) : 46678.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (Tier0-FullOpts)
        4602 (101.19 % of base) : 47299.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (Tier0-FullOpts)
        4600 (54.12 % of base) : 26294.dasm - Jil.Deserialize.Methods:SkipWithLeadCharThunkReader(byref,int) (Tier1)
        4214 (90.66 % of base) : 5142.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier0-FullOpts)
Top method improvements (bytes):
        -300 (-3.83 % of base) : 12215.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         -72 (-9.92 % of base) : 2777.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -52 (-6.28 % of base) : 44726.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],byref,ubyte,ubyte):System.Runtime.CompilerServices.StrongBox`1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]:this (Tier0-FullOpts)
         -12 (-5.17 % of base) : 24453.dasm - Sigil.Impl.LinqAlternative+<_Where>d__2`1[int]:MoveNext():ubyte:this (Tier0-FullOpts)
         -10 (-1.60 % of base) : 40292.dasm - System.MathBenchmarks.Double:MaxTest() (Tier0-FullOpts)
          -8 (-1.37 % of base) : 49429.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<Microsoft-Cci-ITypeDefinition-GetFields>d__31:MoveNext():ubyte:this (Tier0-FullOpts)
          -8 (-12.90 % of base) : 40093.dasm - Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
          -6 (-2.03 % of base) : 1793.dasm - System.Linq.Enumerable+<OfTypeIterator>d__64`1[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
          -4 (-0.60 % of base) : 45631.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-0.42 % of base) : 44994.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier0-FullOpts)
          -2 (-1.56 % of base) : 527.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.22 % of base) : 4675.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.61 % of base) : 271.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.54 % of base) : 3238.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.79 % of base) : 23536.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.54 % of base) : 14665.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-0.44 % of base) : 38215.dasm - System.MathBenchmarks.Single:CopySignTest() (Tier0-FullOpts)
          -2 (-0.34 % of base) : 65883.dasm - System.MathBenchmarks.Single:MaxTest() (Tier0-FullOpts)
Top method regressions (percentages):
         254 (142.70 % of base) : 23901.dasm - Benchstone.MDBenchI.MDArray2:VerifyCopy(int[,,],int[,,]):ubyte (Tier0-FullOpts)
         934 (123.87 % of base) : 26430.dasm - System.Text.Tests.Perf_StringBuilder:Append_Strings(int):System.Text.StringBuilder:this (Tier0-FullOpts)
         726 (117.10 % of base) : 40810.dasm - System.Number:UInt128ToDecChars[ushort](uint,System.UInt128):uint (Tier0-FullOpts)
          70 (116.67 % of base) : 48723.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (Tier0-FullOpts)
        1796 (115.87 % of base) : 44947.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (Tier0-FullOpts)
        1710 (114.77 % of base) : 59668.dasm - Benchstone.BenchF.Romber:Test():ubyte:this (Tier0-FullOpts)
         336 (113.51 % of base) : 11283.dasm - Newtonsoft.Json.JsonTextReader:EatWhitespace():this (Tier0-FullOpts)
         142 (112.70 % of base) : 44322.dasm - Microsoft.CodeAnalysis.GreenNode:GetLastTerminal():Microsoft.CodeAnalysis.GreenNode:this (Tier0-FullOpts)
         146 (112.31 % of base) : 44316.dasm - Microsoft.CodeAnalysis.GreenNode:GetFirstTerminal():Microsoft.CodeAnalysis.GreenNode:this (Tier0-FullOpts)
         926 (111.84 % of base) : 50589.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMethodDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes,int):this (Tier0-FullOpts)
         514 (111.74 % of base) : 15401.dasm - System.SpanHelpers:NonPackedIndexOfAnyValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,ubyte,int):int (Tier0-FullOpts)
         534 (110.79 % of base) : 43021.dasm - System.SpanHelpers:LastIndexOfAnyValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,ubyte,int):int (Tier0-FullOpts)
        5490 (110.02 % of base) : 34362.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (Tier0-FullOpts)
        1126 (109.96 % of base) : 704.dasm - System.Reflection.TypeNameParser:ParseNonQualifiedTypeName():System.Reflection.TypeNameParser+TypeName:this (Tier0-FullOpts)
         166 (109.21 % of base) : 37983.dasm - System.Collections.Generic.SortedSet`1+Enumerator[int]:Initialize():this (Tier0-FullOpts)
         126 (108.62 % of base) : 37171.dasm - AssignRect:CopyToAssign(int[,],int[,]) (Tier0-FullOpts)
         208 (108.33 % of base) : 28528.dasm - System.IO.RowConfigReader:TryFindNextKeyOccurrence(System.String,int,byref):ubyte:this (Tier0-FullOpts)
         332 (107.10 % of base) : 56918.dasm - MS.Internal.Xml.XPath.XPathParser:ParseMultiplicativeExpr(MS.Internal.Xml.XPath.AstNode):MS.Internal.Xml.XPath.AstNode:this (Tier0-FullOpts)
         322 (105.23 % of base) : 40789.dasm - Neural:adjust_mid_wts(int) (Tier0-FullOpts)
        1294 (105.20 % of base) : 65596.dasm - System.Tests.Perf_Array:ArrayRetrieve1D():int:this (Tier0-FullOpts)
Top method improvements (percentages):
          -8 (-12.90 % of base) : 40093.dasm - Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
         -72 (-9.92 % of base) : 2777.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -52 (-6.28 % of base) : 44726.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],byref,ubyte,ubyte):System.Runtime.CompilerServices.StrongBox`1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]:this (Tier0-FullOpts)
         -12 (-5.17 % of base) : 24453.dasm - Sigil.Impl.LinqAlternative+<_Where>d__2`1[int]:MoveNext():ubyte:this (Tier0-FullOpts)
        -300 (-3.83 % of base) : 12215.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
          -6 (-2.03 % of base) : 1793.dasm - System.Linq.Enumerable+<OfTypeIterator>d__64`1[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.79 % of base) : 23536.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.61 % of base) : 271.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier0-FullOpts)
         -10 (-1.60 % of base) : 40292.dasm - System.MathBenchmarks.Double:MaxTest() (Tier0-FullOpts)
          -2 (-1.56 % of base) : 527.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.54 % of base) : 3238.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[long,System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.54 % of base) : 14665.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier0-FullOpts)
          -8 (-1.37 % of base) : 49429.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<Microsoft-Cci-ITypeDefinition-GetFields>d__31:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-1.22 % of base) : 4675.dasm - System.Collections.Generic.Dictionary`2+Enumerator[System.Linq.Expressions.Compiler.BoundConstants+TypedConstant,int]:MoveNext():ubyte:this (Tier0-FullOpts)
          -4 (-0.60 % of base) : 45631.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80:MoveNext():ubyte:this (Tier0-FullOpts)
          -2 (-0.44 % of base) : 38215.dasm - System.MathBenchmarks.Single:CopySignTest() (Tier0-FullOpts)
          -2 (-0.42 % of base) : 44994.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier0-FullOpts)
          -2 (-0.34 % of base) : 65883.dasm - System.MathBenchmarks.Single:MaxTest() (Tier0-FullOpts)
  
coreclr_tests.run.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 320937174 (overridden on cmd)
Total bytes of diff: 327442210 (overridden on cmd)
Total bytes of delta: 6505036 (2.03 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
      133502 : 312855.dasm (99.89 % of base)
      133502 : 106865.dasm (99.89 % of base)
       20802 : 219432.dasm (99.51 % of base)
       20802 : 450294.dasm (99.51 % of base)
       12714 : 211189.dasm (98.01 % of base)
       12714 : 448402.dasm (98.01 % of base)
       11150 : 112514.dasm (103.61 % of base)
       11124 : 326742.dasm (103.40 % of base)
        8270 : 116521.dasm (80.01 % of base)
        8270 : 336562.dasm (80.01 % of base)
        8124 : 219751.dasm (91.26 % of base)
        8124 : 450718.dasm (91.26 % of base)
        7368 : 444141.dasm (88.09 % of base)
        6976 : 209250.dasm (86.38 % of base)
        6972 : 209240.dasm (81.75 % of base)
        6966 : 444117.dasm (81.59 % of base)
        6482 : 132031.dasm (95.07 % of base)
        6016 : 336419.dasm (73.06 % of base)
        6016 : 116463.dasm (73.06 % of base)
        5994 : 345547.dasm (96.30 % of base)
Top file improvements (bytes):
        -350 : 249406.dasm (-4.37 % of base)
        -350 : 19636.dasm (-4.38 % of base)
        -126 : 284627.dasm (-19.03 % of base)
        -126 : 284715.dasm (-19.03 % of base)
        -126 : 82365.dasm (-18.92 % of base)
        -126 : 82435.dasm (-18.92 % of base)
        -120 : 115048.dasm (-51.72 % of base)
        -120 : 333272.dasm (-51.72 % of base)
        -116 : 82325.dasm (-17.85 % of base)
        -116 : 284578.dasm (-17.96 % of base)
         -98 : 115050.dasm (-42.98 % of base)
         -98 : 333274.dasm (-42.98 % of base)
         -92 : 90385.dasm (-6.48 % of base)
         -92 : 296990.dasm (-6.48 % of base)
         -86 : 263495.dasm (-13.11 % of base)
         -86 : 66930.dasm (-13.11 % of base)
         -82 : 90453.dasm (-5.93 % of base)
         -82 : 297088.dasm (-5.93 % of base)
         -76 : 89685.dasm (-5.92 % of base)
         -76 : 263597.dasm (-11.45 % of base)
75 total files with Code Size differences (30 improved, 45 regressed), 20 unchanged.
Top method regressions (bytes):
      133502 (99.89 % of base) : 106865.dasm - Program:TestEntryPoint():int (FullOpts)
      133502 (99.89 % of base) : 312855.dasm - Program:TestEntryPoint():int (Tier0-FullOpts)
       20802 (99.51 % of base) : 219432.dasm - CseTest.Test_Main:TestEntryPoint():int (FullOpts)
       20802 (99.51 % of base) : 450294.dasm - CseTest.Test_Main:TestEntryPoint():int (Tier0-FullOpts)
       12714 (98.01 % of base) : 211189.dasm - Internal.IL.ILImporter:ImportBasicBlock(Internal.IL.ILImporter+BasicBlock):this (FullOpts)
       12714 (98.01 % of base) : 448402.dasm - Internal.IL.ILImporter:ImportBasicBlock(Internal.IL.ILImporter+BasicBlock):this (Tier0-FullOpts)
       11150 (103.61 % of base) : 112514.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)
       11124 (103.40 % of base) : 326742.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 (Tier0-FullOpts)
        8270 (80.01 % of base) : 116521.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (FullOpts)
        8270 (80.01 % of base) : 336562.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier0-FullOpts)
        8124 (91.26 % of base) : 219751.dasm - SimpleArray_01.Test:Test1() (FullOpts)
        8124 (91.26 % of base) : 450718.dasm - SimpleArray_01.Test:Test1() (Tier0-FullOpts)
        7368 (88.09 % of base) : 444141.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier0-FullOpts)
        6976 (86.38 % of base) : 209250.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
        6972 (81.75 % of base) : 209240.dasm - ILCompiler.Win32Resources.ResourceData:WriteResources(ILCompiler.DependencyAnalysis.ISymbolNode,byref,byref):this (FullOpts)
        6966 (81.59 % of base) : 444117.dasm - ILCompiler.Win32Resources.ResourceData:WriteResources(ILCompiler.DependencyAnalysis.ISymbolNode,byref,byref):this (Tier0-FullOpts)
        6482 (95.07 % of base) : 132031.dasm - Program:TestEntryPoint() (Tier0-FullOpts)
        6016 (73.06 % of base) : 116463.dasm - Benchstone.BenchF.LLoops:Main1(int):this (FullOpts)
        6016 (73.06 % of base) : 336419.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier0-FullOpts)
        5994 (96.30 % of base) : 345547.dasm - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (Instrumented Tier1)
Top method improvements (bytes):
        -350 (-4.38 % of base) : 19636.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        -350 (-4.37 % of base) : 249406.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
        -126 (-18.92 % of base) : 82365.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementInt640:ValidateWithResult(long[],long[],long,System.String):this (FullOpts)
        -126 (-19.03 % of base) : 284627.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementInt640:ValidateWithResult(long[],long[],long,System.String):this (Tier0-FullOpts)
        -126 (-18.92 % of base) : 82435.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementUInt640:ValidateWithResult(ulong[],ulong[],ulong,System.String):this (FullOpts)
        -126 (-19.03 % of base) : 284715.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementUInt640:ValidateWithResult(ulong[],ulong[],ulong,System.String):this (Tier0-FullOpts)
        -120 (-51.72 % of base) : 115048.dasm - Benchstone.BenchF.BenchMk2:Bench():ubyte (FullOpts)
        -120 (-51.72 % of base) : 333272.dasm - Benchstone.BenchF.BenchMk2:Bench():ubyte (Tier0-FullOpts)
        -116 (-17.85 % of base) : 82325.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementDouble0:ValidateWithResult(double[],double[],double,System.String):this (FullOpts)
        -116 (-17.96 % of base) : 284578.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementDouble0:ValidateWithResult(double[],double[],double,System.String):this (Tier0-FullOpts)
         -98 (-42.98 % of base) : 115050.dasm - Benchstone.BenchF.BenchMrk:Bench():ubyte (FullOpts)
         -98 (-42.98 % of base) : 333274.dasm - Benchstone.BenchF.BenchMrk:Bench():ubyte (Tier0-FullOpts)
         -92 (-6.48 % of base) : 90385.dasm - JIT.HardwareIntrinsics.General._Vector64.VectorWidenTest__WidenInt64:ValidateResult(int[],long[],long[],System.String):this (FullOpts)
         -92 (-6.48 % of base) : 296990.dasm - JIT.HardwareIntrinsics.General._Vector64.VectorWidenTest__WidenInt64:ValidateResult(int[],long[],long[],System.String):this (Tier0-FullOpts)
         -86 (-13.11 % of base) : 66930.dasm - JIT.HardwareIntrinsics.General._Vector128_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:ValidateWithResult(double[],double[],System.String):this (FullOpts)
         -86 (-13.11 % of base) : 263495.dasm - JIT.HardwareIntrinsics.General._Vector128_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:ValidateWithResult(double[],double[],System.String):this (Tier0-FullOpts)
         -82 (-5.93 % of base) : 90453.dasm - JIT.HardwareIntrinsics.General._Vector64.VectorWidenTest__WidenUInt64:ValidateResult(uint[],ulong[],ulong[],System.String):this (FullOpts)
         -82 (-5.93 % of base) : 297088.dasm - JIT.HardwareIntrinsics.General._Vector64.VectorWidenTest__WidenUInt64:ValidateResult(uint[],ulong[],ulong[],System.String):this (Tier0-FullOpts)
         -76 (-11.45 % of base) : 263597.dasm - JIT.HardwareIntrinsics.General._Vector128_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:ValidateWithResult(ulong[],ulong[],System.String):this (Tier0-FullOpts)
         -76 (-5.92 % of base) : 89685.dasm - JIT.HardwareIntrinsics.General._Vector64.VectorBinaryOpTest__NarrowInt64:ValidateResult(long[],long[],int[],System.String):this (FullOpts)
Top method regressions (percentages):
        1274 (143.47 % of base) : 153227.dasm - struct1:Process2DArray(byref) (FullOpts)
        1274 (143.47 % of base) : 360620.dasm - struct1:Process2DArray(byref) (Tier0-FullOpts)
         254 (142.70 % of base) : 116501.dasm - Benchstone.MDBenchI.MDArray2:VerifyCopy(int[,,],int[,,]):ubyte (FullOpts)
         254 (142.70 % of base) : 336521.dasm - Benchstone.MDBenchI.MDArray2:VerifyCopy(int[,,],int[,,]):ubyte (Tier0-FullOpts)
        1484 (141.33 % of base) : 331388.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeTypeDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier0-FullOpts)
         838 (138.74 % of base) : 152537.dasm - class1:ProcessJagged2DArray(byref) (FullOpts)
         838 (138.74 % of base) : 359380.dasm - class1:ProcessJagged2DArray(byref) (Tier0-FullOpts)
         480 (134.83 % of base) : 309123.dasm - Chaos.A0:RecurseA0(int):this (Tier1)
         480 (134.83 % of base) : 309791.dasm - Chaos.A0:RecurseA0(int):this (Tier1)
         480 (134.83 % of base) : 309808.dasm - Chaos.A0A0:RecurseA0A0(int):this (Tier1)
         480 (134.83 % of base) : 309143.dasm - Chaos.A0A0:RecurseA0A0(int):this (Tier1)
         480 (134.83 % of base) : 309798.dasm - Chaos.A0A0A0A1`2[System.__Canon,System.__Canon]:RecurseA0A0A0A1(int):this (Tier1)
         480 (134.83 % of base) : 309131.dasm - Chaos.A0A0A0A1`2[System.__Canon,System.__Canon]:RecurseA0A0A0A1(int):this (Tier1)
         480 (134.83 % of base) : 309139.dasm - Chaos.A0A0A1:RecurseA0A0A1(int):this (Tier1)
         480 (134.83 % of base) : 309795.dasm - Chaos.A0A0A1A2`1[System.__Canon]:RecurseA0A0A1A2(int):this (Tier1)
         480 (134.83 % of base) : 309134.dasm - Chaos.A0A0A3`1[System.__Canon]:RecurseA0A0A3(int):this (Tier1)
         480 (134.83 % of base) : 309140.dasm - Chaos.A0A3:RecurseA0A3(int):this (Tier1)
         480 (134.83 % of base) : 309810.dasm - Chaos.A0A3:RecurseA0A3(int):this (Tier1)
         480 (134.83 % of base) : 309130.dasm - Chaos.A0A3A6`1[System.__Canon]:RecurseA0A3A6(int):this (Tier1)
         480 (134.83 % of base) : 309135.dasm - Chaos.A0A4`1[System.__Canon]:RecurseA0A4(int):this (Tier1)
Top method improvements (percentages):
         -38 (-54.29 % of base) : 169809.dasm - foo:Main():int (FullOpts)
         -38 (-54.29 % of base) : 381750.dasm - foo:Main():int (Tier0-FullOpts)
        -120 (-51.72 % of base) : 115048.dasm - Benchstone.BenchF.BenchMk2:Bench():ubyte (FullOpts)
        -120 (-51.72 % of base) : 333272.dasm - Benchstone.BenchF.BenchMk2:Bench():ubyte (Tier0-FullOpts)
         -98 (-42.98 % of base) : 115050.dasm - Benchstone.BenchF.BenchMrk:Bench():ubyte (FullOpts)
         -98 (-42.98 % of base) : 333274.dasm - Benchstone.BenchF.BenchMrk:Bench():ubyte (Tier0-FullOpts)
         -32 (-21.92 % of base) : 115070.dasm - Benchstone.BenchI.BubbleSort2:Bench():ubyte (FullOpts)
         -32 (-21.92 % of base) : 333304.dasm - Benchstone.BenchI.BubbleSort2:Bench():ubyte (Tier0-FullOpts)
        -126 (-19.03 % of base) : 284627.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementInt640:ValidateWithResult(long[],long[],long,System.String):this (Tier0-FullOpts)
        -126 (-19.03 % of base) : 284715.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementUInt640:ValidateWithResult(ulong[],ulong[],ulong,System.String):this (Tier0-FullOpts)
        -126 (-18.92 % of base) : 82365.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementInt640:ValidateWithResult(long[],long[],long,System.String):this (FullOpts)
        -126 (-18.92 % of base) : 82435.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementUInt640:ValidateWithResult(ulong[],ulong[],ulong,System.String):this (FullOpts)
        -116 (-17.96 % of base) : 284578.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementDouble0:ValidateWithResult(double[],double[],double,System.String):this (Tier0-FullOpts)
        -116 (-17.85 % of base) : 82325.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementDouble0:ValidateWithResult(double[],double[],double,System.String):this (FullOpts)
          -4 (-16.67 % of base) : 166566.dasm - Runtime_96591_2:Foo(int):int (FullOpts)
          -4 (-16.67 % of base) : 376364.dasm - Runtime_96591_2:Foo(int):int (Tier0-FullOpts)
         -34 (-14.53 % of base) : 24927.dasm - ValueNumberingUnorderedComparisonsOfConstants:TestDoubleComparisonsEvaluatingToFalse() (FullOpts)
         -34 (-14.53 % of base) : 256007.dasm - ValueNumberingUnorderedComparisonsOfConstants:TestDoubleComparisonsEvaluatingToFalse() (Tier0-FullOpts)
         -34 (-14.53 % of base) : 24928.dasm - ValueNumberingUnorderedComparisonsOfConstants:TestSingleComparisonsEvaluatingToFalse() (FullOpts)
         -34 (-14.53 % of base) : 256008.dasm - ValueNumberingUnorderedComparisonsOfConstants:TestSingleComparisonsEvaluatingToFalse() (Tier0-FullOpts)
  
libraries.crossgen2.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 36614296 (overridden on cmd)
Total bytes of diff: 39945648 (overridden on cmd)
Total bytes of delta: 3331352 (9.10 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       53942 : 5477.dasm (74.65 % of base)
       14998 : 160407.dasm (67.28 % of base)
       12816 : 67602.dasm (10.80 % of base)
       11066 : 36546.dasm (88.56 % of base)
        9628 : 100301.dasm (74.95 % of base)
        9260 : 36442.dasm (100.78 % of base)
        8108 : 29014.dasm (74.29 % of base)
        6798 : 55412.dasm (95.21 % of base)
        6384 : 98143.dasm (42.55 % of base)
        6070 : 13963.dasm (71.33 % of base)
        5160 : 61932.dasm (87.61 % of base)
        5084 : 189833.dasm (68.72 % of base)
        4470 : 181161.dasm (65.50 % of base)
        4384 : 28947.dasm (94.00 % of base)
        4366 : 55728.dasm (83.29 % of base)
        4364 : 103914.dasm (77.96 % of base)
        4264 : 4989.dasm (30.90 % of base)
        4242 : 98470.dasm (89.08 % of base)
        4196 : 29200.dasm (91.26 % of base)
        4108 : 98196.dasm (92.98 % of base)
Top file improvements (bytes):
        -342 : 193198.dasm (-4.92 % of base)
         -20 : 148625.dasm (-1.43 % of base)
         -14 : 152847.dasm (-4.17 % of base)
         -14 : 185234.dasm (-4.61 % of base)
         -14 : 84326.dasm (-4.37 % of base)
         -12 : 131460.dasm (-2.65 % of base)
         -10 : 128468.dasm (-3.65 % of base)
         -10 : 151034.dasm (-3.65 % of base)
         -10 : 163406.dasm (-3.31 % of base)
         -10 : 18403.dasm (-3.94 % of base)
         -10 : 129382.dasm (-1.96 % of base)
         -10 : 163782.dasm (-3.70 % of base)
          -8 : 17515.dasm (-4.76 % of base)
          -8 : 194794.dasm (-2.67 % of base)
          -8 : 17509.dasm (-4.76 % of base)
          -8 : 17510.dasm (-4.76 % of base)
          -8 : 17513.dasm (-4.76 % of base)
          -8 : 17514.dasm (-4.76 % of base)
          -8 : 61553.dasm (-1.69 % of base)
          -8 : 17508.dasm (-4.76 % of base)
86 total files with Code Size differences (23 improved, 63 regressed), 20 unchanged.
Top method regressions (bytes):
       53942 (74.65 % of base) : 5477.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (FullOpts)
       14998 (67.28 % of base) : 160407.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)
       12816 (10.80 % of base) : 67602.dasm - Microsoft.Diagnostics.Tracing.Parsers.ApplicationServerTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
       11066 (88.56 % of base) : 36546.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)
        9628 (74.95 % of base) : 100301.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureForASingleCandidate(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.Location,int,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],ubyte,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbol):this (FullOpts)
        9260 (100.78 % of base) : 36442.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)
        8108 (74.29 % of base) : 29014.dasm - System.Data.XmlTreeGen:HandleTable(System.Data.DataTable,System.Xml.XmlDocument,System.Xml.XmlElement,ubyte):System.Xml.XmlElement:this (FullOpts)
        6798 (95.21 % of base) : 55412.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)
        6384 (42.55 % of base) : 98143.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 (FullOpts)
        6070 (71.33 % of base) : 13963.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
        5160 (87.61 % of base) : 61932.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings:<GetUsingsAndDiagnostics>g__buildUsings|16_0(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax],Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,System.Nullable`1[ubyte],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings+UsingsAndDiagnostics:this (FullOpts)
        5084 (68.72 % of base) : 189833.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (FullOpts)
        4470 (65.50 % of base) : 181161.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitLift(int,System.Type,System.Linq.Expressions.MethodCallExpression,System.Linq.Expressions.ParameterExpression[],System.Linq.Expressions.Expression[]):this (FullOpts)
        4384 (94.00 % of base) : 28947.dasm - System.Data.RBTree`1[System.__Canon]:RBInsert(int,int,int,int,ubyte):int:this (FullOpts)
        4366 (83.29 % of base) : 55728.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (FullOpts)
        4364 (77.96 % of base) : 103914.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberFieldSymbol:Create(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.FieldDeclarationSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol+MembersAndInitializersBuilder,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag) (FullOpts)
        4264 (30.90 % of base) : 4989.dasm - Microsoft.FSharp.Linq.QueryModule:TransInner(int,ubyte,Microsoft.FSharp.Quotations.FSharpExpr):System.Tuple`2[Microsoft.FSharp.Linq.QueryModule+TransInnerResult,Microsoft.FSharp.Linq.RuntimeHelpers.Adapters+ConversionDescription] (FullOpts)
        4242 (89.08 % of base) : 98470.dasm - System.Xml.Schema.SchemaCollectionPreprocessor:PreprocessRedefine(System.Xml.Schema.XmlSchemaRedefine):this (FullOpts)
        4196 (91.26 % of base) : 29200.dasm - System.Data.RBTree`1[int]:RBInsert(int,int,int,int,ubyte):int:this (FullOpts)
        4108 (92.98 % of base) : 98196.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteMemberElementsIf(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[],System.Xml.Serialization.XmlSerializationReaderCodeGen+Member,System.String,System.String):this (FullOpts)
Top method improvements (bytes):
        -342 (-4.92 % of base) : 193198.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -20 (-1.43 % of base) : 148625.dasm - Newtonsoft.Json.Converters.XmlNodeConverter:ReadAttributeElements(Newtonsoft.Json.JsonReader,System.Xml.XmlNamespaceManager):System.Collections.Generic.Dictionary`2[System.String,System.String]:this (FullOpts)
         -14 (-4.37 % of base) : 84326.dasm - Microsoft.Diagnostics.Tracing.Etlx.TraceEvents+<ByEventType>d__0`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -14 (-4.61 % of base) : 185234.dasm - R2RTest.CompileSerpCommand+<FilterAssembliesNoSimpleNameDuplicates>d__32:MoveNext():ubyte:this (FullOpts)
         -14 (-4.17 % of base) : 152847.dasm - System.Reflection.Context.Custom.AttributeUtils+<FilterCustomAttributes>d__12:MoveNext():ubyte:this (FullOpts)
         -12 (-2.65 % of base) : 131460.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+ArrayTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+ArrayTypeKey,byref):ubyte:this (FullOpts)
         -10 (-3.31 % of base) : 163406.dasm - System.Diagnostics.ProcessManager+<EnumerateProcessIds>d__13:MoveNext():ubyte:this (FullOpts)
         -10 (-1.96 % of base) : 129382.dasm - System.IO.Compression.Zip64ExtraField:GetJustZip64Block(System.IO.Stream,ubyte,ubyte,ubyte,ubyte):System.IO.Compression.Zip64ExtraField (FullOpts)
         -10 (-3.65 % of base) : 128468.dasm - System.Reflection.TypeLoading.RoAssembly+<get_ExportedTypes>d__33:MoveNext():ubyte:this (FullOpts)
         -10 (-3.65 % of base) : 151034.dasm - System.Reflection.TypeLoading.RoAssembly+<get_ExportedTypes>d__33:MoveNext():ubyte:this (FullOpts)
         -10 (-3.70 % of base) : 163782.dasm - System.Security.Claims.ClaimsIdentity+<<FindAll>g__Core|59_0>d:MoveNext():ubyte:this (FullOpts)
         -10 (-3.94 % of base) : 18403.dasm - System.Threading.Tasks.ThreadPoolTaskScheduler+<FilterTasksFromWorkItems>d__6:MoveNext():ubyte:this (FullOpts)
          -8 (-1.69 % of base) : 61553.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<Microsoft-Cci-ITypeDefinition-GetEvents>d__29:MoveNext():ubyte:this (FullOpts)
          -8 (-4.76 % of base) : 17515.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -8 (-4.76 % of base) : 17509.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -8 (-4.76 % of base) : 17510.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -8 (-4.76 % of base) : 17513.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -8 (-4.76 % of base) : 17514.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -8 (-4.76 % of base) : 17508.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -8 (-4.76 % of base) : 17511.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
Top method regressions (percentages):
         220 (118.28 % of base) : 28443.dasm - System.Data.RBTree`1[int]:Search(int):int:this (FullOpts)
        1238 (116.57 % of base) : 172479.dasm - System.Reflection.Emit.DllImportData:Create(System.Reflection.Emit.CustomAttributeInfo,byref):System.Reflection.Emit.DllImportData (FullOpts)
         238 (112.26 % of base) : 146314.dasm - Newtonsoft.Json.JsonTextReader:EatWhitespace():this (FullOpts)
         258 (111.21 % of base) : 28807.dasm - System.Data.Select:Sort(int,int):this (FullOpts)
        1850 (108.44 % of base) : 127876.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
         510 (108.05 % of base) : 31302.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder:<ExpressionOfTypeMatchesPatternTypeForLearningFromSuccessfulTypeTest>g__isRuntimeSimilar|42_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):ubyte (FullOpts)
         216 (108.00 % of base) : 28194.dasm - System.Data.Index:FindNodeByKeyRecord(int):int:this (FullOpts)
         196 (107.69 % of base) : 102050.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AttributeDataExtensions:IndexOfAttribute(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData],Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.AttributeDescription):int (FullOpts)
        1850 (106.08 % of base) : 150523.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
        1358 (104.30 % of base) : 140384.dasm - System.Runtime.Caching.UsageBucket:Reduce():this (FullOpts)
        1104 (103.76 % of base) : 153369.dasm - System.Collections.Generic.SegmentedList`1[ubyte]:QuickSort(long,long,System.Collections.Generic.IComparer`1[ubyte]):this (FullOpts)
         170 (103.66 % of base) : 29370.dasm - System.Data.Common.DbCommandBuilder+ParameterNames:EliminateConflictingNames():this (FullOpts)
         170 (103.66 % of base) : 15126.dasm - System.Random+XoshiroImpl:NextInt64():long:this (FullOpts)
        3104 (103.60 % of base) : 29580.dasm - System.Data.RBTree`1[int]:RBDeleteFixup(int,int,int,int):int:this (FullOpts)
        3104 (103.60 % of base) : 29538.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteFixup(int,int,int,int):int:this (FullOpts)
        3036 (103.20 % of base) : 190770.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
         648 (103.18 % of base) : 60643.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer+InterpolatedStringScanner:ScanFormatSpecifier(int):this (FullOpts)
          82 (102.50 % of base) : 175378.dasm - System.Number:<FormatBigIntegerToBinary>g__AppendByte|15_0(byref,ubyte,int) (FullOpts)
        1740 (102.47 % of base) : 47022.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:IsTerminator():ubyte:this (FullOpts)
         360 (101.69 % of base) : 95551.dasm - System.Xml.Schema.XmlSchemaValidator:CheckForwardRefs():this (FullOpts)
Top method improvements (percentages):
        -342 (-4.92 % of base) : 193198.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
          -8 (-4.76 % of base) : 17515.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -8 (-4.76 % of base) : 17509.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -8 (-4.76 % of base) : 17510.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -8 (-4.76 % of base) : 17513.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -8 (-4.76 % of base) : 17514.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -8 (-4.76 % of base) : 17508.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -8 (-4.76 % of base) : 17511.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -8 (-4.76 % of base) : 17512.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
         -14 (-4.61 % of base) : 185234.dasm - R2RTest.CompileSerpCommand+<FilterAssembliesNoSimpleNameDuplicates>d__32:MoveNext():ubyte:this (FullOpts)
         -14 (-4.37 % of base) : 84326.dasm - Microsoft.Diagnostics.Tracing.Etlx.TraceEvents+<ByEventType>d__0`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -14 (-4.17 % of base) : 152847.dasm - System.Reflection.Context.Custom.AttributeUtils+<FilterCustomAttributes>d__12:MoveNext():ubyte:this (FullOpts)
         -10 (-3.94 % of base) : 18403.dasm - System.Threading.Tasks.ThreadPoolTaskScheduler+<FilterTasksFromWorkItems>d__6:MoveNext():ubyte:this (FullOpts)
         -10 (-3.70 % of base) : 163782.dasm - System.Security.Claims.ClaimsIdentity+<<FindAll>g__Core|59_0>d:MoveNext():ubyte:this (FullOpts)
         -10 (-3.65 % of base) : 128468.dasm - System.Reflection.TypeLoading.RoAssembly+<get_ExportedTypes>d__33:MoveNext():ubyte:this (FullOpts)
         -10 (-3.65 % of base) : 151034.dasm - System.Reflection.TypeLoading.RoAssembly+<get_ExportedTypes>d__33:MoveNext():ubyte:this (FullOpts)
         -10 (-3.31 % of base) : 163406.dasm - System.Diagnostics.ProcessManager+<EnumerateProcessIds>d__13:MoveNext():ubyte:this (FullOpts)
          -8 (-2.67 % of base) : 194794.dasm - System.Linq.Enumerable+<OfTypeIterator>d__64`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -12 (-2.65 % of base) : 131460.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+ArrayTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+ArrayTypeKey,byref):ubyte:this (FullOpts)
          -4 (-2.20 % of base) : 63244.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:GetUnificationUseSiteDiagnosticRecursive[System.__Canon](byref,System.Collections.Immutable.ImmutableArray`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbol,byref):ubyte (FullOpts)
  
libraries.pmi.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 48572466 (overridden on cmd)
Total bytes of diff: 53574032 (overridden on cmd)
Total bytes of delta: 5001566 (10.30 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       17634 : 98122.dasm (89.02 % of base)
       15672 : 195248.dasm (68.85 % of base)
       13828 : 98081.dasm (102.32 % of base)
       11180 : 82284.dasm (103.98 % of base)
        8916 : 59513.dasm (86.90 % of base)
        8494 : 59407.dasm (99.00 % of base)
        7366 : 256421.dasm (87.86 % of base)
        6966 : 256017.dasm (81.40 % of base)
        6718 : 254769.dasm (107.59 % of base)
        6670 : 89458.dasm (91.90 % of base)
        6644 : 102339.dasm (89.40 % of base)
        6062 : 201437.dasm (89.23 % of base)
        5744 : 98071.dasm (93.10 % of base)
        5656 : 98397.dasm (74.62 % of base)
        5518 : 254771.dasm (110.98 % of base)
        5200 : 230061.dasm (68.69 % of base)
        5058 : 193748.dasm (113.71 % of base)
        5038 : 82635.dasm (82.29 % of base)
        4790 : 23590.dasm (104.54 % of base)
        4784 : 82296.dasm (100.89 % of base)
Top file improvements (bytes):
        -302 : 92.dasm (-3.85 % of base)
        -168 : 93486.dasm (-4.03 % of base)
        -132 : 264386.dasm (-16.71 % of base)
         -52 : 58568.dasm (-6.28 % of base)
         -52 : 199123.dasm (-10.32 % of base)
         -24 : 272874.dasm (-14.12 % of base)
         -22 : 255385.dasm (-2.07 % of base)
         -20 : 257547.dasm (-2.07 % of base)
         -20 : 209249.dasm (-3.65 % of base)
         -18 : 202710.dasm (-3.75 % of base)
         -14 : 234808.dasm (-1.79 % of base)
         -12 : 220191.dasm (-1.95 % of base)
         -12 : 232120.dasm (-2.42 % of base)
         -10 : 162704.dasm (-2.82 % of base)
         -10 : 174766.dasm (-2.31 % of base)
         -10 : 184622.dasm (-3.57 % of base)
         -10 : 199773.dasm (-4.17 % of base)
         -10 : 251698.dasm (-4.17 % of base)
         -10 : 278487.dasm (-4.03 % of base)
         -10 : 219236.dasm (-3.38 % of base)
88 total files with Code Size differences (26 improved, 62 regressed), 20 unchanged.
Top method regressions (bytes):
       17634 (89.02 % of base) : 98122.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureForASingleCandidate(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.Location,int,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],ubyte,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbol):this (FullOpts)
       15672 (68.85 % of base) : 195248.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)
       13828 (102.32 % of base) : 98081.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindFieldAndPropertyInitializers(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.FieldOrPropertyInitializer]],Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedInteractiveInitializerMethod,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundInitializer] (FullOpts)
       11180 (103.98 % of base) : 82284.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)
        8916 (86.90 % of base) : 59513.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)
        8494 (99.00 % of base) : 59407.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)
        7366 (87.86 % of base) : 256421.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
        6966 (81.40 % of base) : 256017.dasm - ILCompiler.Win32Resources.ResourceData:WriteResources(ILCompiler.DependencyAnalysis.ISymbolNode,byref,byref):this (FullOpts)
        6718 (107.59 % of base) : 254769.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (FullOpts)
        6670 (91.90 % of base) : 89458.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings:<GetUsingsAndDiagnostics>g__buildUsings|16_0(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax],Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,System.Nullable`1[ubyte],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings+UsingsAndDiagnostics:this (FullOpts)
        6644 (89.40 % of base) : 102339.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberFieldSymbol:Create(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.FieldDeclarationSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol+MembersAndInitializersBuilder,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag) (FullOpts)
        6062 (89.23 % of base) : 201437.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
        5744 (93.10 % of base) : 98071.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindArrayBounds(Microsoft.CodeAnalysis.VisualBasic.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.VisualBasic.Binder+DimensionSize[],ubyte):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression]:this (FullOpts)
        5656 (74.62 % of base) : 98397.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)
        5518 (110.98 % of base) : 254771.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByReverseImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (FullOpts)
        5200 (68.69 % of base) : 230061.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (FullOpts)
        5058 (113.71 % of base) : 193748.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
        5038 (82.29 % of base) : 82635.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (FullOpts)
        4790 (104.54 % of base) : 23590.dasm - System.SpanHelpers:IndexOfAny[System.Numerics.Vector`1[float]](byref,System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],int):int (FullOpts)
        4784 (100.89 % of base) : 82296.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (FullOpts)
Top method improvements (bytes):
        -302 (-3.85 % of base) : 92.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        -168 (-4.03 % of base) : 93486.dasm - System.Data.RBTree`1[ubyte]:RBDeleteX(int,int,int):int:this (FullOpts)
        -132 (-16.71 % of base) : 264386.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreateParameterizedConstructor(System.Reflection.ConstructorInfo,System.Type,System.Type,System.Type,System.Type):System.Reflection.Emit.DynamicMethod (FullOpts)
         -52 (-10.32 % of base) : 199123.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[System.Numerics.Vector`1[float],System.__Canon]:TryGetValue(System.Numerics.Vector`1[float],byref):ubyte:this (FullOpts)
         -52 (-6.28 % of base) : 58568.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],byref,ubyte,ubyte):System.Runtime.CompilerServices.StrongBox`1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]:this (FullOpts)
         -24 (-14.12 % of base) : 272874.dasm - Microsoft.Build.Execution.TaskRegistry:GetMatchingRegistration(System.String,System.Collections.Generic.List`1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord],System.String,System.Collections.Generic.IDictionary`2[System.String,System.String],Microsoft.Build.BackEnd.Logging.TargetLoggingContext,Microsoft.Build.Construction.ElementLocation):Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord:this (FullOpts)
         -22 (-2.07 % of base) : 255385.dasm - ILCompiler.DisplayNameHelpers:GetParameterDisplayName(Internal.TypeSystem.Ecma.EcmaMethod,int):System.String (FullOpts)
         -20 (-2.07 % of base) : 257547.dasm - ILCompiler.DependencyAnalysis.NodeFactory+<EnumerateCompiledMethods>d__80:MoveNext():ubyte:this (FullOpts)
         -20 (-3.65 % of base) : 209249.dasm - Newtonsoft.Json.Utilities.ConvertUtils:CreateCastConverter(Newtonsoft.Json.Utilities.StructMultiKey`2[System.Type,System.Type]):System.Func`2[System.Object,System.Object] (FullOpts)
         -18 (-3.75 % of base) : 202710.dasm - System.IO.Compression.Zip64ExtraField:GetJustZip64Block(System.IO.Stream,ubyte,ubyte,ubyte,ubyte):System.IO.Compression.Zip64ExtraField (FullOpts)
         -14 (-1.79 % of base) : 234808.dasm - System.Collections.Immutable.ImmutableList`1+Node[double]:Find(System.Predicate`1[double]):double:this (FullOpts)
         -12 (-1.95 % of base) : 220191.dasm - System.Collections.Generic.SortedSet`1[System.__Canon]:SetEquals(System.Collections.Generic.IEnumerable`1[System.__Canon]):ubyte:this (FullOpts)
         -12 (-2.42 % of base) : 232120.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:IsProperSubsetOf(System.Collections.Generic.IEnumerable`1[System.__Canon],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.__Canon]):ubyte (FullOpts)
         -10 (-4.17 % of base) : 199773.dasm - Internal.TypeSystem.TypeDesc+<GetVirtualMethods>d__80:MoveNext():ubyte:this (FullOpts)
         -10 (-2.82 % of base) : 162704.dasm - Microsoft.CodeAnalysis.DiagnosticBag+<AsEnumerableFiltered>d__16:MoveNext():ubyte:this (FullOpts)
         -10 (-2.31 % of base) : 174766.dasm - Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext:MatchPatternContexts[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float],System.Func`3[Microsoft.Extensions.FileSystemGlobbing.Internal.IPatternContext,System.Numerics.Vector`1[float],Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult]):Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult:this (FullOpts)
         -10 (-3.57 % of base) : 184622.dasm - R2RTest.CompileSerpCommand+<FilterAssembliesNoSimpleNameDuplicates>d__32:MoveNext():ubyte:this (FullOpts)
         -10 (-3.38 % of base) : 219236.dasm - System.Reflection.Context.Custom.AttributeUtils+<FilterCustomAttributes>d__12:MoveNext():ubyte:this (FullOpts)
         -10 (-4.03 % of base) : 278487.dasm - System.Reflection.TypeLoading.RoAssembly+<get_ExportedTypes>d__33:MoveNext():ubyte:this (FullOpts)
         -10 (-4.03 % of base) : 223808.dasm - System.Reflection.TypeLoading.RoAssembly+<get_ExportedTypes>d__33:MoveNext():ubyte:this (FullOpts)
Top method regressions (percentages):
         368 (131.43 % of base) : 169129.dasm - System.Linq.Parallel.FixedMaxHeap`1[ubyte]:HeapifyRoot():this (FullOpts)
        2046 (126.92 % of base) : 78816.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEDeltaAssemblyBuilder:GetAnonymousDelegateMapFromMetadata(System.Reflection.Metadata.MetadataReader,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.MetadataDecoder):System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Emit.SynthesizedDelegateKey,Microsoft.CodeAnalysis.Emit.SynthesizedDelegateValue] (FullOpts)
         210 (120.69 % of base) : 271804.dasm - Microsoft.Build.Evaluation.Scanner:SkipSimpleStringChars():this (FullOpts)
         486 (119.12 % of base) : 199673.dasm - Internal.TypeSystem.Ecma.EcmaSignatureParser:ParseTypeCodeImpl(ubyte):ubyte:this (FullOpts)
         200 (119.05 % of base) : 93587.dasm - System.Data.RBTree`1[long]:Search(long):int:this (FullOpts)
         170 (118.06 % of base) : 72149.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (FullOpts)
        3972 (117.72 % of base) : 210387.dasm - Newtonsoft.Json.Schema.JsonSchemaBuilder:ProcessSchemaProperties(Newtonsoft.Json.Linq.JObject):this (FullOpts)
         462 (117.26 % of base) : 93572.dasm - System.Data.RBTree`1[System.Numerics.Vector`1[float]]:SearchSubTree(int,System.Numerics.Vector`1[float]):int:this (FullOpts)
          70 (116.67 % of base) : 161526.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (FullOpts)
         446 (116.15 % of base) : 187566.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeLocalConstantTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
        1400 (115.13 % of base) : 171307.dasm - System.Runtime.Caching.UsageBucket:Reduce():this (FullOpts)
        1802 (115.07 % of base) : 151879.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (FullOpts)
         906 (114.68 % of base) : 216837.dasm - System.Linq.EnumerableSorter`2[System.__Canon,System.Nullable`1[int]]:PartialQuickSort(int[],int,int,int,int):this (FullOpts)
         906 (114.68 % of base) : 216847.dasm - System.Linq.EnumerableSorter`2[ubyte,System.Nullable`1[int]]:PartialQuickSort(int[],int,int,int,int):this (FullOpts)
        1096 (114.64 % of base) : 226909.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
         564 (114.63 % of base) : 91349.dasm - System.Data.XSDSchema:HandleRelations(System.Xml.Schema.XmlSchemaAnnotation,ubyte):this (FullOpts)
         452 (114.14 % of base) : 265535.dasm - System.Net.HttpListenerRequest+Helpers:FillFromString(System.Collections.Specialized.NameValueCollection,System.String,ubyte,System.Text.Encoding) (FullOpts)
        5058 (113.71 % of base) : 193748.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
         336 (113.51 % of base) : 208628.dasm - Newtonsoft.Json.JsonTextReader:EatWhitespace():this (FullOpts)
         142 (112.70 % of base) : 153526.dasm - Microsoft.CodeAnalysis.GreenNode:GetLastTerminal():Microsoft.CodeAnalysis.GreenNode:this (FullOpts)
Top method improvements (percentages):
        -132 (-16.71 % of base) : 264386.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreateParameterizedConstructor(System.Reflection.ConstructorInfo,System.Type,System.Type,System.Type,System.Type):System.Reflection.Emit.DynamicMethod (FullOpts)
         -24 (-14.12 % of base) : 272874.dasm - Microsoft.Build.Execution.TaskRegistry:GetMatchingRegistration(System.String,System.Collections.Generic.List`1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord],System.String,System.Collections.Generic.IDictionary`2[System.String,System.String],Microsoft.Build.BackEnd.Logging.TargetLoggingContext,Microsoft.Build.Construction.ElementLocation):Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord:this (FullOpts)
         -52 (-10.32 % of base) : 199123.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[System.Numerics.Vector`1[float],System.__Canon]:TryGetValue(System.Numerics.Vector`1[float],byref):ubyte:this (FullOpts)
         -52 (-6.28 % of base) : 58568.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],byref,ubyte,ubyte):System.Runtime.CompilerServices.StrongBox`1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]:this (FullOpts)
         -10 (-4.17 % of base) : 199773.dasm - Internal.TypeSystem.TypeDesc+<GetVirtualMethods>d__80:MoveNext():ubyte:this (FullOpts)
         -10 (-4.17 % of base) : 251698.dasm - System.Security.Claims.ClaimsIdentity+<<FindAll>g__Core|59_0>d:MoveNext():ubyte:this (FullOpts)
          -6 (-4.05 % of base) : 148129.dasm - Roslyn.Utilities.PathUtilities:TrimTrailingSeparators(System.String):System.String (FullOpts)
         -10 (-4.03 % of base) : 278487.dasm - System.Reflection.TypeLoading.RoAssembly+<get_ExportedTypes>d__33:MoveNext():ubyte:this (FullOpts)
         -10 (-4.03 % of base) : 223808.dasm - System.Reflection.TypeLoading.RoAssembly+<get_ExportedTypes>d__33:MoveNext():ubyte:this (FullOpts)
        -168 (-4.03 % of base) : 93486.dasm - System.Data.RBTree`1[ubyte]:RBDeleteX(int,int,int):int:this (FullOpts)
          -4 (-4.00 % of base) : 168454.dasm - System.Linq.Parallel.ElementAtQueryOperator`1+ElementAtQueryOperatorEnumerator[System.__Canon]:MoveNext(byref,byref):ubyte:this (FullOpts)
          -4 (-4.00 % of base) : 168457.dasm - System.Linq.Parallel.ElementAtQueryOperator`1+ElementAtQueryOperatorEnumerator[ubyte]:MoveNext(byref,byref):ubyte:this (FullOpts)
        -302 (-3.85 % of base) : 92.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -18 (-3.75 % of base) : 202710.dasm - System.IO.Compression.Zip64ExtraField:GetJustZip64Block(System.IO.Stream,ubyte,ubyte,ubyte,ubyte):System.IO.Compression.Zip64ExtraField (FullOpts)
         -20 (-3.65 % of base) : 209249.dasm - Newtonsoft.Json.Utilities.ConvertUtils:CreateCastConverter(Newtonsoft.Json.Utilities.StructMultiKey`2[System.Type,System.Type]):System.Func`2[System.Object,System.Object] (FullOpts)
         -10 (-3.57 % of base) : 184622.dasm - R2RTest.CompileSerpCommand+<FilterAssembliesNoSimpleNameDuplicates>d__32:MoveNext():ubyte:this (FullOpts)
         -10 (-3.38 % of base) : 219236.dasm - System.Reflection.Context.Custom.AttributeUtils+<FilterCustomAttributes>d__12:MoveNext():ubyte:this (FullOpts)
         -10 (-2.82 % of base) : 162704.dasm - Microsoft.CodeAnalysis.DiagnosticBag+<AsEnumerableFiltered>d__16:MoveNext():ubyte:this (FullOpts)
          -2 (-2.56 % of base) : 198637.dasm - Internal.TypeSystem.InstantiatedType:IsCanonicalSubtype(int):ubyte:this (FullOpts)
          -8 (-2.52 % of base) : 277326.dasm - Microsoft.Build.Execution.ProjectItemInstance+TaskItem+<EnumerateMetadata>d__41:MoveNext():ubyte:this (FullOpts)
  
libraries_tests.run.linux.arm.Release.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 243987636 (overridden on cmd)
Total bytes of diff: 267313590 (overridden on cmd)
Total bytes of delta: 23325954 (9.56 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       19798 : 287266.dasm (38.00 % of base)
       19672 : 292470.dasm (37.51 % of base)
       14832 : 187975.dasm (66.42 % of base)
       11866 : 565573.dasm (73.50 % of base)
       11146 : 16005.dasm (103.57 % of base)
       11112 : 142361.dasm (103.79 % of base)
       11010 : 154397.dasm (103.93 % of base)
       10000 : 703129.dasm (99.23 % of base)
        9972 : 327828.dasm (80.06 % of base)
        9942 : 366957.dasm (79.68 % of base)
        9806 : 245167.dasm (79.67 % of base)
        9806 : 499671.dasm (79.67 % of base)
        9806 : 699517.dasm (79.67 % of base)
        9806 : 380958.dasm (79.67 % of base)
        9806 : 483064.dasm (79.67 % of base)
        9806 : 94085.dasm (79.67 % of base)
        9806 : 252441.dasm (79.67 % of base)
        9806 : 474381.dasm (79.67 % of base)
        9786 : 404398.dasm (79.42 % of base)
        9776 : 562686.dasm (79.29 % of base)
Top file improvements (bytes):
        -302 : 783.dasm (-3.85 % of base)
        -168 : 255968.dasm (-4.03 % of base)
        -156 : 204443.dasm (-2.76 % of base)
        -136 : 205148.dasm (-2.50 % of base)
         -92 : 662215.dasm (-6.77 % of base)
         -86 : 177458.dasm (-7.39 % of base)
         -86 : 89073.dasm (-5.37 % of base)
         -84 : 172668.dasm (-9.40 % of base)
         -82 : 660930.dasm (-7.65 % of base)
         -78 : 578257.dasm (-9.47 % of base)
         -78 : 680125.dasm (-13.45 % of base)
         -78 : 725201.dasm (-9.47 % of base)
         -76 : 69683.dasm (-9.18 % of base)
         -76 : 271281.dasm (-9.25 % of base)
         -74 : 496709.dasm (-8.96 % of base)
         -74 : 12041.dasm (-8.96 % of base)
         -74 : 199161.dasm (-8.94 % of base)
         -74 : 246617.dasm (-8.96 % of base)
         -74 : 374335.dasm (-9.61 % of base)
         -74 : 385561.dasm (-9.61 % of base)
99 total files with Code Size differences (37 improved, 62 regressed), 20 unchanged.
Top method regressions (bytes):
       19798 (38.00 % of base) : 287266.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (Tier0-FullOpts)
       19672 (37.51 % of base) : 292470.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach007.freach007.Test:MainMethod():int (Tier0-FullOpts)
       14832 (66.42 % of base) : 187975.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0-FullOpts)
       11866 (73.50 % of base) : 565573.dasm - System.Security.Cryptography.Xml.DSAKeyValue:LoadXml(System.Xml.XmlElement):this (Tier1)
       11146 (103.57 % of base) : 16005.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 (Tier0-FullOpts)
       11112 (103.79 % of base) : 142361.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 (Tier0-FullOpts)
       11010 (103.93 % of base) : 154397.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 (Tier0-FullOpts)
       10000 (99.23 % of base) : 703129.dasm - System.Threading.Tasks.Dataflow.Tests.DebugAttributeTests:TestDebuggerDisplaysAndTypeProxies():this (Tier0-FullOpts)
        9972 (80.06 % of base) : 327828.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9942 (79.68 % of base) : 366957.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9806 (79.67 % of base) : 245167.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9806 (79.67 % of base) : 499671.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9806 (79.67 % of base) : 699517.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9806 (79.67 % of base) : 380958.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9806 (79.67 % of base) : 483064.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9806 (79.67 % of base) : 94085.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9806 (79.67 % of base) : 252441.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9806 (79.67 % of base) : 474381.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9786 (79.42 % of base) : 404398.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9776 (79.29 % of base) : 562686.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
Top method improvements (bytes):
        -302 (-3.85 % of base) : 783.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
        -168 (-4.03 % of base) : 255968.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (Tier0-FullOpts)
        -156 (-2.76 % of base) : 204443.dasm - System.Collections.Frozen.Tests.FrozenSet_Generic_Tests`1[int]:ComparingWithOtherSets(int):this (Tier0-FullOpts)
        -136 (-2.50 % of base) : 205148.dasm - System.Collections.Frozen.Tests.FrozenSet_Generic_Tests`1[System.__Canon]:ComparingWithOtherSets(int):this (Tier0-FullOpts)
         -92 (-6.77 % of base) : 662215.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindMethodGroup(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
         -86 (-7.39 % of base) : 177458.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindMethodGroup(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
         -86 (-5.37 % of base) : 89073.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindMethodGroup(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
         -84 (-9.40 % of base) : 172668.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindMemberAccess(Microsoft.CodeAnalysis.CSharp.Syntax.MemberAccessExpressionSyntax,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
         -82 (-7.65 % of base) : 660930.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindMemberAccess(Microsoft.CodeAnalysis.CSharp.Syntax.MemberAccessExpressionSyntax,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
         -78 (-9.47 % of base) : 578257.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -78 (-9.47 % of base) : 725201.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -78 (-13.45 % of base) : 680125.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex28884_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -76 (-9.18 % of base) : 69683.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -76 (-9.25 % of base) : 271281.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -74 (-8.96 % of base) : 496709.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -74 (-8.96 % of base) : 12041.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -74 (-8.94 % of base) : 199161.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -74 (-8.96 % of base) : 246617.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -74 (-9.61 % of base) : 374335.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -74 (-9.61 % of base) : 385561.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
Top method regressions (percentages):
        4400 (122.29 % of base) : 678637.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex28215_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         668 (120.14 % of base) : 362972.dasm - System.SpanHelpers:NonPackedIndexOfAnyValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,ubyte,int):int (Tier1)
         170 (118.06 % of base) : 152174.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (Tier0-FullOpts)
         170 (118.06 % of base) : 20223.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (Tier0-FullOpts)
        1802 (116.71 % of base) : 11502.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (Tier0-FullOpts)
        1802 (116.71 % of base) : 139798.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (Tier0-FullOpts)
        1802 (116.71 % of base) : 153263.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (Tier0-FullOpts)
          70 (116.67 % of base) : 162792.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (Tier0-FullOpts)
          70 (116.67 % of base) : 169603.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (Tier0-FullOpts)
          70 (116.67 % of base) : 147493.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (Tier0-FullOpts)
         436 (116.58 % of base) : 708823.dasm - System.Collections.Generic.ArraySortHelper`1[int]:InsertionSort(System.Span`1[int],System.Comparison`1[int]) (Tier1)
         594 (116.47 % of base) : 614363.dasm - System.SpanHelpers:NonPackedIndexOfAnyValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,ubyte,int):int (Tier1)
         594 (116.47 % of base) : 650018.dasm - System.SpanHelpers:NonPackedIndexOfAnyValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,ubyte,int):int (Tier1)
         446 (116.15 % of base) : 466601.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeLocalConstantTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier0-FullOpts)
        1400 (115.13 % of base) : 473229.dasm - System.Runtime.Caching.UsageBucket:Reduce():this (Tier0-FullOpts)
         452 (114.14 % of base) : 375957.dasm - System.Net.HttpListenerRequest+Helpers:FillFromString(System.Collections.Specialized.NameValueCollection,System.String,ubyte,System.Text.Encoding) (Tier0-FullOpts)
         422 (114.05 % of base) : 573480.dasm - System.Collections.Generic.ArraySortHelper`1[int]:InsertionSort(System.Span`1[int],System.Comparison`1[int]) (Tier1)
         422 (114.05 % of base) : 600040.dasm - System.Collections.Generic.ArraySortHelper`1[int]:InsertionSort(System.Span`1[int],System.Comparison`1[int]) (Tier1)
        5084 (113.74 % of base) : 251700.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (Tier0-FullOpts)
         420 (113.51 % of base) : 337685.dasm - System.Collections.Generic.ArraySortHelper`1[int]:InsertionSort(System.Span`1[int],System.Comparison`1[int]) (Tier1)
Top method improvements (percentages):
         -50 (-20.00 % of base) : 47475.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.FieldDeclarationSyntax:get_Modifiers():Microsoft.CodeAnalysis.SyntaxTokenList:this (Tier1)
         -48 (-19.20 % of base) : 660449.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.FieldDeclarationSyntax:get_Modifiers():Microsoft.CodeAnalysis.SyntaxTokenList:this (Tier1)
         -46 (-18.70 % of base) : 88843.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.FieldDeclarationSyntax:get_Modifiers():Microsoft.CodeAnalysis.SyntaxTokenList:this (Tier1)
         -48 (-15.38 % of base) : 183540.dasm - Microsoft.CodeAnalysis.Syntax.SyntaxList+WithTwoChildren:GetNodeSlot(int):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
         -78 (-13.45 % of base) : 680125.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex28884_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -44 (-13.10 % of base) : 70505.dasm - Microsoft.CodeAnalysis.Syntax.SyntaxList+WithTwoChildren:GetNodeSlot(int):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
         -14 (-10.94 % of base) : 415107.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[byte]:NextRandom():byte:this (Tier1)
         -14 (-10.94 % of base) : 411285.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:NextRandom():ubyte:this (Tier1)
         -34 (-10.83 % of base) : 182495.dasm - Microsoft.CodeAnalysis.SyntaxNode:GetRedElementIfNotToken(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
         -44 (-10.78 % of base) : 453229.dasm - System.Xml.XmlConvertTests.EncodeDecodeTests:v3():int:this (Tier0-FullOpts)
         -34 (-10.24 % of base) : 180652.dasm - Microsoft.CodeAnalysis.SyntaxNode:GetRedElementIfNotToken(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
         -34 (-10.24 % of base) : 181908.dasm - Microsoft.CodeAnalysis.SyntaxNode:GetRedElementIfNotToken(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
         -44 (-10.00 % of base) : 693561.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.NameColonSyntax:Update(Microsoft.CodeAnalysis.CSharp.Syntax.IdentifierNameSyntax,Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.NameColonSyntax:this (Tier1)
         -66 (-9.91 % of base) : 694774.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex33121_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -74 (-9.61 % of base) : 374335.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -74 (-9.61 % of base) : 385561.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -66 (-9.51 % of base) : 239342.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -64 (-9.47 % of base) : 391361.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -64 (-9.47 % of base) : 396623.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
         -78 (-9.47 % of base) : 578257.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (Tier1)
  
librariestestsnotieredcompilation.run.linux.arm.Release.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 93237428 (overridden on cmd)
Total bytes of diff: 99689628 (overridden on cmd)
Total bytes of delta: 6452200 (6.92 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       19768 : 114704.dasm (37.94 % of base)
       19734 : 105613.dasm (37.59 % of base)
       15686 : 59632.dasm (68.98 % of base)
       11146 : 6767.dasm (103.57 % of base)
       11032 : 44511.dasm (103.57 % of base)
       11032 : 49689.dasm (103.41 % of base)
        9994 : 298299.dasm (98.54 % of base)
        9776 : 54348.dasm (86.68 % of base)
        9126 : 55192.dasm (88.24 % of base)
        6656 : 6217.dasm (92.19 % of base)
        5818 : 269203.dasm (85.61 % of base)
        5790 : 23143.dasm (70.16 % of base)
        5760 : 120487.dasm (109.34 % of base)
        5682 : 44032.dasm (88.62 % of base)
        5626 : 49967.dasm (89.27 % of base)
        5564 : 296394.dasm (90.27 % of base)
        5488 : 263552.dasm (92.99 % of base)
        5444 : 232174.dasm (78.97 % of base)
        5440 : 152423.dasm (97.49 % of base)
        5246 : 43420.dasm (83.91 % of base)
Top file improvements (bytes):
        -350 : 45184.dasm (-3.73 % of base)
        -350 : 50911.dasm (-3.73 % of base)
        -300 : 236.dasm (-3.83 % of base)
        -168 : 91526.dasm (-4.03 % of base)
        -164 : 67761.dasm (-2.88 % of base)
        -142 : 68019.dasm (-2.61 % of base)
        -110 : 280100.dasm (-16.92 % of base)
         -96 : 284927.dasm (-15.84 % of base)
         -88 : 279944.dasm (-15.17 % of base)
         -88 : 231961.dasm (-2.97 % of base)
         -74 : 280101.dasm (-9.56 % of base)
         -68 : 276671.dasm (-7.44 % of base)
         -58 : 276819.dasm (-6.37 % of base)
         -52 : 4696.dasm (-6.28 % of base)
         -44 : 175751.dasm (-10.78 % of base)
         -40 : 276454.dasm (-5.39 % of base)
         -38 : 279038.dasm (-7.69 % of base)
         -36 : 284921.dasm (-9.00 % of base)
         -34 : 284923.dasm (-8.81 % of base)
         -28 : 144049.dasm (-9.40 % of base)
90 total files with Code Size differences (28 improved, 62 regressed), 20 unchanged.
Top method regressions (bytes):
       19768 (37.94 % of base) : 114704.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (FullOpts)
       19734 (37.59 % of base) : 105613.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach007.freach007.Test:MainMethod():int (FullOpts)
       15686 (68.98 % of base) : 59632.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)
       11146 (103.57 % of base) : 6767.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)
       11032 (103.57 % of base) : 44511.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)
       11032 (103.41 % of base) : 49689.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)
        9994 (98.54 % of base) : 298299.dasm - System.Threading.Tasks.Dataflow.Tests.DebugAttributeTests:TestDebuggerDisplaysAndTypeProxies():this (FullOpts)
        9776 (86.68 % of base) : 54348.dasm - Enumeration.FirstValidator:Validate(System.String,Enumeration.FirstModel):Microsoft.Extensions.Options.ValidateOptionsResult:this (FullOpts)
        9126 (88.24 % of base) : 55192.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)
        6656 (92.19 % of base) : 6217.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings:<GetUsingsAndDiagnostics>g__buildUsings|16_0(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax],Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,System.Nullable`1[ubyte],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings+UsingsAndDiagnostics:this (FullOpts)
        5818 (85.61 % of base) : 269203.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
        5790 (70.16 % of base) : 23143.dasm - Microsoft.CodeAnalysis.FindSymbols.DependentTypeFinder+ProjectIndex+<CreateIndexAsync>d__8:MoveNext():this (FullOpts)
        5760 (109.34 % of base) : 120487.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F41B8911E2F21D4DC5E3A6E6E037C09C91843DEA626D26CDD1D82984E3611395A__GetRegex_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        5682 (88.62 % of base) : 44032.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings:<GetUsingsAndDiagnostics>g__buildUsings|16_0(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax],Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,System.Nullable`1[ubyte],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings+UsingsAndDiagnostics:this (FullOpts)
        5626 (89.27 % of base) : 49967.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings:<GetUsingsAndDiagnostics>g__buildUsings|16_0(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax],Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,System.Nullable`1[ubyte],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings+UsingsAndDiagnostics:this (FullOpts)
        5564 (90.27 % of base) : 296394.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
        5488 (92.99 % of base) : 263552.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestTrySkipPartial(System.String,ubyte) (FullOpts)
        5444 (78.97 % of base) : 232174.dasm - System.Text.Encodings.Web.Tests.InboxEncoderCommonTestBase:_RunEncodeUtf8_Battery(ubyte[][],System.String[]):this (FullOpts)
        5440 (97.49 % of base) : 152423.dasm - System.Net.Primitives.Functional.Tests.IPEndPointParsing:Parse_InvalidPort_Throws(System.String,ubyte):this (FullOpts)
        5246 (83.91 % of base) : 43420.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
Top method improvements (bytes):
        -350 (-3.73 % of base) : 45184.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte) (FullOpts)
        -350 (-3.73 % of base) : 50911.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte) (FullOpts)
        -300 (-3.83 % of base) : 236.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        -168 (-4.03 % of base) : 91526.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (FullOpts)
        -164 (-2.88 % of base) : 67761.dasm - System.Collections.Frozen.Tests.FrozenSet_Generic_Tests`1[ulong]:ComparingWithOtherSets(int):this (FullOpts)
        -142 (-2.61 % of base) : 68019.dasm - System.Collections.Frozen.Tests.FrozenSet_Generic_Tests`1[System.__Canon]:ComparingWithOtherSets(int):this (FullOpts)
        -110 (-16.92 % of base) : 280100.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2806_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -96 (-15.84 % of base) : 284927.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5161_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -88 (-15.17 % of base) : 279944.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2631_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -88 (-2.97 % of base) : 231961.dasm - System.Text.Tests.DecoderConvert2:PosTest9():this (FullOpts)
         -74 (-9.56 % of base) : 280101.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2807_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -68 (-7.44 % of base) : 276671.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex729_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -58 (-6.37 % of base) : 276819.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex845_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -52 (-6.28 % of base) : 4696.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],byref,ubyte,ubyte):System.Runtime.CompilerServices.StrongBox`1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]:this (FullOpts)
         -44 (-10.78 % of base) : 175751.dasm - System.Xml.XmlConvertTests.EncodeDecodeTests:v3():int:this (FullOpts)
         -40 (-5.39 % of base) : 276454.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex418_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -38 (-7.69 % of base) : 279038.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1284_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -36 (-9.00 % of base) : 284921.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5155_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -34 (-8.81 % of base) : 284923.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5157_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -28 (-7.73 % of base) : 23876.dasm - Microsoft.CodeAnalysis.Shared.Utilities.CommonFormattingHelpers:AppendTrailingTriviaText(Microsoft.CodeAnalysis.SyntaxToken,System.Text.StringBuilder) (FullOpts)
Top method regressions (percentages):
        4096 (127.52 % of base) : 286194.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4590_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         170 (118.06 % of base) : 45722.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (FullOpts)
         170 (118.06 % of base) : 48701.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (FullOpts)
         170 (118.06 % of base) : 9392.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (FullOpts)
         726 (117.10 % of base) : 202334.dasm - System.Number:UInt128ToDecChars[ubyte](uint,System.UInt128):uint (FullOpts)
         728 (117.04 % of base) : 59341.dasm - Microsoft.VisualBasic.CompilerServices.IOUtils:FindFileFilter(Microsoft.VisualBasic.CompilerServices.AssemblyData):System.String (FullOpts)
        1802 (116.71 % of base) : 43566.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (FullOpts)
        1802 (116.71 % of base) : 49264.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (FullOpts)
        1802 (116.71 % of base) : 5018.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (FullOpts)
          70 (116.67 % of base) : 55053.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (FullOpts)
          70 (116.67 % of base) : 46743.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (FullOpts)
          70 (116.67 % of base) : 52862.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (FullOpts)
         446 (116.15 % of base) : 182537.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeLocalConstantTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
         564 (115.57 % of base) : 92221.dasm - System.Data.XSDSchema:HandleRelations(System.Xml.Schema.XmlSchemaAnnotation,ubyte):this (FullOpts)
        1400 (115.13 % of base) : 187118.dasm - System.Runtime.Caching.UsageBucket:Reduce():this (FullOpts)
         452 (114.14 % of base) : 149590.dasm - System.Net.HttpListenerRequest+Helpers:FillFromString(System.Collections.Specialized.NameValueCollection,System.String,ubyte,System.Text.Encoding) (FullOpts)
        5064 (113.64 % of base) : 90172.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
         336 (113.51 % of base) : 20941.dasm - Newtonsoft.Json.JsonTextReader:EatWhitespace():this (FullOpts)
        3742 (113.39 % of base) : 10942.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex3_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         552 (113.11 % of base) : 131816.dasm - System.Linq.Parallel.FixedMaxHeap`1[System.Linq.Parallel.Producer`1[int]]:HeapifyRoot():this (FullOpts)
Top method improvements (percentages):
        -110 (-16.92 % of base) : 280100.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2806_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -96 (-15.84 % of base) : 284927.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5161_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -88 (-15.17 % of base) : 279944.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2631_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -44 (-10.78 % of base) : 175751.dasm - System.Xml.XmlConvertTests.EncodeDecodeTests:v3():int:this (FullOpts)
         -74 (-9.56 % of base) : 280101.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2807_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -28 (-9.40 % of base) : 144049.dasm - System.Buffers.Text.Tests.TestData+<get_SingleTestData>d__200:MoveNext():ubyte:this (FullOpts)
         -36 (-9.00 % of base) : 284921.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5155_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -34 (-8.81 % of base) : 284923.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5157_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -26 (-8.02 % of base) : 284896.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5117_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -26 (-7.93 % of base) : 284899.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5120_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -26 (-7.93 % of base) : 284901.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex5122_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -28 (-7.73 % of base) : 23876.dasm - Microsoft.CodeAnalysis.Shared.Utilities.CommonFormattingHelpers:AppendTrailingTriviaText(Microsoft.CodeAnalysis.SyntaxToken,System.Text.StringBuilder) (FullOpts)
         -38 (-7.69 % of base) : 279038.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1284_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -68 (-7.44 % of base) : 276671.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex729_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -14 (-7.14 % of base) : 3068.dasm - System.Linq.Enumerable+WhereSelectListIterator`2[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -10 (-6.41 % of base) : 125793.dasm - System.IO.Tests.FileSystemWatcherTest:ExpectEvent(System.IO.FileSystemWatcher,int,System.Action,System.Action,System.String[],int,int) (FullOpts)
         -58 (-6.37 % of base) : 276819.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex845_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -52 (-6.28 % of base) : 4696.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],byref,ubyte,ubyte):System.Runtime.CompilerServices.StrongBox`1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]:this (FullOpts)
         -24 (-5.53 % of base) : 276562.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex589_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -24 (-5.53 % of base) : 276565.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex598_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
  
realworld.run.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 13249158 (overridden on cmd)
Total bytes of diff: 15122094 (overridden on cmd)
Total bytes of delta: 1872936 (14.14 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       11990 : 1303.dasm (58.57 % of base)
       11068 : 25003.dasm (103.83 % of base)
       10134 : 1770.dasm (106.16 % of base)
        9364 : 1850.dasm (110.55 % of base)
        9046 : 28198.dasm (88.12 % of base)
        8648 : 2246.dasm (100.70 % of base)
        7460 : 2254.dasm (92.62 % of base)
        7380 : 16763.dasm (92.53 % of base)
        7098 : 2234.dasm (82.29 % of base)
        6826 : 1924.dasm (99.88 % of base)
        6820 : 2007.dasm (98.90 % of base)
        6752 : 2243.dasm (86.08 % of base)
        6750 : 23807.dasm (92.39 % of base)
        6438 : 14570.dasm (85.95 % of base)
        6216 : 1321.dasm (33.41 % of base)
        6198 : 2373.dasm (91.52 % of base)
        6190 : 1941.dasm (100.52 % of base)
        6186 : 1330.dasm (44.57 % of base)
        6062 : 2374.dasm (74.78 % of base)
        5846 : 2203.dasm (76.12 % of base)
Top file improvements (bytes):
        -300 : 34449.dasm (-3.83 % of base)
         -72 : 645.dasm (-9.18 % of base)
         -52 : 22685.dasm (-6.28 % of base)
         -40 : 1832.dasm (-35.09 % of base)
         -16 : 14770.dasm (-0.60 % of base)
         -10 : 14709.dasm (-6.41 % of base)
         -10 : 27387.dasm (-2.82 % of base)
          -8 : 26040.dasm (-1.57 % of base)
          -8 : 33156.dasm (-1.37 % of base)
          -6 : 37492.dasm (-0.67 % of base)
          -6 : 37625.dasm (-1.97 % of base)
          -6 : 661.dasm (-2.04 % of base)
          -4 : 23262.dasm (-0.60 % of base)
          -4 : 36055.dasm (-1.28 % of base)
          -4 : 6178.dasm (-0.68 % of base)
          -2 : 19492.dasm (-1.54 % of base)
          -2 : 223.dasm (-1.56 % of base)
          -2 : 111.dasm (-1.61 % of base)
          -2 : 18074.dasm (-1.75 % of base)
          -2 : 10354.dasm (-2.86 % of base)
87 total files with Code Size differences (25 improved, 62 regressed), 11 unchanged.
Top method regressions (bytes):
       11990 (58.57 % of base) : 1303.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
       11068 (103.83 % of base) : 25003.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)
       10134 (106.16 % of base) : 1770.dasm - BepuPhysics.BoundingBoxBatcher:ExecuteConvexBatch[BepuPhysics.Collidables.Capsule,BepuPhysics.Collidables.CapsuleWide](BepuPhysics.Collidables.ConvexShapeBatch`2[BepuPhysics.Collidables.Capsule,BepuPhysics.Collidables.CapsuleWide]):this (FullOpts)
        9364 (110.55 % of base) : 1850.dasm - BepuPhysics.CollisionDetection.CollisionTasks.ConvexCompoundOverlapFinder`3[BepuPhysics.Collidables.Capsule,BepuPhysics.Collidables.CapsuleWide,BepuPhysics.Collidables.BigCompound]:FindLocalOverlaps(byref,int,BepuUtilities.Memory.BufferPool,BepuPhysics.Collidables.Shapes,float,byref):this (FullOpts)
        9046 (88.12 % of base) : 28198.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)
        8648 (100.70 % of base) : 2246.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CompoundPairOverlapFinder`2[BepuPhysics.Collidables.Compound,BepuPhysics.Collidables.Compound]:FindLocalOverlaps(byref,int,BepuUtilities.Memory.BufferPool,BepuPhysics.Collidables.Shapes,float,byref):this (FullOpts)
        7460 (92.62 % of base) : 2254.dasm - BepuPhysics.CollisionDetection.CollisionTasks.MeshPairOverlapFinder`2[BepuPhysics.Collidables.Mesh,BepuPhysics.Collidables.Mesh]:FindLocalOverlaps(byref,int,BepuUtilities.Memory.BufferPool,BepuPhysics.Collidables.Shapes,float,byref):this (FullOpts)
        7380 (92.53 % of base) : 16763.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.JpegComponentPostProcessor:CopyBlocksToColorBuffer(int):this (FullOpts)
        7098 (82.29 % of base) : 2234.dasm - BepuPhysics.CollisionDetection.CollisionTasks.ManifoldCandidateHelper:ReduceWithoutComputingDepths(byref,System.Numerics.Vector`1[int],int,System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],int,byref,byref,byref,byref,byref,byref,byref,byref) (FullOpts)
        6826 (99.88 % of base) : 1924.dasm - BepuPhysics.Constraints.TwoBodyTypeProcessor`7[BepuPhysics.Constraints.BallSocketPrestepData,BepuUtilities.Vector3Wide,BepuPhysics.Constraints.BallSocketFunctions,BepuPhysics.Constraints.AccessNoPosition,BepuPhysics.Constraints.AccessNoPosition,BepuPhysics.Constraints.AccessAll,BepuPhysics.Constraints.AccessAll]:WarmStart[DemoBenchmarks.RagdollTubeBenchmark+DemoPoseIntegratorCallbacks,BepuPhysics.Constraints.BatchShouldAlwaysIntegrate,BepuPhysics.Constraints.DisallowPoseIntegration](byref,byref,BepuPhysics.Bodies,byref,float,float,int,int,int):this (FullOpts)
        6820 (98.90 % of base) : 2007.dasm - BepuPhysics.PoseIntegrator`1[DemoBenchmarks.RagdollTubeBenchmark+DemoPoseIntegratorCallbacks]:IntegrateBundlesAfterSubstepping(byref,int,int,float,float,int,int):this (FullOpts)
        6752 (86.08 % of base) : 2243.dasm - BepuPhysics.Collidables.ConvexHullWide:GetBounds(byref,int,byref,byref,byref,byref):this (FullOpts)
        6750 (92.39 % of base) : 23807.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings:<GetUsingsAndDiagnostics>g__buildUsings|16_0(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax],Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,System.Nullable`1[ubyte],Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+AliasesAndUsings+UsingsAndDiagnostics:this (FullOpts)
        6438 (85.95 % of base) : 14570.dasm - FSharp.Compiler.CheckFormatStrings:parseLoop@185(FSharp.Compiler.Text.Range,FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.NameResolution+FormatStringCheckContext],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTree+TType,int,System.Collections.Generic.List`1[System.Tuple`2[FSharp.Compiler.Text.Range,int]],System.Text.StringBuilder,System.Collections.Generic.List`1[FSharp.Compiler.TypedTree+TType],Microsoft.FSharp.Core.FSharpRef`1[int],Microsoft.FSharp.Core.FSharpRef`1[System.String],Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[Microsoft.FSharp.Core.FSharpOption`1[int],FSharp.Compiler.TypedTree+TType]],int,int,int,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`3[int,int,FSharp.Compiler.Text.Range]]):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType] (FullOpts)
        6216 (33.41 % of base) : 1321.dasm - BepuPhysics.CollisionDetection.CollisionTasks.TriangleConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        6198 (91.52 % of base) : 2373.dasm - BepuPhysics.Constraints.Contact.ContactNonconvexOneBodyFunctions`2[BepuPhysics.Constraints.Contact.Contact4NonconvexOneBodyPrestepData,BepuPhysics.Constraints.Contact.Contact4NonconvexAccumulatedImpulses]:WarmStart(byref,byref,byref,byref,byref,byref):this (FullOpts)
        6190 (100.52 % of base) : 1941.dasm - BepuPhysics.Constraints.Contact.ContactNonconvexTwoBodyFunctions`2[BepuPhysics.Constraints.Contact.Contact4NonconvexPrestepData,BepuPhysics.Constraints.Contact.Contact4NonconvexAccumulatedImpulses]:WarmStart(byref,byref,byref,byref,byref,byref,byref,byref,byref,byref):this (FullOpts)
        6186 (44.57 % of base) : 1330.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CylinderConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        6062 (74.78 % of base) : 2374.dasm - BepuPhysics.Constraints.Contact.ContactNonconvexOneBodyFunctions`2[BepuPhysics.Constraints.Contact.Contact4NonconvexOneBodyPrestepData,BepuPhysics.Constraints.Contact.Contact4NonconvexAccumulatedImpulses]:Solve(byref,byref,byref,float,float,byref,byref,byref):this (FullOpts)
        5846 (76.12 % of base) : 2203.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CapsuleCylinderTester:GetClosestPointBetweenLineSegmentAndCylinder(byref,byref,byref,byref,byref,byref,byref) (FullOpts)
Top method improvements (bytes):
        -300 (-3.83 % of base) : 34449.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -72 (-9.18 % of base) : 645.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (FullOpts)
         -52 (-6.28 % of base) : 22685.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],byref,ubyte,ubyte):System.Runtime.CompilerServices.StrongBox`1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]:this (FullOpts)
         -40 (-35.09 % of base) : 1832.dasm - BepuPhysics.CollisionDetection.ContactConstraintAccessor`6[BepuPhysics.Constraints.Contact.Contact1,BepuPhysics.CollisionDetection.TwoBodyHandles,BepuPhysics.Constraints.Contact.Contact1PrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.CollisionDetection.ContactImpulses1,BepuPhysics.CollisionDetection.ConstraintCache1]:CopyContactData(byref,byref,byref) (FullOpts)
         -16 (-0.60 % of base) : 14770.dasm - FSharp.Compiler.TypedTreePickle:p_ValData(FSharp.Compiler.TypedTree+Val,FSharp.Compiler.TypedTreePickle+WriterState) (FullOpts)
         -10 (-6.41 % of base) : 14709.dasm - FSharp.Compiler.TypedTreePickle+p_tcaug@1979-16:Invoke(Microsoft.FSharp.Core.Unit,FSharp.Compiler.TypedTreePickle+WriterState):Microsoft.FSharp.Core.Unit:this (FullOpts)
         -10 (-2.82 % of base) : 27387.dasm - Microsoft.CodeAnalysis.DiagnosticBag+<AsEnumerableFiltered>d__16:MoveNext():ubyte:this (FullOpts)
          -8 (-1.37 % of base) : 33156.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<Microsoft-Cci-ITypeDefinition-GetFields>d__31:MoveNext():ubyte:this (FullOpts)
          -8 (-1.57 % of base) : 26040.dasm - Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]:Contains(System.__Canon,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):ubyte:this (FullOpts)
          -6 (-2.04 % of base) : 661.dasm - System.Linq.Enumerable+<OfTypeIterator>d__64`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -6 (-1.97 % of base) : 37625.dasm - System.Management.Automation.CompiledCommandParameter+<GetMatchingParameterSetData>d__78:MoveNext():ubyte:this (FullOpts)
          -6 (-0.67 % of base) : 37492.dasm - System.Management.Automation.Runspaces.CommandParameter:ToCommandParameterInternal(System.Management.Automation.Runspaces.CommandParameter,ubyte):System.Management.Automation.CommandParameterInternal (FullOpts)
          -4 (-0.68 % of base) : 6178.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:seekReadIndexedRows$cont@793[System.__Canon,FSharp.Compiler.AbstractIL.ILBinaryReader+TaggedIndex`1[FSharp.Compiler.AbstractIL.BinaryConstants+TypeOrMethodDefTag],System.__Canon](Microsoft.FSharp.Core.FSharpFunc`2[int,System.__Canon],Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,System.__Canon],int,Microsoft.FSharp.Core.FSharpFunc`2[System.__Canon,FSharp.Compiler.AbstractIL.ILBinaryReader+TaggedIndex`1[FSharp.Compiler.AbstractIL.BinaryConstants+TypeOrMethodDefTag]],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.AbstractIL.ILBinaryReader+TaggedIndex`1[FSharp.Compiler.AbstractIL.BinaryConstants+TypeOrMethodDefTag],int],Microsoft.FSharp.Core.Unit):Microsoft.FSharp.Collections.FSharpList`1[System.__Canon] (FullOpts)
          -4 (-0.60 % of base) : 23262.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80:MoveNext():ubyte:this (FullOpts)
          -4 (-1.28 % of base) : 36055.dasm - System.Management.Automation.SessionStateInternal:IsItemContainer(System.String,System.Management.Automation.CmdletProviderContext):ubyte:this (FullOpts)
          -2 (-2.86 % of base) : 10354.dasm - FSharp.Compiler.NameResolution+MakeCtorGroup@243:Invoke(FSharp.Compiler.Infos+MethInfo):int:this (FullOpts)
          -2 (-1.41 % of base) : 27916.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
          -2 (-0.42 % of base) : 23018.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (FullOpts)
          -2 (-1.75 % of base) : 18074.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.56 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
Top method regressions (percentages):
         428 (126.63 % of base) : 17169.dasm - SixLabors.ImageSharp.Compression.Zlib.Deflater:Deflate(System.Span`1[ubyte],int,int):int:this (FullOpts)
        4902 (122.24 % of base) : 2405.dasm - BepuPhysics.Trees.Tree:GetOverlapsBetweenDifferentNodes[BepuPhysics.CollisionDetection.CollidableOverlapFinder`1+IntertreeOverlapHandler[DemoBenchmarks.ShapePileBenchmark+DemoNarrowPhaseCallbacks]](byref,byref,byref,byref):this (FullOpts)
         170 (118.06 % of base) : 21010.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (FullOpts)
          70 (116.67 % of base) : 31458.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (FullOpts)
        1796 (115.87 % of base) : 22958.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (FullOpts)
        2072 (114.35 % of base) : 17000.dasm - SixLabors.ImageSharp.Advanced.ParallelRowIterator+RowOperationWrapper`1[SixLabors.ImageSharp.Processing.Processors.Convolution.BokehBlurProcessor+SecondPassConvolutionRowOperation]:Invoke(int):this (FullOpts)
         448 (113.71 % of base) : 2412.dasm - BepuPhysics.IslandAwakener:<PrepareJobs>g__EnsurePairCacheTypeCapacities|38_1(byref,byref,BepuUtilities.Memory.BufferPool) (FullOpts)
         142 (112.70 % of base) : 21353.dasm - Microsoft.CodeAnalysis.GreenNode:GetLastTerminal():Microsoft.CodeAnalysis.GreenNode:this (FullOpts)
         906 (112.69 % of base) : 2236.dasm - BepuPhysics.Collidables.Compound:FindLocalOverlaps[BepuPhysics.CollisionDetection.CollisionTasks.ConvexCompoundTaskOverlaps,BepuPhysics.CollisionDetection.CollisionTasks.ConvexCompoundOverlaps](byref,BepuUtilities.Memory.BufferPool,BepuPhysics.Collidables.Shapes,byref):this (FullOpts)
         146 (112.31 % of base) : 21195.dasm - Microsoft.CodeAnalysis.GreenNode:GetFirstTerminal():Microsoft.CodeAnalysis.GreenNode:this (FullOpts)
         926 (111.84 % of base) : 34081.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeMethodDefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes,int):this (FullOpts)
         514 (111.74 % of base) : 19667.dasm - System.SpanHelpers:NonPackedIndexOfAnyValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,ubyte,int):int (FullOpts)
        4242 (111.57 % of base) : 1302.dasm - DemoBenchmarks.ConvexCollisionTesterBenchmarks:Test4Contact[BepuPhysics.CollisionDetection.CollisionTasks.BoxConvexHullTester,BepuPhysics.Collidables.BoxWide,BepuPhysics.Collidables.ConvexHullWide](BepuPhysics.Collidables.BoxWide,BepuPhysics.Collidables.ConvexHullWide):System.Numerics.Vector`1[float]:this (FullOpts)
        4502 (111.11 % of base) : 2591.dasm - DemoBenchmarks.GatherScatterBenchmarks:GatherState():System.Numerics.Vector`1[float]:this (FullOpts)
         854 (110.91 % of base) : 17182.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:WriteTree(SixLabors.ImageSharp.Compression.Zlib.DeflaterPendingBuffer,SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree):this (FullOpts)
        9364 (110.55 % of base) : 1850.dasm - BepuPhysics.CollisionDetection.CollisionTasks.ConvexCompoundOverlapFinder`3[BepuPhysics.Collidables.Capsule,BepuPhysics.Collidables.CapsuleWide,BepuPhysics.Collidables.BigCompound]:FindLocalOverlaps(byref,int,BepuUtilities.Memory.BufferPool,BepuPhysics.Collidables.Shapes,float,byref):this (FullOpts)
        1126 (109.96 % of base) : 292.dasm - System.Reflection.TypeNameParser:ParseNonQualifiedTypeName():System.Reflection.TypeNameParser+TypeName:this (FullOpts)
        4136 (109.36 % of base) : 16974.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.HuffmanScanDecoder:DecodeBlockProgressiveACRefined(byref,byref):this (FullOpts)
        3176 (109.14 % of base) : 1815.dasm - BepuPhysics.Trees.Tree:GetOverlapsBetweenDifferentNodes[BepuPhysics.CollisionDetection.CollidableOverlapFinder`1+SelfOverlapHandler[DemoBenchmarks.RagdollTubeBenchmark+SubgroupFilteredCallbacks]](byref,byref,byref):this (FullOpts)
         466 (108.88 % of base) : 29793.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder:<ExpressionOfTypeMatchesPatternTypeForLearningFromSuccessfulTypeTest>g__isRuntimeSimilar|42_0(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):ubyte (FullOpts)
Top method improvements (percentages):
         -40 (-35.09 % of base) : 1832.dasm - BepuPhysics.CollisionDetection.ContactConstraintAccessor`6[BepuPhysics.Constraints.Contact.Contact1,BepuPhysics.CollisionDetection.TwoBodyHandles,BepuPhysics.Constraints.Contact.Contact1PrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.CollisionDetection.ContactImpulses1,BepuPhysics.CollisionDetection.ConstraintCache1]:CopyContactData(byref,byref,byref) (FullOpts)
         -72 (-9.18 % of base) : 645.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (FullOpts)
         -10 (-6.41 % of base) : 14709.dasm - FSharp.Compiler.TypedTreePickle+p_tcaug@1979-16:Invoke(Microsoft.FSharp.Core.Unit,FSharp.Compiler.TypedTreePickle+WriterState):Microsoft.FSharp.Core.Unit:this (FullOpts)
         -52 (-6.28 % of base) : 22685.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax],byref,ubyte,ubyte):System.Runtime.CompilerServices.StrongBox`1[Microsoft.CodeAnalysis.Collections.ImmutableSegmentedHashSet`1[System.String]]:this (FullOpts)
        -300 (-3.83 % of base) : 34449.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
          -2 (-2.86 % of base) : 10354.dasm - FSharp.Compiler.NameResolution+MakeCtorGroup@243:Invoke(FSharp.Compiler.Infos+MethInfo):int:this (FullOpts)
         -10 (-2.82 % of base) : 27387.dasm - Microsoft.CodeAnalysis.DiagnosticBag+<AsEnumerableFiltered>d__16:MoveNext():ubyte:this (FullOpts)
          -6 (-2.04 % of base) : 661.dasm - System.Linq.Enumerable+<OfTypeIterator>d__64`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -6 (-1.97 % of base) : 37625.dasm - System.Management.Automation.CompiledCommandParameter+<GetMatchingParameterSetData>d__78:MoveNext():ubyte:this (FullOpts)
          -2 (-1.75 % of base) : 18074.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.67 % of base) : 5567.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[FSharp.Compiler.Text.Position,System.ValueTuple`3[int,int,ubyte]]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.61 % of base) : 111.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.61 % of base) : 4105.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-1.57 % of base) : 26040.dasm - Roslyn.Utilities.MultiDictionary`2+ValueSet[System.__Canon,System.__Canon]:Contains(System.__Canon,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):ubyte:this (FullOpts)
          -2 (-1.56 % of base) : 223.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.54 % of base) : 19492.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -2 (-1.41 % of base) : 27916.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
          -2 (-1.39 % of base) : 28395.dasm - System.Collections.Generic.HashSet`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:MoveNext():ubyte:this (FullOpts)
          -8 (-1.37 % of base) : 33156.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<Microsoft-Cci-ITypeDefinition-GetFields>d__31:MoveNext():ubyte:this (FullOpts)
          -4 (-1.28 % of base) : 36055.dasm - System.Management.Automation.SessionStateInternal:IsItemContainer(System.String,System.Management.Automation.CmdletProviderContext):ubyte:this (FullOpts)
  
  
windows x86
Diffs are based on 2,277,191 contexts (840,452 MinOpts, 1,436,739 FullOpts).
MISSED contexts: base: 7,010 (0.30%), diff: 21,934 (0.95%)
Overall (+46,134,613 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | 
| benchmarks.run.windows.x86.checked.mch | 6,659,356 | +1,146,429 | 
| benchmarks.run_pgo.windows.x86.checked.mch | 43,839,637 | +3,876,517 | 
| benchmarks.run_tiered.windows.x86.checked.mch | 9,013,144 | +1,137,867 | 
| coreclr_tests.run.windows.x86.checked.mch | 307,202,031 | +7,080,070 | 
| libraries.crossgen2.windows.x86.checked.mch | 30,974,839 | +3,115,370 | 
| libraries.pmi.windows.x86.checked.mch | 46,306,972 | +4,504,563 | 
| libraries_tests.run.windows.x86.Release.mch | 179,696,217 | +17,116,867 | 
| librariestestsnotieredcompilation.run.windows.x86.Release.mch | 100,609,349 | +6,823,639 | 
| realworld.run.windows.x86.checked.mch | 10,518,585 | +1,333,291 | 
  
FullOpts (+46,134,613 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | 
| benchmarks.run.windows.x86.checked.mch | 6,659,077 | +1,146,429 | 
| benchmarks.run_pgo.windows.x86.checked.mch | 37,235,256 | +3,876,517 | 
| benchmarks.run_tiered.windows.x86.checked.mch | 4,745,806 | +1,137,867 | 
| coreclr_tests.run.windows.x86.checked.mch | 105,530,842 | +7,080,070 | 
| libraries.crossgen2.windows.x86.checked.mch | 30,973,782 | +3,115,370 | 
| libraries.pmi.windows.x86.checked.mch | 46,211,658 | +4,504,563 | 
| libraries_tests.run.windows.x86.Release.mch | 81,611,939 | +17,116,867 | 
| librariestestsnotieredcompilation.run.windows.x86.Release.mch | 91,939,641 | +6,823,639 | 
| realworld.run.windows.x86.checked.mch | 10,222,885 | +1,333,291 | 
  
Example diffs
benchmarks.run.windows.x86.checked.mch
-41 (-8.72%) : 18162.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (FullOpts)
@@ -8,11 +8,11 @@
 ; 0 inlinees with PGO data; 28 single block inlinees; 11 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 13, 16   )     ref  ->  [ebp-0x34]  this class-hnd EH-live single-def <Microsoft.CodeAnalysis.PEModule>
+;  V00 this         [V00,T04] ( 13, 12.50)     ref  ->  [ebp-0x2C]  this class-hnd EH-live single-def <Microsoft.CodeAnalysis.PEModule>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op <System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator>
 ;* V02 loc1         [V02    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op <System.Reflection.Metadata.CustomAttributeHandleCollection>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 4) zero-ref    <System.Reflection.Metadata.CustomAttributeHandle>
-;  V04 loc3         [V04,T10] (  3,  9   )     int  ->  [ebp-0x24] 
+;  V04 loc3         [V04,T08] (  3,  2   )     int  ->  [ebp-0x24] 
 ;* V05 loc4         [V05    ] (  0,  0   )  struct ( 4) zero-ref    <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V06 loc5         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Reflection.Metadata.CustomAttribute>
 ;* V07 loc6         [V07,T31] (  0,  0   )   ubyte  ->  zero-ref   
@@ -31,37 +31,37 @@
 ;* V20 tmp12        [V20    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttributeHandle>
 ;  V21 tmp13        [V21,T15] (  3,  6   )     ref  ->  edx         class-hnd exact "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
 ;* V22 tmp14        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttribute>
-;  V23 tmp15        [V23,T25] (  2,  2   )     int  ->  edi         "Inline return value spill temp"
+;  V23 tmp15        [V23,T24] (  2,  2   )     int  ->  edi         "Inline return value spill temp"
 ;* V24 tmp16        [V24    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.CustomAttributeHandle>
 ;* V25 tmp17        [V25    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V26 tmp18        [V26,T07] (  5, 10   )   byref  ->  edx         "impAppendStmt"
+;  V26 tmp18        [V26,T06] (  5, 10   )   byref  ->  edx         "impAppendStmt"
 ;* V27 tmp19        [V27    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.CustomAttributeHandle>
 ;* V28 tmp20        [V28    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp21        [V29    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttributeHandle>
 ;* V30 tmp22        [V30    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.CustomAttributeHandle>
-;  V31 tmp23        [V31,T26] (  2,  2   )     int  ->  edi         "Inline stloc first use temp"
-;  V32 tmp24        [V32,T08] (  5, 10   )   byref  ->  ebx         "Inlining Arg"
+;  V31 tmp23        [V31,T25] (  2,  2   )     int  ->  edi         "Inline stloc first use temp"
+;  V32 tmp24        [V32,T07] (  5, 10   )   byref  ->  ebx         "Inlining Arg"
 ;  V33 tmp25        [V33,T09] (  5, 10   )     int  ->  edi         "Inlining Arg"
 ;* V34 tmp26        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V35 tmp27        [V35,T19] (  4,  4   )     int  ->  edx         "Inline return value spill temp"
+;  V35 tmp27        [V35,T18] (  4,  4   )     int  ->  edx         "Inline return value spill temp"
 ;* V36 tmp28        [V36    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V37 tmp29        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V38 tmp30        [V38    ] (  0,  0   )  ushort  ->  zero-ref    "Inline return value spill temp"
 ;* V39 tmp31        [V39    ] (  0,  0   )  ushort  ->  zero-ref    "Inline stloc first use temp"
 ;* V40 tmp32        [V40    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
-;  V41 tmp33        [V41,T20] (  2,  4   )     int  ->  edi         "Span.get_Item index"
-;  V42 tmp34        [V42,T21] (  3,  3   )     int  ->  edi         "Inline stloc first use temp"
-;  V43 tmp35        [V43,T22] (  3,  3   )     int  ->  edx         "Inline stloc first use temp"
+;  V41 tmp33        [V41,T19] (  2,  4   )     int  ->  eax         "Span.get_Item index"
+;  V42 tmp34        [V42,T20] (  3,  3   )     int  ->  eax         "Inline stloc first use temp"
+;  V43 tmp35        [V43,T21] (  3,  3   )     int  ->  edx         "Inline stloc first use temp"
 ;* V44 tmp36        [V44    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
 ;* V45 tmp37        [V45    ] (  0,  0   )  struct ( 8) zero-ref    "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
 ;* V46 tmp38        [V46    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp39        [V47    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.EntityHandle>
 ;* V48 tmp40        [V48    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V49 tmp41        [V49    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V50 tmp42        [V50,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V51 tmp43        [V51,T18] (  2,  5   )     ref  ->  edi         single-def "field V01._reader (fldOffset=0x0)" P-INDEP
-;  V52 tmp44        [V52,T11] (  2,  9   )     int  ->  esi         single-def "field V01._lastRowId (fldOffset=0x4)" P-INDEP
-;  V53 tmp45        [V53,T00] (  6, 33   )     int  ->  ebx         "field V01._currentRowId (fldOffset=0x8)" P-INDEP
+;* V50 tmp42        [V50,T01] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V51 tmp43        [V51,T11] (  2,  1.50)     ref  ->  edi         single-def "field V01._reader (fldOffset=0x0)" P-INDEP
+;  V52 tmp44        [V52,T10] (  2,  2   )     int  ->  esi         single-def "field V01._lastRowId (fldOffset=0x4)" P-INDEP
+;  V53 tmp45        [V53,T00] (  6,  5   )     int  ->  ebx         "field V01._currentRowId (fldOffset=0x8)" P-INDEP
 ;* V54 tmp46        [V54    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._reader (fldOffset=0x0)" P-INDEP
 ;* V55 tmp47        [V55    ] (  0,  0   )     int  ->  zero-ref    single-def "field V02._firstRowId (fldOffset=0x4)" P-INDEP
 ;* V56 tmp48        [V56    ] (  0,  0   )     int  ->  zero-ref    single-def "field V02._lastRowId (fldOffset=0x8)" P-INDEP
@@ -72,37 +72,35 @@
 ;* V61 tmp53        [V61    ] (  0,  0   )     int  ->  zero-ref    "field V08._vToken (fldOffset=0x0)" P-INDEP
 ;* V62 tmp54        [V62    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._reader (fldOffset=0x0)" P-INDEP
 ;* V63 tmp55        [V63    ] (  0,  0   )     int  ->  zero-ref    single-def "field V11._firstRowId (fldOffset=0x4)" P-INDEP
-;  V64 tmp56        [V64,T27] (  2,  2   )     int  ->  esi         single-def "field V11._lastRowId (fldOffset=0x8)" P-INDEP
-;  V65 tmp57        [V65,T24] (  2,  2   )     ref  ->  edi         single-def "field V12._reader (fldOffset=0x0)" P-INDEP
-;  V66 tmp58        [V66,T28] (  2,  2   )     int  ->  esi         single-def "field V12._lastRowId (fldOffset=0x4)" P-INDEP
+;  V64 tmp56        [V64,T26] (  2,  2   )     int  ->  esi         single-def "field V11._lastRowId (fldOffset=0x8)" P-INDEP
+;  V65 tmp57        [V65,T23] (  2,  2   )     ref  ->  edi         single-def "field V12._reader (fldOffset=0x0)" P-INDEP
+;  V66 tmp58        [V66,T27] (  2,  2   )     int  ->  esi         single-def "field V12._lastRowId (fldOffset=0x4)" P-INDEP
 ;* V67 tmp59        [V67,T32] (  0,  0   )     int  ->  zero-ref    single-def "field V12._currentRowId (fldOffset=0x8)" P-INDEP
-;  V68 tmp60        [V68,T05] (  6, 15   )     int  ->  [ebp-0x28]  "field V16._rowId (fldOffset=0x0)" P-INDEP
-;  V69 tmp61        [V69,T12] (  2,  8   )     int  ->  eax         "field V18._rowId (fldOffset=0x0)" P-INDEP
-;  V70 tmp62        [V70,T13] (  2,  8   )     int  ->  eax         "field V20._rowId (fldOffset=0x0)" P-INDEP
+;  V68 tmp60        [V68,T05] (  6,  4.50)     int  ->  [ebp-0x28]  "field V16._rowId (fldOffset=0x0)" P-INDEP
+;  V69 tmp61        [V69,T12] (  2,  1   )     int  ->  eax         "field V18._rowId (fldOffset=0x0)" P-INDEP
+;  V70 tmp62        [V70,T13] (  2,  1   )     int  ->  eax         "field V20._rowId (fldOffset=0x0)" P-INDEP
 ;* V71 tmp63        [V71    ] (  0,  0   )     ref  ->  zero-ref    "field V22._reader (fldOffset=0x0)" P-INDEP
 ;* V72 tmp64        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V22._treatmentAndRowId (fldOffset=0x4)" P-INDEP
 ;* V73 tmp65        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V24._rowId (fldOffset=0x0)" P-INDEP
 ;* V74 tmp66        [V74    ] (  0,  0   )     int  ->  zero-ref    "field V27._rowId (fldOffset=0x0)" P-INDEP
-;  V75 tmp67        [V75,T29] (  2,  2   )     int  ->  edi         "field V29._rowId (fldOffset=0x0)" P-INDEP
+;  V75 tmp67        [V75,T28] (  2,  2   )     int  ->  edi         "field V29._rowId (fldOffset=0x0)" P-INDEP
 ;* V76 tmp68        [V76    ] (  0,  0   )     int  ->  zero-ref    "field V30._rowId (fldOffset=0x0)" P-INDEP
 ;* V77 tmp69        [V77    ] (  0,  0   )   byref  ->  zero-ref    "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V78 tmp70        [V78    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x4)" P-INDEP
-;  V79 tmp71        [V79,T23] (  3,  3   )     int  ->  edx         "field V44._vToken (fldOffset=0x0)" P-INDEP
+;  V79 tmp71        [V79,T22] (  3,  3   )     int  ->  edx         "field V44._vToken (fldOffset=0x0)" P-INDEP
 ;* V80 tmp72        [V80    ] (  0,  0   )   byref  ->  zero-ref    "field V45._reference (fldOffset=0x0)" P-INDEP
 ;* V81 tmp73        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x4)" P-INDEP
 ;* V82 tmp74        [V82    ] (  0,  0   )     int  ->  zero-ref    "field V47._vToken (fldOffset=0x0)" P-INDEP
-;  V83 tmp75        [V83,T30] (  2,  2   )     int  ->  edx         "field V48._rowId (fldOffset=0x0)" P-INDEP
-;  V84 tmp76        [V84,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
-;  V85 tmp77        [V85,T02] (  3, 24   )     int  ->  edx         "index expr"
+;  V83 tmp75        [V83,T29] (  2,  2   )     int  ->  edx         "field V48._rowId (fldOffset=0x0)" P-INDEP
+;  V84 tmp76        [V84,T02] (  3,  3   )     ref  ->  ecx         "arr expr"
+;  V85 tmp77        [V85,T03] (  3,  3   )     int  ->  edx         "index expr"
 ;  V86 EHSlots      [V86    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V87 cse0         [V87,T06] (  3, 12   )     ref  ->  ecx         "CSE - moderate"
-;  V88 rat0         [V88,T16] (  3,  6   )     int  ->  [ebp-0x2C]  spill-single-def "ReplaceWithLclVar is creating a new local variable"
-;  V89 rat1         [V89,T17] (  3,  6   )     int  ->  [ebp-0x30]  spill-single-def "ReplaceWithLclVar is creating a new local variable"
-;  TEMP_03                                     int  ->  [ebp-0x38]
-;  TEMP_02                                     int  ->  [ebp-0x3C]
-;  TEMP_01                                     int  ->  [ebp-0x40]
+;  V87 cse0         [V87,T30] (  3,  1.50)     ref  ->  ecx         "CSE - conservative"
+;  V88 rat0         [V88,T16] (  3,  6   )     int  ->  esi         "ReplaceWithLclVar is creating a new local variable"
+;  V89 rat1         [V89,T17] (  3,  6   )     int  ->  esi         "ReplaceWithLclVar is creating a new local variable"
+;  TEMP_01                                     int  ->  [ebp-0x30]
 ;
-; Lcl frame size = 52
+; Lcl frame size = 36
 
 G_M13056_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
        push     ebp
@@ -110,16 +108,16 @@ G_M13056_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=000000
        push     edi
        push     esi
        push     ebx
-       sub      esp, 52
+       sub      esp, 36
        xor      eax, eax
        mov      dword ptr [ebp-0x20], eax
        mov      dword ptr [ebp-0x1C], eax
        mov      dword ptr [ebp-0x18], eax
        mov      dword ptr [ebp-0x14], eax
-       mov      gword ptr [ebp-0x34], ecx
+       mov      gword ptr [ebp-0x2C], ecx
        ; GC ptr vars +{V00}
                        ;; size=26 bbWeight=1 PerfScore 9.75
-G_M13056_IG02:        ; bbWeight=1, gcVars=0000000000000008 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
+G_M13056_IG02:        ; bbWeight=1, gcVars=0000000000000010 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[ecx]
        cmp      byte  ptr [ecx+0x35], 0
        jne      G_M13056_IG19
@@ -131,24 +129,29 @@ G_M13056_IG03:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        mov      edi, eax
        ; gcrRegs +[edi]
        xor      ebx, ebx
-       jmp      SHORT G_M13056_IG06
+       jmp      SHORT G_M13056_IG07
                      ;; size=18 bbWeight=1 PerfScore 7.50
-G_M13056_IG04:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+G_M13056_IG04:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
        mov      ecx, gword ptr [edi+0x1F0]
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       SHORT G_M13056_IG12
+       je       SHORT G_M13056_IG05
        mov      edx, ebx
        and      edx, 0xD1FFAB1E
        dec      edx
        cmp      edx, dword ptr [ecx+0x04]
-       jae      SHORT G_M13056_IG07
+       jae      SHORT G_M13056_IG08
        mov      eax, dword ptr [ecx+4*edx+0x08]
-                       ;; size=28 bbWeight=4 PerfScore 40.00
-G_M13056_IG05:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M13056_IG06
+                       ;; size=30 bbWeight=0.50 PerfScore 6.00
+G_M13056_IG05:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      eax, ebx
+       and      eax, 0xD1FFAB1E
+                       ;; size=7 bbWeight=0.50 PerfScore 0.25
+G_M13056_IG06:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, gword ptr [ebp-0x2C]
        ; gcrRegs +[ecx]
        mov      dword ptr [ebp-0x28], eax
        mov      edx, eax
@@ -157,60 +160,54 @@ G_M13056_IG05:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000
        cmp      eax, -1
        mov      dword ptr [ebp-0x24], eax
        jne      SHORT G_M13056_IG13
-                      ;; size=22 bbWeight=4 PerfScore 30.00
-G_M13056_IG06:        ; bbWeight=8, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=22 bbWeight=0.50 PerfScore 3.75
+G_M13056_IG07:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
        cmp      ebx, esi
        jge      G_M13056_IG18
        inc      ebx
        jmp      SHORT G_M13056_IG04
-                      ;; size=11 bbWeight=8 PerfScore 28.00
-G_M13056_IG07:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+                      ;; size=11 bbWeight=1 PerfScore 3.50
+G_M13056_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edi]
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M13056_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.Reflection.Throw:InvalidCast()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.Reflection.Throw:InvalidCodedIndex()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.Reflection.Throw:OutOfBounds()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [Microsoft.CodeAnalysis.PEModule:ThrowMetadataDisposed()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG12:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[edi]
-       mov      eax, ebx
-       and      eax, 0xD1FFAB1E
-       jmp      SHORT G_M13056_IG05
-                       ;; size=9 bbWeight=4 PerfScore 10.00
 G_M13056_IG13:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edi]
        mov      esi, dword ptr [ebp-0x28]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      ecx, gword ptr [ebp-0x2C]
        ; gcrRegs +[ecx]
        mov      byte  ptr [ecx+0x35], 2
        cmp      gword ptr [ecx+0x0C], 0
        jne      SHORT G_M13056_IG14
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      ecx, gword ptr [ebp-0x2C]
        ; gcrRegs +[ecx]
                        ;; size=25 bbWeight=1 PerfScore 11.00
 G_M13056_IG14:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        cmp      byte  ptr [ecx+0x34], 0
-       jne      SHORT G_M13056_IG11
+       jne      SHORT G_M13056_IG12
        mov      edx, gword ptr [ecx+0x0C]
        ; gcrRegs +[edx]
        mov      edi, esi
        or       edi, 0xD1FFAB1E
        cmp      dword ptr [edx+0x30], 0
+       mov      dword ptr [ebp-0x28], esi
        cmove    edi, esi
        add      edx, 496
        ; gcrRegs -[edx]
@@ -225,64 +222,52 @@ G_M13056_IG14:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        jne      SHORT G_M13056_IG15
...
  
-3 (-6.82%) : 16675.dasm - Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (FullOpts)
@@ -10,19 +10,19 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Struct.SpanWrapper>
 ;  V01 arg1         [V01,T07] (  2,  2   )  struct ( 8) [ebp+0x08]  do-not-enreg[S] ld-addr-op single-def <Struct.SpanWrapper`1[int]>
-;  V02 loc0         [V02,T03] (  4,  9   )     int  ->  eax        
+;  V02 loc0         [V02,T04] (  5,  9.25)     int  ->  eax        
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (12) zero-ref    do-not-enreg[SF] ld-addr-op <System.ReadOnlySpan`1+Enumerator[int]>
 ;* V04 loc2         [V04    ] (  0,  0   )     int  ->  zero-ref   
 ;* V05 tmp0         [V05    ] (  0,  0   )  struct (12) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1+Enumerator[int]>
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[int]>
 ;* V07 tmp2         [V07    ] (  0,  0   )     int  ->  zero-ref    "Span.get_Item index"
-;* V08 tmp3         [V08,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V08 tmp3         [V08,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V09 tmp4         [V09,T00] (  3, 20   )     int  ->  esi         "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x4)" P-INDEP
-;  V12 tmp7         [V12,T05] (  2,  3   )   byref  ->  edx         single-def "V03.[000..004)"
-;  V13 tmp8         [V13,T02] (  3, 11   )     int  ->  ecx         single-def "V03.[004..008)"
-;  V14 tmp9         [V14,T01] (  5, 17   )     int  ->  esi         "V03.[008..012)"
+;  V12 tmp7         [V12,T05] (  3,  3.25)   byref  ->  edx         single-def "V03.[000..004)"
+;  V13 tmp8         [V13,T02] (  3, 10   )     int  ->  ecx         single-def "V03.[004..008)"
+;  V14 tmp9         [V14,T01] (  4, 14.50)     int  ->  esi         "V03.[008..012)"
 ;  V15 tmp10        [V15,T06] (  2,  2   )   byref  ->  edx         single-def "V05.[000..004)"
 ;  V16 tmp11        [V16,T08] (  2,  2   )     int  ->  ecx         single-def "V05.[004..008)"
 ;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    "V05.[008..012)"
@@ -39,33 +39,38 @@ G_M19652_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        mov      edx, bword ptr [ebp+0x08]
        ; byrRegs +[edx]
        mov      ecx, dword ptr [ebp+0x0C]
-       mov      esi, -1
        jmp      SHORT G_M19652_IG04
-                        ;; size=15 bbWeight=1 PerfScore 4.50
-G_M19652_IG03:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
-       cmp      esi, ecx
-       jae      SHORT G_M19652_IG07
+                      ;; size=10 bbWeight=1 PerfScore 4.25
+G_M19652_IG03:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
+       mov      eax, dword ptr [edx]
+       jmp      SHORT G_M19652_IG07
+                       ;; size=4 bbWeight=0.25 PerfScore 1.00
+G_M19652_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
+       test     ecx, ecx
+       jle      SHORT G_M19652_IG09
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M19652_IG05:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
+       xor      esi, esi
+       jmp      SHORT G_M19652_IG03
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
+G_M19652_IG06:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref
        add      eax, dword ptr [edx+4*esi]
-                     ;; size=7 bbWeight=2 PerfScore 8.50
-G_M19652_IG04:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
+                      ;; size=3 bbWeight=2 PerfScore 6.00
+G_M19652_IG07:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
        inc      esi
        cmp      esi, ecx
-       jge      SHORT G_M19652_IG06
+       jge      SHORT G_M19652_IG09
                      ;; size=5 bbWeight=8 PerfScore 12.00
-G_M19652_IG05:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
-       jmp      SHORT G_M19652_IG03
+G_M19652_IG08:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
+       jmp      SHORT G_M19652_IG06
                         ;; size=2 bbWeight=4 PerfScore 8.00
-G_M19652_IG06:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M19652_IG09:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; byrRegs -[edx]
        pop      esi
        pop      ebp
        ret      8
                        ;; size=5 bbWeight=4 PerfScore 12.00
-G_M19652_IG07:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       call     CORINFO_HELP_RNGCHKFAIL
-       int3     
-                       ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 44, prolog size 4, PerfScore 47.25, instruction count 20, allocated bytes for code 44 (MethodHash=47afb33b) for method Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (FullOpts)
+; Total bytes of code 41, prolog size 4, PerfScore 47.88, instruction count 21, allocated bytes for code 41 (MethodHash=47afb33b) for method Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (FullOpts)
 ; ============================================================
 
  
-47 (-6.51%) : 18443.dasm - Microsoft.CodeAnalysis.PEModule+d__80:MoveNext():ubyte:this (FullOpts)
@@ -8,16 +8,16 @@
 ; 0 inlinees with PGO data; 41 single block inlinees; 17 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] ( 17, 16.50)     ref  ->  [ebp-0x30]  this class-hnd EH-live single-def <Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80>
-;  V01 loc0         [V01,T27] (  4,  2.50)   ubyte  ->  eax        
-;  V02 loc1         [V02,T28] (  3,  2.50)     int  ->  eax         single-def
-;  V03 loc2         [V03,T08] (  6,  9.50)     ref  ->  esi         class-hnd exact single-def <Microsoft.CodeAnalysis.PEModule>
+;  V00 this         [V00,T01] ( 17,  9.50)     ref  ->  [ebp-0x30]  this class-hnd EH-live single-def <Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80>
+;  V01 loc0         [V01,T26] (  4,  2.50)   ubyte  ->  eax        
+;  V02 loc1         [V02,T27] (  3,  2.50)     int  ->  eax         single-def
+;  V03 loc2         [V03,T08] (  6,  2.50)     ref  ->  esi         class-hnd exact single-def <Microsoft.CodeAnalysis.PEModule>
 ;* V04 loc3         [V04    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <System.Reflection.Metadata.TypeDefinitionHandleCollection>
 ;* V05 loc4         [V05    ] (  0,  0   )  struct ( 4) zero-ref    <System.Reflection.Metadata.TypeDefinitionHandle>
-;  V06 loc5         [V06    ] ( 11, 14.50)  struct ( 8) [ebp-0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Metadata.TypeDefinition>
+;  V06 loc5         [V06    ] ( 11,  4   )  struct ( 8) [ebp-0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Metadata.TypeDefinition>
 ;* V07 tmp0         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.PEModule+TypeDefToNamespace>
 ;* V08 tmp1         [V08    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.NamespaceDefinitionHandle>
-;  V09 tmp2         [V09,T29] (  2,  2   )     ref  ->  eax         class-hnd exact single-def "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
+;  V09 tmp2         [V09,T28] (  2,  2   )     ref  ->  eax         class-hnd exact single-def "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
 ;* V10 tmp3         [V10    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandleCollection>
 ;* V11 tmp4         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp5         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandleCollection+Enumerator>
@@ -25,89 +25,90 @@
 ;* V14 tmp7         [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp9         [V16    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
-;  V17 tmp10        [V17,T02] (  4, 16   )     ref  ->  ebx         class-hnd exact "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
+;  V17 tmp10        [V17,T02] (  4,  2   )     ref  ->  ebx         class-hnd exact "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
 ;* V18 tmp11        [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinition>
-;  V19 tmp12        [V19,T11] (  3,  6   )     int  ->  eax         "Inline return value spill temp"
+;  V19 tmp12        [V19,T10] (  3,  0.75)     int  ->  eax         "Inline return value spill temp"
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
-;  V21 tmp14        [V21,T12] (  3,  6   )     int  ->  registers   "Inline return value spill temp"
-;  V22 tmp15        [V22,T03] (  4, 16   )   byref  ->  eax         "impAppendStmt"
+;  V21 tmp14        [V21,T11] (  3,  0.75)     int  ->  registers   "Inline return value spill temp"
+;  V22 tmp15        [V22,T03] (  4,  2   )   byref  ->  eax         "impAppendStmt"
 ;* V23 tmp16        [V23    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V24 tmp17        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp18        [V25    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V26 tmp19        [V26    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
-;  V27 tmp20        [V27,T20] (  2,  4   )     int  ->  edx         "Inline stloc first use temp"
+;  V27 tmp20        [V27,T19] (  2,  0.50)     int  ->  edx         "Inline stloc first use temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V29 tmp22        [V29,T04] (  3, 12   )   byref  ->  ebx         "Inlining Arg"
-;  V30 tmp23        [V30,T05] (  3, 12   )     int  ->  edx         "Inlining Arg"
+;  V29 tmp22        [V29,T05] (  3,  1.50)   byref  ->  ebx         "Inlining Arg"
+;  V30 tmp23        [V30,T06] (  3,  1.50)     int  ->  edx         "Inlining Arg"
 ;* V31 tmp24        [V31    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V32 tmp25        [V32    ] (  0,  0   )  struct ( 4) zero-ref    "Inline return value spill temp" <System.Reflection.Metadata.NamespaceDefinitionHandle>
-;  V33 tmp26        [V33,T13] (  5,  5   )   byref  ->  eax         "impAppendStmt"
+;  V33 tmp26        [V33,T12] (  5,  5   )   byref  ->  eax         "impAppendStmt"
 ;* V34 tmp27        [V34    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V35 tmp28        [V35    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp29        [V36    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V37 tmp30        [V37    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
-;  V38 tmp31        [V38,T35] (  2,  1   )     int  ->  edx         "Inline stloc first use temp"
-;  V39 tmp32        [V39,T30] (  3,  1.50)     int  ->  eax         "Inline return value spill temp"
+;  V38 tmp31        [V38,T36] (  2,  1   )     int  ->  edx         "Inline stloc first use temp"
+;  V39 tmp32        [V39,T29] (  3,  1.50)     int  ->  eax         "Inline return value spill temp"
 ;* V40 tmp33        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V41 tmp34        [V41,T14] (  5,  5   )   byref  ->  esi         "Inlining Arg"
-;  V42 tmp35        [V42,T17] (  5,  5   )     int  ->  edx         "Inlining Arg"
-;  V43 tmp36        [V43,T31] (  3,  1.50)     int  ->  eax         "Inline stloc first use temp"
+;  V41 tmp34        [V41,T13] (  5,  5   )   byref  ->  esi         "Inlining Arg"
+;  V42 tmp35        [V42,T16] (  5,  5   )     int  ->  edx         "Inlining Arg"
+;  V43 tmp36        [V43,T30] (  3,  1.50)     int  ->  eax         "Inline stloc first use temp"
 ;* V44 tmp37        [V44    ] (  0,  0   )  ushort  ->  zero-ref    "Inline return value spill temp"
 ;* V45 tmp38        [V45    ] (  0,  0   )  ushort  ->  zero-ref    "Inline stloc first use temp"
 ;* V46 tmp39        [V46    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V47 tmp40        [V47    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp41        [V48    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.NamespaceDefinitionHandle>
-;  V49 tmp42        [V49,T15] (  5,  5   )   byref  ->  eax         "impAppendStmt"
+;  V49 tmp42        [V49,T14] (  5,  5   )   byref  ->  eax         "impAppendStmt"
 ;* V50 tmp43        [V50    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V51 tmp44        [V51    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V52 tmp45        [V52    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V53 tmp46        [V53    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
-;  V54 tmp47        [V54,T36] (  2,  1   )     int  ->  edx         "Inline stloc first use temp"
-;  V55 tmp48        [V55,T32] (  3,  1.50)     int  ->  eax         "Inline return value spill temp"
+;  V54 tmp47        [V54,T37] (  2,  1   )     int  ->  edx         "Inline stloc first use temp"
+;  V55 tmp48        [V55,T31] (  3,  1.50)     int  ->  eax         "Inline return value spill temp"
 ;* V56 tmp49        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V57 tmp50        [V57,T16] (  5,  5   )   byref  ->  esi         "Inlining Arg"
-;  V58 tmp51        [V58,T18] (  5,  5   )     int  ->  edx         "Inlining Arg"
-;  V59 tmp52        [V59,T33] (  3,  1.50)     int  ->  eax         "Inline stloc first use temp"
+;  V57 tmp50        [V57,T15] (  5,  5   )   byref  ->  esi         "Inlining Arg"
+;  V58 tmp51        [V58,T17] (  5,  5   )     int  ->  edx         "Inlining Arg"
+;  V59 tmp52        [V59,T32] (  3,  1.50)     int  ->  eax         "Inline stloc first use temp"
 ;* V60 tmp53        [V60    ] (  0,  0   )  ushort  ->  zero-ref    "Inline return value spill temp"
 ;* V61 tmp54        [V61    ] (  0,  0   )  ushort  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp55        [V62    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V63 tmp56        [V63    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V64 tmp57        [V64    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.NamespaceDefinitionHandle>
-;* V65 tmp58        [V65,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V66 tmp59        [V66,T00] (  5, 40   )   byref  ->  eax         "Inlining Arg"
+;* V65 tmp58        [V65,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V66 tmp59        [V66,T00] (  5,  5   )   byref  ->  eax         "Inlining Arg"
 ;* V67 tmp60        [V67    ] (  0,  0   )     int  ->  zero-ref    single-def "field V04._lastRowId (fldOffset=0x0)" P-INDEP
 ;* V68 tmp61        [V68    ] (  0,  0   )     int  ->  zero-ref    "field V05._rowId (fldOffset=0x0)" P-INDEP
-;  V69 tmp62        [V69    ] (  5,  7   )     ref  ->  [ebp-0x28]  do-not-enreg[X] addr-exposed "field V06._reader (fldOffset=0x0)" P-DEP
-;  V70 tmp63        [V70    ] (  7,  9.50)     int  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed "field V06._treatmentAndRowId (fldOffset=0x4)" P-DEP
-;  V71 tmp64        [V71,T37] (  2,  1   )     int  ->  edi         "field V07.TypeDef (fldOffset=0x0)" P-INDEP
-;  V72 tmp65        [V72,T38] (  2,  1   )     int  ->  eax         "field V07.NamespaceHandle (fldOffset=0x4)" P-INDEP
+;  V69 tmp62        [V69    ] (  5,  1.75)     ref  ->  [ebp-0x28]  do-not-enreg[X] addr-exposed "field V06._reader (fldOffset=0x0)" P-DEP
+;  V70 tmp63        [V70    ] (  7,  2.50)     int  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed "field V06._treatmentAndRowId (fldOffset=0x4)" P-DEP
+;  V71 tmp64        [V71,T38] (  2,  1   )     int  ->  edi         "field V07.TypeDef (fldOffset=0x0)" P-INDEP
+;  V72 tmp65        [V72,T39] (  2,  1   )     int  ->  eax         "field V07.NamespaceHandle (fldOffset=0x4)" P-INDEP
 ;* V73 tmp66        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V08._value (fldOffset=0x0)" P-INDEP
-;  V74 tmp67        [V74,T39] (  2,  1   )     int  ->  ecx         single-def "field V10._lastRowId (fldOffset=0x0)" P-INDEP
-;  V75 tmp68        [V75,T40] (  2,  1   )     int  ->  ecx         single-def "field V12._lastRowId (fldOffset=0x0)" P-INDEP
-;* V76 tmp69        [V76,T45] (  0,  0   )     int  ->  zero-ref    single-def "field V12._currentRowId (fldOffset=0x4)" P-INDEP
-;  V77 tmp70        [V77,T10] (  4,  6.50)     int  ->  [ebp-0x2C]  spill-single-def "field V16._rowId (fldOffset=0x0)" P-INDEP
-;  V78 tmp71        [V78,T19] (  2,  4   )     ref  ->  ebx         "field V18._reader (fldOffset=0x0)" P-INDEP
-;  V79 tmp72        [V79,T21] (  2,  4   )     int  ->  eax         "field V18._treatmentAndRowId (fldOffset=0x4)" P-INDEP
+;  V74 tmp67        [V74,T40] (  2,  1   )     int  ->  ecx         single-def "field V10._lastRowId (fldOffset=0x0)" P-INDEP
+;  V75 tmp68        [V75,T41] (  2,  1   )     int  ->  ecx         single-def "field V12._lastRowId (fldOffset=0x0)" P-INDEP
+;* V76 tmp69        [V76,T46] (  0,  0   )     int  ->  zero-ref    single-def "field V12._currentRowId (fldOffset=0x4)" P-INDEP
+;  V77 tmp70        [V77,T09] (  4,  1.25)     int  ->  [ebp-0x2C]  spill-single-def "field V16._rowId (fldOffset=0x0)" P-INDEP
+;  V78 tmp71        [V78,T18] (  2,  0.50)     ref  ->  ebx         "field V18._reader (fldOffset=0x0)" P-INDEP
+;  V79 tmp72        [V79,T20] (  2,  0.50)     int  ->  eax         "field V18._treatmentAndRowId (fldOffset=0x4)" P-INDEP
 ;* V80 tmp73        [V80    ] (  0,  0   )     int  ->  zero-ref    "field V20._rowId (fldOffset=0x0)" P-INDEP
 ;* V81 tmp74        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V23._rowId (fldOffset=0x0)" P-INDEP
-;  V82 tmp75        [V82,T22] (  2,  4   )     int  ->  edx         "field V25._rowId (fldOffset=0x0)" P-INDEP
+;  V82 tmp75        [V82,T21] (  2,  0.50)     int  ->  edx         "field V25._rowId (fldOffset=0x0)" P-INDEP
 ;* V83 tmp76        [V83    ] (  0,  0   )     int  ->  zero-ref    "field V26._rowId (fldOffset=0x0)" P-INDEP
-;  V84 tmp77        [V84,T34] (  3,  1.50)     int  ->  eax         "field V32._value (fldOffset=0x0)" P-INDEP
+;  V84 tmp77        [V84,T33] (  3,  1.50)     int  ->  eax         "field V32._value (fldOffset=0x0)" P-INDEP
 ;* V85 tmp78        [V85    ] (  0,  0   )     int  ->  zero-ref    "field V34._rowId (fldOffset=0x0)" P-INDEP
-;  V86 tmp79        [V86,T41] (  2,  1   )     int  ->  edx         "field V36._rowId (fldOffset=0x0)" P-INDEP
+;  V86 tmp79        [V86,T42] (  2,  1   )     int  ->  edx         "field V36._rowId (fldOffset=0x0)" P-INDEP
 ;* V87 tmp80        [V87    ] (  0,  0   )     int  ->  zero-ref    "field V37._rowId (fldOffset=0x0)" P-INDEP
-;  V88 tmp81        [V88,T42] (  2,  1   )     int  ->  eax         "field V48._value (fldOffset=0x0)" P-INDEP
+;  V88 tmp81        [V88,T43] (  2,  1   )     int  ->  eax         "field V48._value (fldOffset=0x0)" P-INDEP
 ;* V89 tmp82        [V89    ] (  0,  0   )     int  ->  zero-ref    "field V50._rowId (fldOffset=0x0)" P-INDEP
-;  V90 tmp83        [V90,T43] (  2,  1   )     int  ->  edx         "field V52._rowId (fldOffset=0x0)" P-INDEP
+;  V90 tmp83        [V90,T44] (  2,  1   )     int  ->  edx         "field V52._rowId (fldOffset=0x0)" P-INDEP
 ;* V91 tmp84        [V91    ] (  0,  0   )     int  ->  zero-ref    "field V53._rowId (fldOffset=0x0)" P-INDEP
-;  V92 tmp85        [V92,T44] (  2,  1   )     int  ->  eax         "field V64._value (fldOffset=0x0)" P-INDEP
+;  V92 tmp85        [V92,T45] (  2,  1   )     int  ->  eax         "field V64._value (fldOffset=0x0)" P-INDEP
 ;  V93 EHSlots      [V93    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V94 cse0         [V94,T06] (  3, 12   )     int  ->  edx         "CSE - moderate"
-;  V95 rat0         [V95,T07] (  3, 12   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
-;  V96 rat1         [V96,T23] (  3,  3   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
-;  V97 rat2         [V97,T24] (  3,  3   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
-;  V98 rat3         [V98,T25] (  3,  3   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
-;  V99 rat4         [V99,T26] (  3,  3   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
+;  V94 cse0         [V94,T34] (  3,  1.50)     int  ->  edx         "CSE - conservative"
+;* V95 rat0         [V95,T07] (  0,  0   )     int  ->  zero-ref    "ReplaceWithLclVar is creating a new local variable"
+;  V96 rat1         [V96,T22] (  3,  3   )     int  ->  edi         "ReplaceWithLclVar is creating a new local variable"
+;  V97 rat2         [V97,T23] (  3,  3   )     int  ->  edi         "ReplaceWithLclVar is creating a new local variable"
+;  V98 rat3         [V98,T24] (  3,  3   )     int  ->  edi         "ReplaceWithLclVar is creating a new local variable"
+;  V99 rat4         [V99,T25] (  3,  3   )     int  ->  edi         "ReplaceWithLclVar is creating a new local variable"
+;  V100 rat5        [V100,T35] (  3,  1.50)     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
 ;  TEMP_03                                     int  ->  [ebp-0x34]
 ;  TEMP_02                                     int  ->  [ebp-0x38]
 ;  TEMP_01                                     int  ->  [ebp-0x3C]
@@ -139,7 +140,7 @@ G_M34558_IG02:        ; bbWeight=1, gcVars=0000000000000002 {V00}, gcrefRegs=000
                        ;; size=10 bbWeight=1 PerfScore 5.25
 G_M34558_IG03:        ; bbWeight=0.50, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref
        cmp      eax, 1
-       je       G_M34558_IG22
+       je       G_M34558_IG13
        xor      eax, eax
        jmp      G_M34558_IG26
                        ;; size=16 bbWeight=0.50 PerfScore 1.75
@@ -156,43 +157,172 @@ G_M34558_IG04:        ; bbWeight=0.50, gcrefRegs=00000042 {ecx esi}, byrefRegs=0
        mov      dword ptr [edi+0x20], ecx
        mov      ecx, edi
        ; gcrRegs +[ecx]
-       jmp      G_M34558_IG22
+       jmp      G_M34558_IG13
                       ;; size=39 bbWeight=0.50 PerfScore 5.88
-G_M34558_IG05:        ; bbWeight=2, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[eax edi]
+G_M34558_IG05:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[eax esi edi]
+       mov      dword ptr [ecx+0x08], -1
+       xor      edx, edx
+       mov      dword ptr [ecx+0x1C], edx
+       mov      dword ptr [ecx+0x20], edx
+                       ;; size=15 bbWeight=0.50 PerfScore 1.62
+G_M34558_IG06:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+       xor      eax, eax
+       jmp      G_M34558_IG26
+                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M34558_IG07:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, dword ptr [ebp-0x24]
+       shr      eax, 24
+       movzx    eax, al
+       test     eax, eax
+       jne      G_M34558_IG10
+       mov      eax, gword ptr [ebp-0x28]
+       ; gcrRegs +[eax]
+       add      eax, 180
+       ; gcrRegs -[eax]
+       ; byrRegs +[eax]
+       mov      edx, dword ptr [ebp-0x24]
+       and      edx, 0xD1FFAB1E
+       dec      edx
+       imul     edx, dword ptr [eax+0x20]
+       lea      esi, bword ptr [eax+0x24]
+       ; byrRegs +[esi]
+       add      edx, dword ptr [eax+0x10]
+       cmp      byte  ptr [eax+0x07], 0
+       je       SHORT G_M34558_IG08
+       xor      eax, eax
+       ; byrRegs -[eax]
+       mov      ebx, edx
+       add      ebx, 2
+       adc      eax, 0
+       mov      dword ptr [ebp-0x34], eax
+       mov      edi, dword ptr [esi+0x04]
+       mov      eax, edi
+       sar      eax, 31
+       cmp      edi, ebx
+       sbb      eax, dword ptr [ebp-0x34]
+       jb       G_M34558_IG17
+       mov      eax, dword ptr [esi]
+       movzx    eax, word  ptr [eax+edx]
+       jmp      SHORT G_M34558_IG09
+                       ;; size=91 bbWeight=0.50 PerfScore 16.25
+G_M34558_IG08:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref
+       xor      eax, eax
+       mov      ebx, edx
+       add      ebx, 4
+       adc      eax, 0
+       mov      dword ptr [ebp-0x34], eax
+       mov      edi, dword ptr [esi+0x04]
+       mov      eax, edi
+       sar      eax, 31
+       cmp      edi, ebx
+       sbb      eax, dword ptr [ebp-0x34]
+       jb       G_M34558_IG17
+       mov      eax, dword ptr [esi]
+       mov      eax, dword ptr [eax+edx]
+       test     eax, 0xD1FFAB1E
+       jne      G_M34558_IG16
+                       ;; size=48 bbWeight=0.50 PerfScore 6.75
+G_M34558_IG09:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; byrRegs -[esi]
+       jmp      SHORT G_M34558_IG12
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M34558_IG10:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, gword ptr [ebp-0x28]
+       ; gcrRegs +[eax]
+       add      eax, 180
+       ; gcrRegs -[eax]
+       ; byrRegs +[eax]
+       mov      edx, dword ptr [ebp-0x24]
...
  
+49 (+83.05%) : 1732.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_Scan(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]) (FullOpts)
@@ -7,20 +7,23 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6, 22   )     ref  ->  esi         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
-;  V01 arg1         [V01,T01] (  3, 16   )  struct ( 8) [ebp+0x08]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
+;  V00 arg0         [V00,T00] ( 10, 25   )     ref  ->  esi         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
+;  V01 arg1         [V01,T01] (  5, 14   )  struct ( 8) [ebp+0x08]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
 ;  V02 cse0         [V02,T02] (  3, 12   )     int  ->  eax         "CSE - aggressive"
+;  V03 cse1         [V03,T04] (  3,  2   )     int  ->  ecx         "CSE - moderate"
+;  V04 cse2         [V04,T03] (  3,  5   )     int  ->  edi         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
-G_M47574_IG01:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+G_M47574_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     edi
        push     esi
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=6 bbWeight=8 PerfScore 20.00
-G_M47574_IG02:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=7 bbWeight=1 PerfScore 3.50
+G_M47574_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        push     dword ptr [ebp+0x0C]
        push     bword ptr [ebp+0x08]
        mov      ecx, esi
@@ -28,9 +31,37 @@ G_M47574_IG02:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     <unknown method>
        ; gcrRegs -[ecx]
        test     eax, eax
-       je       SHORT G_M47574_IG04
+       je       SHORT G_M47574_IG07
+                       ;; size=17 bbWeight=1 PerfScore 4.50
+G_M47574_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       push     dword ptr [ebp+0x0C]
+       push     bword ptr [ebp+0x08]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     <unknown method>
+       ; gcrRegs -[ecx]
+       test     eax, eax
+       jne      SHORT G_M47574_IG07
+       mov      ecx, dword ptr [esi+0x30]
+       mov      edi, dword ptr [ebp+0x0C]
+       cmp      ecx, edi
+       je       SHORT G_M47574_IG07
+                       ;; size=27 bbWeight=0.50 PerfScore 4.38
+G_M47574_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       inc      ecx
+       mov      dword ptr [esi+0x30], ecx
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M47574_IG05:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       push     dword ptr [ebp+0x0C]
+       push     bword ptr [ebp+0x08]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     <unknown method>
+       ; gcrRegs -[ecx]
+       test     eax, eax
+       je       SHORT G_M47574_IG07
                         ;; size=17 bbWeight=8 PerfScore 36.00
-G_M47574_IG03:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M47574_IG06:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        push     dword ptr [ebp+0x0C]
        push     bword ptr [ebp+0x08]
        mov      ecx, esi
@@ -38,21 +69,22 @@ G_M47574_IG03:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     <unknown method>
        ; gcrRegs -[ecx]
        test     eax, eax
-       jne      SHORT G_M47574_IG04
+       jne      SHORT G_M47574_IG07
        mov      eax, dword ptr [esi+0x30]
-       cmp      eax, dword ptr [ebp+0x0C]
-       je       SHORT G_M47574_IG04
+       cmp      eax, edi
+       je       SHORT G_M47574_IG07
        inc      eax
        mov      dword ptr [esi+0x30], eax
-       jmp      SHORT G_M47574_IG02
-                       ;; size=31 bbWeight=4 PerfScore 51.00
-G_M47574_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+       jmp      SHORT G_M47574_IG05
+                       ;; size=30 bbWeight=4 PerfScore 44.00
+G_M47574_IG07:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[esi]
        pop      esi
+       pop      edi
        pop      ebp
        ret      8
-                        ;; size=5 bbWeight=1 PerfScore 3.00
+                       ;; size=6 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 59, prolog size 4, PerfScore 110.00, instruction count 25, allocated bytes for code 59 (MethodHash=b0674629) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex2_Scan(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]) (FullOpts)
+; Total bytes of code 108, prolog size 5, PerfScore 97.12, instruction count 45, allocated bytes for code 108 (MethodHash=b0674629) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex2_Scan(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]) (FullOpts)
 ; ============================================================
 
  
+44 (+88.00%) : 6816.dasm - Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
@@ -8,67 +8,113 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  6, 22   )     ref  ->  esi         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
-;  V01 tmp0         [V01,T00] (  3, 36   )     ref  ->  ecx         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
+;  V00 this         [V00,T01] (  9, 22.50)     ref  ->  esi         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
+;  V01 tmp0         [V01,T00] (  6, 40.50)     ref  ->  edi         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
 ;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref   
-;  V03 tmp2         [V03,T03] (  4, 14   )     int  ->  eax        
-;  V04 tmp3         [V04,T02] (  3, 18   )     int  ->  ecx         "Inline stloc first use temp"
+;  V03 tmp2         [V03,T03] (  8, 15.75)     int  ->  registers  
+;  V04 tmp3         [V04,T02] (  6, 20.25)     int  ->  registers   "Inline stloc first use temp"
+;  V05 cse0         [V05,T04] (  3,  2.50)     int  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
 G_M16914_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     edi
        push     esi
+       push     ebx
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=6 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 4.50
 G_M16914_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        jmp      SHORT G_M16914_IG04
                        ;; size=2 bbWeight=1 PerfScore 2.00
-G_M16914_IG03:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M16914_IG03:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      eax, dword ptr [esi]
-       mov      eax, dword ptr [eax+0x50]
-       call     [eax+0x10]<unknown method>
+       mov      ebx, dword ptr [eax+0x50]
+       call     [ebx+0x10]<unknown method>
        ; gcrRegs -[ecx]
-                      ;; size=10 bbWeight=2 PerfScore 14.50
-G_M16914_IG04:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, gword ptr [esi+0x04]
-       ; gcrRegs +[ecx]
-       test     ecx, ecx
+       jmp      SHORT G_M16914_IG12
+                       ;; size=12 bbWeight=0.25 PerfScore 2.31
+G_M16914_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [esi+0x04]
+       ; gcrRegs +[edi]
+       test     edi, edi
        jne      SHORT G_M16914_IG06
-                      ;; size=7 bbWeight=8 PerfScore 26.00
-G_M16914_IG05:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
-       xor      eax, eax
+                     ;; size=7 bbWeight=1 PerfScore 3.25
+G_M16914_IG05:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       xor      ebx, ebx
        jmp      SHORT G_M16914_IG07
-                      ;; size=4 bbWeight=2 PerfScore 4.50
-G_M16914_IG06:        ; bbWeight=2, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs +[ecx]
-       mov      eax, dword ptr [ecx+0x08]
-                       ;; size=3 bbWeight=2 PerfScore 4.00
-G_M16914_IG07:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
-       mov      ecx, eax
+                     ;; size=4 bbWeight=0.25 PerfScore 0.56
+G_M16914_IG06:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[edi]
+       mov      ebx, dword ptr [edi+0x08]
+                       ;; size=3 bbWeight=0.25 PerfScore 0.50
+G_M16914_IG07:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       mov      eax, ebx
        cmp      dword ptr [esi+0x30], 0
        je       SHORT G_M16914_IG09
+                      ;; size=8 bbWeight=1 PerfScore 4.25
+G_M16914_IG08:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       lea      eax, [ebx+0x01]
+                       ;; size=3 bbWeight=0.25 PerfScore 0.12
+G_M16914_IG09:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       test     eax, eax
+       jg       SHORT G_M16914_IG03
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M16914_IG10:        ; bbWeight=0.12, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[esi]
+       jmp      SHORT G_M16914_IG18
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M16914_IG11:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[esi]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     [ebx+0x10]<unknown method>
+       ; gcrRegs -[ecx]
+                       ;; size=5 bbWeight=2 PerfScore 6.50
+G_M16914_IG12:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [esi+0x04]
+       ; gcrRegs +[edi]
+       test     edi, edi
+       jne      SHORT G_M16914_IG14
+                       ;; size=7 bbWeight=8 PerfScore 26.00
+G_M16914_IG13:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       xor      ecx, ecx
+       xor      eax, eax
+       jmp      SHORT G_M16914_IG15
+                       ;; size=6 bbWeight=2 PerfScore 5.00
+G_M16914_IG14:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[edi]
+       mov      eax, dword ptr [edi+0x08]
+                       ;; size=3 bbWeight=2 PerfScore 4.00
+G_M16914_IG15:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       mov      ecx, eax
+       cmp      dword ptr [esi+0x30], 0
+       je       SHORT G_M16914_IG17
                         ;; size=8 bbWeight=8 PerfScore 34.00
-G_M16914_IG08:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M16914_IG16:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        lea      ecx, [eax+0x01]
                        ;; size=3 bbWeight=2 PerfScore 1.00
-G_M16914_IG09:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M16914_IG17:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        test     ecx, ecx
-       jg       SHORT G_M16914_IG03
+       jg       SHORT G_M16914_IG11
                      ;; size=4 bbWeight=8 PerfScore 10.00
-G_M16914_IG10:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M16914_IG18:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[esi]
+       pop      ebx
        pop      esi
+       pop      edi
        pop      ebp
        ret      
-                     ;; size=3 bbWeight=1 PerfScore 2.00
+                       ;; size=5 bbWeight=1 PerfScore 3.00
 
-; Total bytes of code 50, prolog size 4, PerfScore 100.50, instruction count 24, allocated bytes for code 50 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
+; Total bytes of code 94, prolog size 6, PerfScore 108.50, instruction count 45, allocated bytes for code 94 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
 ; ============================================================
 
  
+28 (+103.70%) : 8036.dasm - System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (FullOpts)
@@ -7,9 +7,9 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5, 11   )     int  ->  eax        
-;  V01 arg1         [V01,T00] (  7, 19   )     int  ->  esi        
-;  V02 loc0         [V02,T02] (  2,  8   )     int  ->  edx        
+;  V00 arg0         [V00,T01] (  7, 13   )     int  ->  registers  
+;  V01 arg1         [V01,T00] ( 11, 23   )     int  ->  registers  
+;  V02 loc0         [V02,T02] (  4, 10   )     int  ->  edx        
 ;
 ; Lcl frame size = 0
 
@@ -22,22 +22,44 @@ G_M22426_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=8 bbWeight=1 PerfScore 2.75
 G_M22426_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        test     esi, esi
-       je       SHORT G_M22426_IG04
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M22426_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       je       SHORT G_M22426_IG08
        xor      edx, edx
        div      edx:eax, esi
        mov      eax, esi
        mov      esi, edx
        test     esi, esi
-       jne      SHORT G_M22426_IG03
-                       ;; size=12 bbWeight=4 PerfScore 108.00
-G_M22426_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+       je       SHORT G_M22426_IG07
+                       ;; size=16 bbWeight=1 PerfScore 28.25
+G_M22426_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       xor      edx, edx
+       div      edx:eax, esi
+       mov      eax, edx
+       test     eax, eax
+       jne      SHORT G_M22426_IG06
+                       ;; size=10 bbWeight=4 PerfScore 107.00
+G_M22426_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       mov      eax, esi
+                       ;; size=2 bbWeight=1 PerfScore 0.25
+G_M22426_IG05:        ; bbWeight=1, epilog, nogc, extend
        pop      esi
        pop      ebp
        ret      
                        ;; size=3 bbWeight=1 PerfScore 2.00
+G_M22426_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      ecx, eax
+       mov      eax, esi
+       mov      esi, ecx
+       jmp      SHORT G_M22426_IG03
+                       ;; size=8 bbWeight=2 PerfScore 5.50
+G_M22426_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, eax
+       jmp      SHORT G_M22426_IG04
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
+G_M22426_IG08:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, eax
+       jmp      SHORT G_M22426_IG04
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 27, prolog size 8, PerfScore 114.00, instruction count 16, allocated bytes for code 27 (MethodHash=f186a865) for method System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (FullOpts)
+; Total bytes of code 55, prolog size 8, PerfScore 148.00, instruction count 30, allocated bytes for code 55 (MethodHash=f186a865) for method System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (FullOpts)
 ; ============================================================
 
  
  
benchmarks.run_pgo.windows.x86.checked.mch
-42 (-8.88%) : 73217.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier0-FullOpts)
@@ -8,11 +8,11 @@
 ; 3 inlinees with PGO data; 28 single block inlinees; 8 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 13, 15   )     ref  ->  [ebp-0x34]  this class-hnd EH-live single-def <Microsoft.CodeAnalysis.PEModule>
+;  V00 this         [V00,T04] ( 13, 11.50)     ref  ->  [ebp-0x2C]  this class-hnd EH-live single-def <Microsoft.CodeAnalysis.PEModule>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op <System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator>
 ;* V02 loc1         [V02    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op <System.Reflection.Metadata.CustomAttributeHandleCollection>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 4) zero-ref    <System.Reflection.Metadata.CustomAttributeHandle>
-;  V04 loc3         [V04,T10] (  3,  9   )     int  ->  [ebp-0x24] 
+;  V04 loc3         [V04,T08] (  3,  2   )     int  ->  [ebp-0x24] 
 ;* V05 loc4         [V05    ] (  0,  0   )  struct ( 4) zero-ref    <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V06 loc5         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Reflection.Metadata.CustomAttribute>
 ;* V07 loc6         [V07,T31] (  0,  0   )   ubyte  ->  zero-ref   
@@ -31,37 +31,37 @@
 ;* V20 tmp12        [V20    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttributeHandle>
 ;  V21 tmp13        [V21,T15] (  3,  6   )     ref  ->  edx         class-hnd exact "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
 ;* V22 tmp14        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttribute>
-;  V23 tmp15        [V23,T25] (  2,  2   )     int  ->  edi         "Inline return value spill temp"
+;  V23 tmp15        [V23,T24] (  2,  2   )     int  ->  edi         "Inline return value spill temp"
 ;* V24 tmp16        [V24    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.CustomAttributeHandle>
 ;* V25 tmp17        [V25    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V26 tmp18        [V26,T07] (  5, 10   )   byref  ->  edx         "impAppendStmt"
+;  V26 tmp18        [V26,T06] (  5, 10   )   byref  ->  edx         "impAppendStmt"
 ;* V27 tmp19        [V27    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.CustomAttributeHandle>
 ;* V28 tmp20        [V28    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp21        [V29    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttributeHandle>
 ;* V30 tmp22        [V30    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.CustomAttributeHandle>
-;  V31 tmp23        [V31,T26] (  2,  2   )     int  ->  edi         "Inline stloc first use temp"
-;  V32 tmp24        [V32,T08] (  5, 10   )   byref  ->  ebx         "Inlining Arg"
+;  V31 tmp23        [V31,T25] (  2,  2   )     int  ->  edi         "Inline stloc first use temp"
+;  V32 tmp24        [V32,T07] (  5, 10   )   byref  ->  ebx         "Inlining Arg"
 ;  V33 tmp25        [V33,T09] (  5, 10   )     int  ->  edi         "Inlining Arg"
 ;* V34 tmp26        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V35 tmp27        [V35,T19] (  4,  4   )     int  ->  edx         "Inline return value spill temp"
+;  V35 tmp27        [V35,T18] (  4,  4   )     int  ->  edx         "Inline return value spill temp"
 ;* V36 tmp28        [V36    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V37 tmp29        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V38 tmp30        [V38    ] (  0,  0   )  ushort  ->  zero-ref    "Inline return value spill temp"
 ;* V39 tmp31        [V39    ] (  0,  0   )  ushort  ->  zero-ref    "Inline stloc first use temp"
 ;* V40 tmp32        [V40    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
-;  V41 tmp33        [V41,T20] (  2,  4   )     int  ->  edi         "Span.get_Item index"
-;  V42 tmp34        [V42,T21] (  3,  3   )     int  ->  edi         "Inline stloc first use temp"
-;  V43 tmp35        [V43,T22] (  3,  3   )     int  ->  edx         "Inline stloc first use temp"
+;  V41 tmp33        [V41,T19] (  2,  4   )     int  ->  eax         "Span.get_Item index"
+;  V42 tmp34        [V42,T20] (  3,  3   )     int  ->  eax         "Inline stloc first use temp"
+;  V43 tmp35        [V43,T21] (  3,  3   )     int  ->  edx         "Inline stloc first use temp"
 ;* V44 tmp36        [V44    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
 ;* V45 tmp37        [V45    ] (  0,  0   )  struct ( 8) zero-ref    "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
 ;* V46 tmp38        [V46    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp39        [V47    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.EntityHandle>
 ;* V48 tmp40        [V48    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V49 tmp41        [V49    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V50 tmp42        [V50,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V51 tmp43        [V51,T18] (  2,  5   )     ref  ->  edi         single-def "field V01._reader (fldOffset=0x0)" P-INDEP
-;  V52 tmp44        [V52,T11] (  2,  9   )     int  ->  esi         single-def "field V01._lastRowId (fldOffset=0x4)" P-INDEP
-;  V53 tmp45        [V53,T00] (  6, 33   )     int  ->  ebx         "field V01._currentRowId (fldOffset=0x8)" P-INDEP
+;* V50 tmp42        [V50,T01] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V51 tmp43        [V51,T11] (  2,  1.50)     ref  ->  edi         single-def "field V01._reader (fldOffset=0x0)" P-INDEP
+;  V52 tmp44        [V52,T10] (  2,  2   )     int  ->  esi         single-def "field V01._lastRowId (fldOffset=0x4)" P-INDEP
+;  V53 tmp45        [V53,T00] (  6,  5   )     int  ->  ebx         "field V01._currentRowId (fldOffset=0x8)" P-INDEP
 ;* V54 tmp46        [V54    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._reader (fldOffset=0x0)" P-INDEP
 ;* V55 tmp47        [V55    ] (  0,  0   )     int  ->  zero-ref    single-def "field V02._firstRowId (fldOffset=0x4)" P-INDEP
 ;* V56 tmp48        [V56    ] (  0,  0   )     int  ->  zero-ref    single-def "field V02._lastRowId (fldOffset=0x8)" P-INDEP
@@ -72,37 +72,35 @@
 ;* V61 tmp53        [V61    ] (  0,  0   )     int  ->  zero-ref    "field V08._vToken (fldOffset=0x0)" P-INDEP
 ;* V62 tmp54        [V62    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._reader (fldOffset=0x0)" P-INDEP
 ;* V63 tmp55        [V63    ] (  0,  0   )     int  ->  zero-ref    single-def "field V11._firstRowId (fldOffset=0x4)" P-INDEP
-;  V64 tmp56        [V64,T27] (  2,  2   )     int  ->  esi         single-def "field V11._lastRowId (fldOffset=0x8)" P-INDEP
-;  V65 tmp57        [V65,T24] (  2,  2   )     ref  ->  edi         single-def "field V12._reader (fldOffset=0x0)" P-INDEP
-;  V66 tmp58        [V66,T28] (  2,  2   )     int  ->  esi         single-def "field V12._lastRowId (fldOffset=0x4)" P-INDEP
+;  V64 tmp56        [V64,T26] (  2,  2   )     int  ->  esi         single-def "field V11._lastRowId (fldOffset=0x8)" P-INDEP
+;  V65 tmp57        [V65,T23] (  2,  2   )     ref  ->  edi         single-def "field V12._reader (fldOffset=0x0)" P-INDEP
+;  V66 tmp58        [V66,T27] (  2,  2   )     int  ->  esi         single-def "field V12._lastRowId (fldOffset=0x4)" P-INDEP
 ;* V67 tmp59        [V67,T32] (  0,  0   )     int  ->  zero-ref    single-def "field V12._currentRowId (fldOffset=0x8)" P-INDEP
-;  V68 tmp60        [V68,T05] (  6, 15   )     int  ->  [ebp-0x28]  "field V16._rowId (fldOffset=0x0)" P-INDEP
-;  V69 tmp61        [V69,T12] (  2,  8   )     int  ->  eax         "field V18._rowId (fldOffset=0x0)" P-INDEP
-;  V70 tmp62        [V70,T13] (  2,  8   )     int  ->  eax         "field V20._rowId (fldOffset=0x0)" P-INDEP
+;  V68 tmp60        [V68,T05] (  6,  4.50)     int  ->  [ebp-0x28]  "field V16._rowId (fldOffset=0x0)" P-INDEP
+;  V69 tmp61        [V69,T12] (  2,  1   )     int  ->  eax         "field V18._rowId (fldOffset=0x0)" P-INDEP
+;  V70 tmp62        [V70,T13] (  2,  1   )     int  ->  eax         "field V20._rowId (fldOffset=0x0)" P-INDEP
 ;* V71 tmp63        [V71    ] (  0,  0   )     ref  ->  zero-ref    "field V22._reader (fldOffset=0x0)" P-INDEP
 ;* V72 tmp64        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V22._treatmentAndRowId (fldOffset=0x4)" P-INDEP
 ;* V73 tmp65        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V24._rowId (fldOffset=0x0)" P-INDEP
 ;* V74 tmp66        [V74    ] (  0,  0   )     int  ->  zero-ref    "field V27._rowId (fldOffset=0x0)" P-INDEP
-;  V75 tmp67        [V75,T29] (  2,  2   )     int  ->  edi         "field V29._rowId (fldOffset=0x0)" P-INDEP
+;  V75 tmp67        [V75,T28] (  2,  2   )     int  ->  edi         "field V29._rowId (fldOffset=0x0)" P-INDEP
 ;* V76 tmp68        [V76    ] (  0,  0   )     int  ->  zero-ref    "field V30._rowId (fldOffset=0x0)" P-INDEP
 ;* V77 tmp69        [V77    ] (  0,  0   )   byref  ->  zero-ref    "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V78 tmp70        [V78    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x4)" P-INDEP
-;  V79 tmp71        [V79,T23] (  3,  3   )     int  ->  edx         "field V44._vToken (fldOffset=0x0)" P-INDEP
+;  V79 tmp71        [V79,T22] (  3,  3   )     int  ->  edx         "field V44._vToken (fldOffset=0x0)" P-INDEP
 ;* V80 tmp72        [V80    ] (  0,  0   )   byref  ->  zero-ref    "field V45._reference (fldOffset=0x0)" P-INDEP
 ;* V81 tmp73        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x4)" P-INDEP
 ;* V82 tmp74        [V82    ] (  0,  0   )     int  ->  zero-ref    "field V47._vToken (fldOffset=0x0)" P-INDEP
-;  V83 tmp75        [V83,T30] (  2,  2   )     int  ->  edx         "field V48._rowId (fldOffset=0x0)" P-INDEP
-;  V84 tmp76        [V84,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
-;  V85 tmp77        [V85,T02] (  3, 24   )     int  ->  edx         "index expr"
+;  V83 tmp75        [V83,T29] (  2,  2   )     int  ->  edx         "field V48._rowId (fldOffset=0x0)" P-INDEP
+;  V84 tmp76        [V84,T02] (  3,  3   )     ref  ->  ecx         "arr expr"
+;  V85 tmp77        [V85,T03] (  3,  3   )     int  ->  edx         "index expr"
 ;  V86 EHSlots      [V86    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V87 cse0         [V87,T06] (  3, 12   )     ref  ->  ecx         "CSE - moderate"
-;  V88 rat0         [V88,T16] (  3,  6   )     int  ->  [ebp-0x2C]  spill-single-def "ReplaceWithLclVar is creating a new local variable"
-;  V89 rat1         [V89,T17] (  3,  6   )     int  ->  [ebp-0x30]  spill-single-def "ReplaceWithLclVar is creating a new local variable"
-;  TEMP_03                                     int  ->  [ebp-0x38]
-;  TEMP_02                                     int  ->  [ebp-0x3C]
-;  TEMP_01                                     int  ->  [ebp-0x40]
+;  V87 cse0         [V87,T30] (  3,  1.50)     ref  ->  ecx         "CSE - conservative"
+;  V88 rat0         [V88,T16] (  3,  6   )     int  ->  esi         "ReplaceWithLclVar is creating a new local variable"
+;  V89 rat1         [V89,T17] (  3,  6   )     int  ->  esi         "ReplaceWithLclVar is creating a new local variable"
+;  TEMP_01                                     int  ->  [ebp-0x30]
 ;
-; Lcl frame size = 52
+; Lcl frame size = 36
 
 G_M13056_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
        push     ebp
@@ -110,16 +108,16 @@ G_M13056_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=000000
        push     edi
        push     esi
        push     ebx
-       sub      esp, 52
+       sub      esp, 36
        xor      eax, eax
        mov      dword ptr [ebp-0x20], eax
        mov      dword ptr [ebp-0x1C], eax
        mov      dword ptr [ebp-0x18], eax
        mov      dword ptr [ebp-0x14], eax
-       mov      gword ptr [ebp-0x34], ecx
+       mov      gword ptr [ebp-0x2C], ecx
        ; GC ptr vars +{V00}
                        ;; size=26 bbWeight=1 PerfScore 9.75
-G_M13056_IG02:        ; bbWeight=1, gcVars=0000000000000008 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
+G_M13056_IG02:        ; bbWeight=1, gcVars=0000000000000010 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[ecx]
        cmp      byte  ptr [ecx+0x35], 0
        jne      G_M13056_IG20
@@ -131,91 +129,90 @@ G_M13056_IG03:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        mov      edi, eax
        ; gcrRegs +[edi]
        xor      ebx, ebx
-       jmp      SHORT G_M13056_IG06
+       jmp      SHORT G_M13056_IG07
                      ;; size=18 bbWeight=1 PerfScore 7.50
-G_M13056_IG04:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+G_M13056_IG04:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
        mov      ecx, gword ptr [edi+0x1F0]
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       SHORT G_M13056_IG13
+       je       SHORT G_M13056_IG05
        mov      edx, ebx
        and      edx, 0xD1FFAB1E
        dec      edx
        cmp      edx, dword ptr [ecx+0x04]
-       jae      SHORT G_M13056_IG07
+       jae      SHORT G_M13056_IG08
        mov      eax, dword ptr [ecx+4*edx+0x08]
-                       ;; size=28 bbWeight=4 PerfScore 40.00
-G_M13056_IG05:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M13056_IG06
+                       ;; size=30 bbWeight=0.50 PerfScore 6.00
+G_M13056_IG05:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      eax, ebx
+       and      eax, 0xD1FFAB1E
+                       ;; size=7 bbWeight=0.50 PerfScore 0.25
+G_M13056_IG06:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, gword ptr [ebp-0x2C]
        ; gcrRegs +[ecx]
        mov      dword ptr [ebp-0x28], eax
        mov      edx, eax
        call     [<unknown method>]
        ; gcrRegs -[ecx]
        cmp      eax, -1
+       mov      dword ptr [ebp-0x24], eax
        jne      SHORT G_M13056_IG14
-                        ;; size=19 bbWeight=4 PerfScore 26.00
-G_M13056_IG06:        ; bbWeight=8, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=22 bbWeight=0.50 PerfScore 3.75
+G_M13056_IG07:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
        cmp      ebx, esi
        jge      G_M13056_IG19
        inc      ebx
        jmp      SHORT G_M13056_IG04
-                      ;; size=11 bbWeight=8 PerfScore 28.00
-G_M13056_IG07:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+                      ;; size=11 bbWeight=1 PerfScore 3.50
+G_M13056_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edi]
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M13056_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.Reflection.Throw:InvalidCast()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.Reflection.Throw:InvalidCodedIndex()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.Reflection.Throw:OutOfBounds()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [Microsoft.CodeAnalysis.PEModule:ThrowMetadataDisposed()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG12:        ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+G_M13056_IG13:        ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx]
-       mov      dword ptr [ebp-0x24], eax
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       mov      eax, dword ptr [ebp-0x24]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      ecx, gword ptr [ebp-0x2C]
        ; gcrRegs +[ecx]
        jmp      SHORT G_M13056_IG15
-                      ;; size=17 bbWeight=0 PerfScore 0.00
-G_M13056_IG13:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx] +[edi]
-       mov      eax, ebx
-       and      eax, 0xD1FFAB1E
-       jmp      SHORT G_M13056_IG05
-                       ;; size=9 bbWeight=4 PerfScore 10.00
+                      ;; size=11 bbWeight=0 PerfScore 0.00
 G_M13056_IG14:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edi]
+       ; gcrRegs -[ecx]
        mov      esi, dword ptr [ebp-0x28]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      ecx, gword ptr [ebp-0x2C]
        ; gcrRegs +[ecx]
        mov      byte  ptr [ecx+0x35], 2
        cmp      gword ptr [ecx+0x0C], 0
-       je       SHORT G_M13056_IG12
+       je       SHORT G_M13056_IG13
                       ;; size=16 bbWeight=1 PerfScore 7.00
 G_M13056_IG15:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        cmp      byte  ptr [ecx+0x34], 0
-       jne      SHORT G_M13056_IG11
+       jne      SHORT G_M13056_IG12
...
  
-29 (-8.66%) : 81661.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax:get_Modifiers():Microsoft.CodeAnalysis.SyntaxTokenList:this (Tier1)
@@ -9,36 +9,38 @@
 ; 2 inlinees with PGO data; 13 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  9, 16.00)     ref  ->  esi         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax>
-;  V01 RetBuf       [V01,T06] (  7,  6.00)   byref  ->  edi         single-def
-;  V02 loc0         [V02,T11] (  5,  3   )     ref  ->  [ebp-0x20]  class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
+;  V00 this         [V00,T00] (  9,  9.00)     ref  ->  esi         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax>
+;  V01 RetBuf       [V01,T01] (  7,  6.00)   byref  ->  edi         single-def
+;  V02 loc0         [V02,T09] (  5,  3   )     ref  ->  [ebp-0x1C]  class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op <Microsoft.CodeAnalysis.SyntaxTokenList>
-;  V04 loc2         [V04,T08] (  5,  6   )     ref  ->  ecx         class-hnd single-def "spilling ret_expr" <Microsoft.CodeAnalysis.GreenNode>
-;  V05 tmp1         [V05,T07] (  4,  8.00)     int  ->  [ebp-0x10]  "impAppendStmt"
+;  V04 loc2         [V04,T03] (  5,  6   )     ref  ->  ecx         class-hnd single-def "spilling ret_expr" <Microsoft.CodeAnalysis.GreenNode>
+;  V05 tmp1         [V05,T02] (  4,  8.00)     int  ->  [ebp-0x10]  "impAppendStmt"
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.SyntaxTokenList>
 ;  V07 tmp3         [V07,T14] (  4,  2   )     ref  ->  ebx         "guarded devirt return temp"
 ;* V08 tmp4         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MethodDeclarationSyntax>
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V10 tmp6         [V10,T00] (  6, 82.00)     int  ->  [ebp-0x14]  "Inlining Arg"
-;  V11 tmp7         [V11,T12] (  3,  3.00)     ref  ->  eax         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V12 tmp8         [V12,T05] (  5, 11.00)     int  ->  [ebp-0x18]  "Inline stloc first use temp"
-;  V13 tmp9         [V13,T04] (  3, 17.00)     ref  ->  [ebp-0x24]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V14 tmp10        [V14,T03] (  4, 18.00)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V15 tmp11        [V15,T01] (  3, 20.00)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;* V10 tmp6         [V10,T06] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V11 tmp7         [V11,T10] (  3,  3.00)     ref  ->  eax         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V12 tmp8         [V12,T07] (  4,  3.50)     int  ->  [ebp-0x14]  "Inline stloc first use temp"
+;  V13 tmp9         [V13,T11] (  3,  3.00)     ref  ->  [ebp-0x20]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V14 tmp10        [V14,T05] (  4,  4.00)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V15 tmp11        [V15,T13] (  3,  2.50)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
 ;* V16 tmp12        [V16    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
 ;* V18 tmp14        [V18    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
-;  V19 tmp15        [V19,T10] (  4,  3.13)     int  ->  [ebp-0x1C]  "Inline stloc first use temp"
-;* V20 tmp16        [V20,T19] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V21 tmp17        [V21,T13] (  6,  2.63)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V22 tmp18        [V22,T20] (  4,  0.38)     int  ->  ecx         "Inline stloc first use temp"
-;* V23 tmp19        [V23,T18] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._parent (fldOffset=0x0)" P-INDEP
+;  V19 tmp15        [V19,T08] (  4,  3.13)     int  ->  [ebp-0x18]  "Inline stloc first use temp"
+;* V20 tmp16        [V20,T21] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V21 tmp17        [V21,T12] (  6,  2.63)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V22 tmp18        [V22,T22] (  4,  0.38)     int  ->  ecx         "Inline stloc first use temp"
+;* V23 tmp19        [V23,T20] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._parent (fldOffset=0x0)" P-INDEP
 ;  V24 tmp20        [V24,T15] (  2,  2.00)     ref  ->  ecx         single-def "field V06.<Node>k__BackingField (fldOffset=0x4)" P-INDEP
 ;  V25 tmp21        [V25,T16] (  2,  2.00)     int  ->  ebx         single-def "field V06._index (fldOffset=0x8)" P-INDEP
 ;  V26 tmp22        [V26,T17] (  2,  2.00)     int  ->  eax         single-def "field V06.<Position>k__BackingField (fldOffset=0xc)" P-INDEP
-;  V27 tmp23        [V27,T09] (  3,  6.00)     ref  ->  [ebp-0x28]  spill-single-def "argument with side effect"
+;  V27 tmp23        [V27,T04] (  3,  6.00)     ref  ->  [ebp-0x24]  spill-single-def "argument with side effect"
+;  V28 cse0         [V28,T18] (  2,  2.00)     int  ->  eax         "CSE - moderate"
+;  V29 cse1         [V29,T19] (  2,  1.00)     int  ->  eax         "CSE - conservative"
 ;
-; Lcl frame size = 28
+; Lcl frame size = 24
 
 G_M57630_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -46,7 +48,7 @@ G_M57630_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 28
+       sub      esp, 24
        mov      esi, ecx
        ; gcrRegs +[esi]
        mov      edi, edx
@@ -56,17 +58,16 @@ G_M57630_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080
        mov      ecx, gword ptr [esi+0x0C]
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], 0xD1FFAB1E
-       jne      G_M57630_IG17
+       jne      G_M57630_IG15
        mov      ebx, gword ptr [ecx+0x10]
        ; gcrRegs +[ebx]
-       mov      gword ptr [ebp-0x20], ebx
+       mov      gword ptr [ebp-0x1C], ebx
        ; GC ptr vars +{V02}
        test     ebx, ebx
-       je       G_M57630_IG18
+       je       G_M57630_IG16
                      ;; size=29 bbWeight=1 PerfScore 10.25
-G_M57630_IG03:        ; bbWeight=1.00, gcVars=00000800 {V02}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
+G_M57630_IG03:        ; bbWeight=1.00, gcVars=00000200 {V02}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
        ; gcrRegs -[ecx ebx]
-       mov      dword ptr [ebp-0x14], 1
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      edx, 1
@@ -77,59 +78,47 @@ G_M57630_IG03:        ; bbWeight=1.00, gcVars=00000800 {V02}, gcrefRegs=00000040
        mov      eax, dword ptr [eax+0x10]
        ; gcrRegs -[eax]
        mov      dword ptr [ebp-0x10], eax
-       jmp      SHORT G_M57630_IG10
-                       ;; size=32 bbWeight=1.00 PerfScore 10.75
-G_M57630_IG04:        ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+       jmp      SHORT G_M57630_IG08
+                       ;; size=25 bbWeight=1.00 PerfScore 9.75
+G_M57630_IG04:        ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        xor      eax, eax
-       mov      dword ptr [ebp-0x18], eax
+       mov      dword ptr [ebp-0x14], eax
        mov      edx, gword ptr [esi+0x0C]
        ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x24], edx
+       mov      gword ptr [ebp-0x20], edx
        ; GC ptr vars +{V13}
-                     ;; size=11 bbWeight=1.00 PerfScore 4.25
-G_M57630_IG05:        ; bbWeight=8.00, gcVars=00000810 {V02 V13}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
-       ; gcrRegs -[edx]
-       mov      ecx, dword ptr [ebp-0x14]
-       dec      ecx
-       mov      dword ptr [ebp-0x14], ecx
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       mov      edx, dword ptr [ebp-0x14]
+       xor      edx, edx
+       ; gcrRegs -[edx]
        call     [Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax:GetCachedSlot(int):Microsoft.CodeAnalysis.SyntaxNode:this]
        ; gcrRegs -[ecx] +[eax]
        test     eax, eax
-       jne      SHORT G_M57630_IG09
-       mov      ecx, gword ptr [ebp-0x24]
+       jne      SHORT G_M57630_IG07
+       mov      ecx, gword ptr [ebp-0x20]
        ; gcrRegs +[ecx]
-       mov      edx, dword ptr [ebp-0x14]
+       xor      edx, edx
        mov      eax, dword ptr [ecx]
        ; gcrRegs -[eax]
        mov      eax, dword ptr [eax+0x30]
+       ; GC ptr vars -{V13}
        call     [eax+0x10]<unknown method>
        ; gcrRegs -[ecx] +[eax]
        test     eax, eax
-       je       SHORT G_M57630_IG07
-                       ;; size=40 bbWeight=8.00 PerfScore 144.00
-G_M57630_IG06:        ; bbWeight=4.00, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref
-       mov      ecx, dword ptr [ebp-0x18]
-       add      ecx, dword ptr [eax+0x04]
-       mov      dword ptr [ebp-0x18], ecx
-                       ;; size=9 bbWeight=4.00 PerfScore 20.00
-G_M57630_IG07:        ; bbWeight=8.00, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       je       SHORT G_M57630_IG06
+                       ;; size=42 bbWeight=1.00 PerfScore 18.50
+G_M57630_IG05:        ; bbWeight=0.50, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref
+       mov      eax, dword ptr [eax+0x04]
        ; gcrRegs -[eax]
-       mov      edx, dword ptr [ebp-0x14]
-       test     edx, edx
-       mov      dword ptr [ebp-0x14], edx
-       jg       SHORT G_M57630_IG05
-                       ;; size=10 bbWeight=8.00 PerfScore 26.00
-G_M57630_IG08:        ; bbWeight=1.00, gcVars=00000800 {V02}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
-       ; GC ptr vars -{V13}
-       mov      eax, dword ptr [ebp-0x18]
+       mov      dword ptr [ebp-0x14], eax
+                       ;; size=6 bbWeight=0.50 PerfScore 1.50
+G_M57630_IG06:        ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       mov      eax, dword ptr [ebp-0x14]
        add      eax, dword ptr [esi+0x10]
        mov      dword ptr [ebp-0x10], eax
-       jmp      SHORT G_M57630_IG10
+       jmp      SHORT G_M57630_IG08
                         ;; size=11 bbWeight=1.00 PerfScore 7.00
-G_M57630_IG09:        ; bbWeight=1.00, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref
+G_M57630_IG07:        ; bbWeight=1.00, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref
        ; gcrRegs +[eax]
        mov      ecx, dword ptr [eax+0x10]
        mov      edx, gword ptr [eax+0x0C]
@@ -137,22 +126,22 @@ G_M57630_IG09:        ; bbWeight=1.00, gcrefRegs=00000041 {eax esi}, byrefRegs=0
        add      ecx, dword ptr [edx+0x04]
        mov      eax, ecx
        ; gcrRegs -[eax]
-       add      eax, dword ptr [ebp-0x18]
+       add      eax, dword ptr [ebp-0x14]
        mov      dword ptr [ebp-0x10], eax
                        ;; size=17 bbWeight=1.00 PerfScore 10.25
-G_M57630_IG10:        ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+G_M57630_IG08:        ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        ; gcrRegs -[edx]
        xor      edx, edx
-       mov      dword ptr [ebp-0x1C], edx
+       mov      dword ptr [ebp-0x18], edx
        mov      edx, gword ptr [esi+0x0C]
        ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x28], edx
+       mov      gword ptr [ebp-0x24], edx
        ; GC ptr vars +{V27}
        mov      ecx, edx
        ; gcrRegs +[ecx]
        xor      edx, edx
        ; gcrRegs -[edx]
-       mov      ebx, gword ptr [ebp-0x28]
+       mov      ebx, gword ptr [ebp-0x24]
        ; gcrRegs +[ebx]
        mov      ebx, dword ptr [ebx]
        ; gcrRegs -[ebx]
@@ -161,32 +150,32 @@ G_M57630_IG10:        ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000
        call     [ebx+0x10]<unknown method>
        ; gcrRegs -[ecx] +[eax]
        test     eax, eax
-       je       SHORT G_M57630_IG15
+       je       SHORT G_M57630_IG13
                      ;; size=30 bbWeight=1.00 PerfScore 14.00
-G_M57630_IG11:        ; bbWeight=0.50, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref, isz
+G_M57630_IG09:        ; bbWeight=0.50, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref, isz
        cmp      word  ptr [eax+0x08], 1
-       jne      SHORT G_M57630_IG14
+       jne      SHORT G_M57630_IG12
                      ;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M57630_IG12:        ; bbWeight=0.13, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref, isz
+G_M57630_IG10:        ; bbWeight=0.13, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref, isz
        movzx    ecx, byte  ptr [eax+0x0B]
        cmp      ecx, 255
-       je       SHORT G_M57630_IG20
+       je       SHORT G_M57630_IG18
                      ;; size=12 bbWeight=0.13 PerfScore 0.41
-G_M57630_IG13:        ; bbWeight=0.13, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+G_M57630_IG11:        ; bbWeight=0.13, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        ; gcrRegs -[eax]
        mov      ebx, ecx
-       mov      dword ptr [ebp-0x1C], ebx
-       jmp      SHORT G_M57630_IG15
+       mov      dword ptr [ebp-0x18], ebx
+       jmp      SHORT G_M57630_IG13
                         ;; size=7 bbWeight=0.13 PerfScore 0.41
-G_M57630_IG14:        ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+G_M57630_IG12:        ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
        mov      ebx, 1
-       mov      dword ptr [ebp-0x1C], ebx
+       mov      dword ptr [ebp-0x18], ebx
                       ;; size=8 bbWeight=1.00 PerfScore 1.25
-G_M57630_IG15:        ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       mov      ecx, gword ptr [ebp-0x20]
+G_M57630_IG13:        ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+       mov      ecx, gword ptr [ebp-0x1C]
        ; gcrRegs +[ecx]
        mov      eax, dword ptr [ebp-0x10]
-       mov      ebx, dword ptr [ebp-0x1C]
+       mov      ebx, dword ptr [ebp-0x18]
        mov      edx, edi
        ; byrRegs +[edx]
        ; GC ptr vars -{V02}
@@ -201,7 +190,7 @@ G_M57630_IG15:        ; bbWeight=1.00, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      dword ptr [edi+0x08], ebx
        mov      dword ptr [edi+0x0C], eax
                        ;; size=30 bbWeight=1.00 PerfScore 7.75
-G_M57630_IG16:        ; bbWeight=1.00, epilog, nogc, extend
+G_M57630_IG14:        ; bbWeight=1.00, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
...
  
-29 (-8.66%) : 87326.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax:get_Modifiers():Microsoft.CodeAnalysis.SyntaxTokenList:this (Tier1)
@@ -9,36 +9,38 @@
 ; 2 inlinees with PGO data; 13 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  9, 16   )     ref  ->  esi         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax>
-;  V01 RetBuf       [V01,T06] (  7,  6   )   byref  ->  edi         single-def
-;  V02 loc0         [V02,T11] (  5,  3   )     ref  ->  [ebp-0x20]  class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
+;  V00 this         [V00,T00] (  9,  9   )     ref  ->  esi         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax>
+;  V01 RetBuf       [V01,T01] (  7,  6   )   byref  ->  edi         single-def
+;  V02 loc0         [V02,T09] (  5,  3   )     ref  ->  [ebp-0x1C]  class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op <Microsoft.CodeAnalysis.SyntaxTokenList>
-;  V04 loc2         [V04,T08] (  5,  6   )     ref  ->  ecx         class-hnd single-def "spilling ret_expr" <Microsoft.CodeAnalysis.GreenNode>
-;  V05 tmp1         [V05,T07] (  4,  8   )     int  ->  [ebp-0x10]  "impAppendStmt"
+;  V04 loc2         [V04,T03] (  5,  6   )     ref  ->  ecx         class-hnd single-def "spilling ret_expr" <Microsoft.CodeAnalysis.GreenNode>
+;  V05 tmp1         [V05,T02] (  4,  8   )     int  ->  [ebp-0x10]  "impAppendStmt"
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.SyntaxTokenList>
 ;  V07 tmp3         [V07,T14] (  4,  2   )     ref  ->  ebx         "guarded devirt return temp"
 ;* V08 tmp4         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MethodDeclarationSyntax>
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V10 tmp6         [V10,T00] (  6, 82   )     int  ->  [ebp-0x14]  "Inlining Arg"
-;  V11 tmp7         [V11,T12] (  3,  3   )     ref  ->  eax         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V12 tmp8         [V12,T05] (  5, 11   )     int  ->  [ebp-0x18]  "Inline stloc first use temp"
-;  V13 tmp9         [V13,T04] (  3, 17   )     ref  ->  [ebp-0x24]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V14 tmp10        [V14,T03] (  4, 18   )     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V15 tmp11        [V15,T01] (  3, 20   )     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;* V10 tmp6         [V10,T06] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V11 tmp7         [V11,T10] (  3,  3   )     ref  ->  eax         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V12 tmp8         [V12,T07] (  4,  3.50)     int  ->  [ebp-0x14]  "Inline stloc first use temp"
+;  V13 tmp9         [V13,T11] (  3,  3   )     ref  ->  [ebp-0x20]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V14 tmp10        [V14,T05] (  4,  4   )     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V15 tmp11        [V15,T13] (  3,  2.50)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
 ;* V16 tmp12        [V16    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
 ;* V18 tmp14        [V18    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
-;  V19 tmp15        [V19,T10] (  4,  3.12)     int  ->  [ebp-0x1C]  "Inline stloc first use temp"
-;* V20 tmp16        [V20,T19] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V21 tmp17        [V21,T13] (  6,  2.62)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V22 tmp18        [V22,T20] (  4,  0.38)     int  ->  ecx         "Inline stloc first use temp"
-;* V23 tmp19        [V23,T18] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._parent (fldOffset=0x0)" P-INDEP
+;  V19 tmp15        [V19,T08] (  4,  3.12)     int  ->  [ebp-0x18]  "Inline stloc first use temp"
+;* V20 tmp16        [V20,T21] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V21 tmp17        [V21,T12] (  6,  2.62)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V22 tmp18        [V22,T22] (  4,  0.38)     int  ->  ecx         "Inline stloc first use temp"
+;* V23 tmp19        [V23,T20] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._parent (fldOffset=0x0)" P-INDEP
 ;  V24 tmp20        [V24,T15] (  2,  2   )     ref  ->  ecx         single-def "field V06.<Node>k__BackingField (fldOffset=0x4)" P-INDEP
 ;  V25 tmp21        [V25,T16] (  2,  2   )     int  ->  ebx         single-def "field V06._index (fldOffset=0x8)" P-INDEP
 ;  V26 tmp22        [V26,T17] (  2,  2   )     int  ->  eax         single-def "field V06.<Position>k__BackingField (fldOffset=0xc)" P-INDEP
-;  V27 tmp23        [V27,T09] (  3,  6   )     ref  ->  [ebp-0x28]  spill-single-def "argument with side effect"
+;  V27 tmp23        [V27,T04] (  3,  6   )     ref  ->  [ebp-0x24]  spill-single-def "argument with side effect"
+;  V28 cse0         [V28,T18] (  2,  2   )     int  ->  eax         "CSE - moderate"
+;  V29 cse1         [V29,T19] (  2,  1   )     int  ->  eax         "CSE - conservative"
 ;
-; Lcl frame size = 28
+; Lcl frame size = 24
 
 G_M57630_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -46,7 +48,7 @@ G_M57630_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 28
+       sub      esp, 24
        mov      esi, ecx
        ; gcrRegs +[esi]
        mov      edi, edx
@@ -56,17 +58,16 @@ G_M57630_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080
        mov      ecx, gword ptr [esi+0x0C]
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], 0xD1FFAB1E
-       jne      G_M57630_IG17
+       jne      G_M57630_IG15
        mov      ebx, gword ptr [ecx+0x10]
        ; gcrRegs +[ebx]
-       mov      gword ptr [ebp-0x20], ebx
+       mov      gword ptr [ebp-0x1C], ebx
        ; GC ptr vars +{V02}
        test     ebx, ebx
-       je       G_M57630_IG18
+       je       G_M57630_IG16
                      ;; size=29 bbWeight=1 PerfScore 10.25
-G_M57630_IG03:        ; bbWeight=1, gcVars=00000800 {V02}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
+G_M57630_IG03:        ; bbWeight=1, gcVars=00000200 {V02}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
        ; gcrRegs -[ecx ebx]
-       mov      dword ptr [ebp-0x14], 1
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      edx, 1
@@ -77,59 +78,47 @@ G_M57630_IG03:        ; bbWeight=1, gcVars=00000800 {V02}, gcrefRegs=00000040 {e
        mov      eax, dword ptr [eax+0x10]
        ; gcrRegs -[eax]
        mov      dword ptr [ebp-0x10], eax
-       jmp      SHORT G_M57630_IG10
-                       ;; size=32 bbWeight=1 PerfScore 10.75
-G_M57630_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+       jmp      SHORT G_M57630_IG08
+                       ;; size=25 bbWeight=1 PerfScore 9.75
+G_M57630_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        xor      eax, eax
-       mov      dword ptr [ebp-0x18], eax
+       mov      dword ptr [ebp-0x14], eax
        mov      edx, gword ptr [esi+0x0C]
        ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x24], edx
+       mov      gword ptr [ebp-0x20], edx
        ; GC ptr vars +{V13}
-                     ;; size=11 bbWeight=1 PerfScore 4.25
-G_M57630_IG05:        ; bbWeight=8, gcVars=00000810 {V02 V13}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
-       ; gcrRegs -[edx]
-       mov      ecx, dword ptr [ebp-0x14]
-       dec      ecx
-       mov      dword ptr [ebp-0x14], ecx
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       mov      edx, dword ptr [ebp-0x14]
+       xor      edx, edx
+       ; gcrRegs -[edx]
        call     [Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax:GetCachedSlot(int):Microsoft.CodeAnalysis.SyntaxNode:this]
        ; gcrRegs -[ecx] +[eax]
        test     eax, eax
-       jne      SHORT G_M57630_IG09
-       mov      ecx, gword ptr [ebp-0x24]
+       jne      SHORT G_M57630_IG07
+       mov      ecx, gword ptr [ebp-0x20]
        ; gcrRegs +[ecx]
-       mov      edx, dword ptr [ebp-0x14]
+       xor      edx, edx
        mov      eax, dword ptr [ecx]
        ; gcrRegs -[eax]
        mov      eax, dword ptr [eax+0x30]
+       ; GC ptr vars -{V13}
        call     [eax+0x10]<unknown method>
        ; gcrRegs -[ecx] +[eax]
        test     eax, eax
-       je       SHORT G_M57630_IG07
-                       ;; size=40 bbWeight=8 PerfScore 144.00
-G_M57630_IG06:        ; bbWeight=4, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref
-       mov      ecx, dword ptr [ebp-0x18]
-       add      ecx, dword ptr [eax+0x04]
-       mov      dword ptr [ebp-0x18], ecx
-                       ;; size=9 bbWeight=4 PerfScore 20.00
-G_M57630_IG07:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       je       SHORT G_M57630_IG06
+                       ;; size=42 bbWeight=1 PerfScore 18.50
+G_M57630_IG05:        ; bbWeight=0.50, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref
+       mov      eax, dword ptr [eax+0x04]
        ; gcrRegs -[eax]
-       mov      edx, dword ptr [ebp-0x14]
-       test     edx, edx
-       mov      dword ptr [ebp-0x14], edx
-       jg       SHORT G_M57630_IG05
-                       ;; size=10 bbWeight=8 PerfScore 26.00
-G_M57630_IG08:        ; bbWeight=1, gcVars=00000800 {V02}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
-       ; GC ptr vars -{V13}
-       mov      eax, dword ptr [ebp-0x18]
+       mov      dword ptr [ebp-0x14], eax
+                       ;; size=6 bbWeight=0.50 PerfScore 1.50
+G_M57630_IG06:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       mov      eax, dword ptr [ebp-0x14]
        add      eax, dword ptr [esi+0x10]
        mov      dword ptr [ebp-0x10], eax
-       jmp      SHORT G_M57630_IG10
+       jmp      SHORT G_M57630_IG08
                         ;; size=11 bbWeight=1 PerfScore 7.00
-G_M57630_IG09:        ; bbWeight=1, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref
+G_M57630_IG07:        ; bbWeight=1, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref
        ; gcrRegs +[eax]
        mov      ecx, dword ptr [eax+0x10]
        mov      edx, gword ptr [eax+0x0C]
@@ -137,22 +126,22 @@ G_M57630_IG09:        ; bbWeight=1, gcrefRegs=00000041 {eax esi}, byrefRegs=0000
        add      ecx, dword ptr [edx+0x04]
        mov      eax, ecx
        ; gcrRegs -[eax]
-       add      eax, dword ptr [ebp-0x18]
+       add      eax, dword ptr [ebp-0x14]
        mov      dword ptr [ebp-0x10], eax
                        ;; size=17 bbWeight=1 PerfScore 10.25
-G_M57630_IG10:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+G_M57630_IG08:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        ; gcrRegs -[edx]
        xor      edx, edx
-       mov      dword ptr [ebp-0x1C], edx
+       mov      dword ptr [ebp-0x18], edx
        mov      edx, gword ptr [esi+0x0C]
        ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x28], edx
+       mov      gword ptr [ebp-0x24], edx
        ; GC ptr vars +{V27}
        mov      ecx, edx
        ; gcrRegs +[ecx]
        xor      edx, edx
        ; gcrRegs -[edx]
-       mov      ebx, gword ptr [ebp-0x28]
+       mov      ebx, gword ptr [ebp-0x24]
        ; gcrRegs +[ebx]
        mov      ebx, dword ptr [ebx]
        ; gcrRegs -[ebx]
@@ -161,32 +150,32 @@ G_M57630_IG10:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080
        call     [ebx+0x10]<unknown method>
        ; gcrRegs -[ecx] +[eax]
        test     eax, eax
-       je       SHORT G_M57630_IG15
+       je       SHORT G_M57630_IG13
                      ;; size=30 bbWeight=1 PerfScore 14.00
-G_M57630_IG11:        ; bbWeight=0.50, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref, isz
+G_M57630_IG09:        ; bbWeight=0.50, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref, isz
        cmp      word  ptr [eax+0x08], 1
-       jne      SHORT G_M57630_IG14
+       jne      SHORT G_M57630_IG12
                         ;; size=7 bbWeight=0.50 PerfScore 2.00
-G_M57630_IG12:        ; bbWeight=0.12, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref, isz
+G_M57630_IG10:        ; bbWeight=0.12, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref, isz
        movzx    ecx, byte  ptr [eax+0x0B]
        cmp      ecx, 255
-       je       SHORT G_M57630_IG20
+       je       SHORT G_M57630_IG18
                      ;; size=12 bbWeight=0.12 PerfScore 0.41
-G_M57630_IG13:        ; bbWeight=0.12, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+G_M57630_IG11:        ; bbWeight=0.12, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        ; gcrRegs -[eax]
        mov      ebx, ecx
-       mov      dword ptr [ebp-0x1C], ebx
-       jmp      SHORT G_M57630_IG15
+       mov      dword ptr [ebp-0x18], ebx
+       jmp      SHORT G_M57630_IG13
                         ;; size=7 bbWeight=0.12 PerfScore 0.41
-G_M57630_IG14:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+G_M57630_IG12:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
        mov      ebx, 1
-       mov      dword ptr [ebp-0x1C], ebx
+       mov      dword ptr [ebp-0x18], ebx
                         ;; size=8 bbWeight=1 PerfScore 1.25
-G_M57630_IG15:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       mov      ecx, gword ptr [ebp-0x20]
+G_M57630_IG13:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+       mov      ecx, gword ptr [ebp-0x1C]
        ; gcrRegs +[ecx]
        mov      eax, dword ptr [ebp-0x10]
-       mov      ebx, dword ptr [ebp-0x1C]
+       mov      ebx, dword ptr [ebp-0x18]
        mov      edx, edi
        ; byrRegs +[edx]
        ; GC ptr vars -{V02}
@@ -201,7 +190,7 @@ G_M57630_IG15:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080
        mov      dword ptr [edi+0x08], ebx
        mov      dword ptr [edi+0x0C], eax
                        ;; size=30 bbWeight=1 PerfScore 7.75
-G_M57630_IG16:        ; bbWeight=1, epilog, nogc, extend
+G_M57630_IG14:        ; bbWeight=1, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
...
  
+49 (+83.05%) : 11698.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_Scan(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]) (FullOpts)
@@ -7,20 +7,23 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6, 22   )     ref  ->  esi         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
-;  V01 arg1         [V01,T01] (  3, 16   )  struct ( 8) [ebp+0x08]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
+;  V00 arg0         [V00,T00] ( 10, 25   )     ref  ->  esi         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
+;  V01 arg1         [V01,T01] (  5, 14   )  struct ( 8) [ebp+0x08]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
 ;  V02 cse0         [V02,T02] (  3, 12   )     int  ->  eax         "CSE - aggressive"
+;  V03 cse1         [V03,T04] (  3,  2   )     int  ->  ecx         "CSE - moderate"
+;  V04 cse2         [V04,T03] (  3,  5   )     int  ->  edi         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
-G_M47574_IG01:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+G_M47574_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     edi
        push     esi
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=6 bbWeight=8 PerfScore 20.00
-G_M47574_IG02:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=7 bbWeight=1 PerfScore 3.50
+G_M47574_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        push     dword ptr [ebp+0x0C]
        push     bword ptr [ebp+0x08]
        mov      ecx, esi
@@ -28,9 +31,37 @@ G_M47574_IG02:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     <unknown method>
        ; gcrRegs -[ecx]
        test     eax, eax
-       je       SHORT G_M47574_IG04
+       je       SHORT G_M47574_IG07
+                       ;; size=17 bbWeight=1 PerfScore 4.50
+G_M47574_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       push     dword ptr [ebp+0x0C]
+       push     bword ptr [ebp+0x08]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     <unknown method>
+       ; gcrRegs -[ecx]
+       test     eax, eax
+       jne      SHORT G_M47574_IG07
+       mov      ecx, dword ptr [esi+0x30]
+       mov      edi, dword ptr [ebp+0x0C]
+       cmp      ecx, edi
+       je       SHORT G_M47574_IG07
+                       ;; size=27 bbWeight=0.50 PerfScore 4.38
+G_M47574_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       inc      ecx
+       mov      dword ptr [esi+0x30], ecx
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M47574_IG05:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       push     dword ptr [ebp+0x0C]
+       push     bword ptr [ebp+0x08]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     <unknown method>
+       ; gcrRegs -[ecx]
+       test     eax, eax
+       je       SHORT G_M47574_IG07
                         ;; size=17 bbWeight=8 PerfScore 36.00
-G_M47574_IG03:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M47574_IG06:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        push     dword ptr [ebp+0x0C]
        push     bword ptr [ebp+0x08]
        mov      ecx, esi
@@ -38,21 +69,22 @@ G_M47574_IG03:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     <unknown method>
        ; gcrRegs -[ecx]
        test     eax, eax
-       jne      SHORT G_M47574_IG04
+       jne      SHORT G_M47574_IG07
        mov      eax, dword ptr [esi+0x30]
-       cmp      eax, dword ptr [ebp+0x0C]
-       je       SHORT G_M47574_IG04
+       cmp      eax, edi
+       je       SHORT G_M47574_IG07
        inc      eax
        mov      dword ptr [esi+0x30], eax
-       jmp      SHORT G_M47574_IG02
-                       ;; size=31 bbWeight=4 PerfScore 51.00
-G_M47574_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+       jmp      SHORT G_M47574_IG05
+                       ;; size=30 bbWeight=4 PerfScore 44.00
+G_M47574_IG07:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[esi]
        pop      esi
+       pop      edi
        pop      ebp
        ret      8
-                        ;; size=5 bbWeight=1 PerfScore 3.00
+                       ;; size=6 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 59, prolog size 4, PerfScore 110.00, instruction count 25, allocated bytes for code 59 (MethodHash=b0674629) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex2_Scan(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]) (FullOpts)
+; Total bytes of code 108, prolog size 5, PerfScore 97.12, instruction count 45, allocated bytes for code 108 (MethodHash=b0674629) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex2_Scan(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]) (FullOpts)
 ; ============================================================
 
  
+44 (+88.00%) : 23369.dasm - Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
@@ -8,67 +8,113 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  6, 22   )     ref  ->  esi         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
-;  V01 tmp0         [V01,T00] (  3, 36   )     ref  ->  ecx         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
+;  V00 this         [V00,T01] (  9, 22.50)     ref  ->  esi         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
+;  V01 tmp0         [V01,T00] (  6, 40.50)     ref  ->  edi         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
 ;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref   
-;  V03 tmp2         [V03,T03] (  4, 14   )     int  ->  eax        
-;  V04 tmp3         [V04,T02] (  3, 18   )     int  ->  ecx         "Inline stloc first use temp"
+;  V03 tmp2         [V03,T03] (  8, 15.75)     int  ->  registers  
+;  V04 tmp3         [V04,T02] (  6, 20.25)     int  ->  registers   "Inline stloc first use temp"
+;  V05 cse0         [V05,T04] (  3,  2.50)     int  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
 G_M16914_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     edi
        push     esi
+       push     ebx
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=6 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 4.50
 G_M16914_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        jmp      SHORT G_M16914_IG04
                        ;; size=2 bbWeight=1 PerfScore 2.00
-G_M16914_IG03:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M16914_IG03:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      eax, dword ptr [esi]
-       mov      eax, dword ptr [eax+0x50]
-       call     [eax+0x10]<unknown method>
+       mov      ebx, dword ptr [eax+0x50]
+       call     [ebx+0x10]<unknown method>
        ; gcrRegs -[ecx]
-                      ;; size=10 bbWeight=2 PerfScore 14.50
-G_M16914_IG04:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, gword ptr [esi+0x04]
-       ; gcrRegs +[ecx]
-       test     ecx, ecx
+       jmp      SHORT G_M16914_IG12
+                       ;; size=12 bbWeight=0.25 PerfScore 2.31
+G_M16914_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [esi+0x04]
+       ; gcrRegs +[edi]
+       test     edi, edi
        jne      SHORT G_M16914_IG06
-                      ;; size=7 bbWeight=8 PerfScore 26.00
-G_M16914_IG05:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
-       xor      eax, eax
+                     ;; size=7 bbWeight=1 PerfScore 3.25
+G_M16914_IG05:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       xor      ebx, ebx
        jmp      SHORT G_M16914_IG07
-                      ;; size=4 bbWeight=2 PerfScore 4.50
-G_M16914_IG06:        ; bbWeight=2, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs +[ecx]
-       mov      eax, dword ptr [ecx+0x08]
-                       ;; size=3 bbWeight=2 PerfScore 4.00
-G_M16914_IG07:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
-       mov      ecx, eax
+                     ;; size=4 bbWeight=0.25 PerfScore 0.56
+G_M16914_IG06:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[edi]
+       mov      ebx, dword ptr [edi+0x08]
+                       ;; size=3 bbWeight=0.25 PerfScore 0.50
+G_M16914_IG07:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       mov      eax, ebx
        cmp      dword ptr [esi+0x30], 0
        je       SHORT G_M16914_IG09
+                      ;; size=8 bbWeight=1 PerfScore 4.25
+G_M16914_IG08:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       lea      eax, [ebx+0x01]
+                       ;; size=3 bbWeight=0.25 PerfScore 0.12
+G_M16914_IG09:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       test     eax, eax
+       jg       SHORT G_M16914_IG03
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M16914_IG10:        ; bbWeight=0.12, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[esi]
+       jmp      SHORT G_M16914_IG18
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M16914_IG11:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[esi]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     [ebx+0x10]<unknown method>
+       ; gcrRegs -[ecx]
+                       ;; size=5 bbWeight=2 PerfScore 6.50
+G_M16914_IG12:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [esi+0x04]
+       ; gcrRegs +[edi]
+       test     edi, edi
+       jne      SHORT G_M16914_IG14
+                       ;; size=7 bbWeight=8 PerfScore 26.00
+G_M16914_IG13:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       xor      ecx, ecx
+       xor      eax, eax
+       jmp      SHORT G_M16914_IG15
+                       ;; size=6 bbWeight=2 PerfScore 5.00
+G_M16914_IG14:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[edi]
+       mov      eax, dword ptr [edi+0x08]
+                       ;; size=3 bbWeight=2 PerfScore 4.00
+G_M16914_IG15:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       mov      ecx, eax
+       cmp      dword ptr [esi+0x30], 0
+       je       SHORT G_M16914_IG17
                         ;; size=8 bbWeight=8 PerfScore 34.00
-G_M16914_IG08:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M16914_IG16:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        lea      ecx, [eax+0x01]
                        ;; size=3 bbWeight=2 PerfScore 1.00
-G_M16914_IG09:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M16914_IG17:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        test     ecx, ecx
-       jg       SHORT G_M16914_IG03
+       jg       SHORT G_M16914_IG11
                      ;; size=4 bbWeight=8 PerfScore 10.00
-G_M16914_IG10:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M16914_IG18:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[esi]
+       pop      ebx
        pop      esi
+       pop      edi
        pop      ebp
        ret      
-                     ;; size=3 bbWeight=1 PerfScore 2.00
+                       ;; size=5 bbWeight=1 PerfScore 3.00
 
-; Total bytes of code 50, prolog size 4, PerfScore 100.50, instruction count 24, allocated bytes for code 50 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
+; Total bytes of code 94, prolog size 6, PerfScore 108.50, instruction count 45, allocated bytes for code 94 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
 ; ============================================================
 
  
+28 (+103.70%) : 28366.dasm - System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (Tier0-FullOpts)
@@ -7,9 +7,9 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5, 11   )     int  ->  eax        
-;  V01 arg1         [V01,T00] (  7, 19   )     int  ->  esi        
-;  V02 loc0         [V02,T02] (  2,  8   )     int  ->  edx        
+;  V00 arg0         [V00,T01] (  7, 13   )     int  ->  registers  
+;  V01 arg1         [V01,T00] ( 11, 23   )     int  ->  registers  
+;  V02 loc0         [V02,T02] (  4, 10   )     int  ->  edx        
 ;
 ; Lcl frame size = 0
 
@@ -22,22 +22,44 @@ G_M22426_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=8 bbWeight=1 PerfScore 2.75
 G_M22426_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        test     esi, esi
-       je       SHORT G_M22426_IG04
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M22426_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       je       SHORT G_M22426_IG08
        xor      edx, edx
        div      edx:eax, esi
        mov      eax, esi
        mov      esi, edx
        test     esi, esi
-       jne      SHORT G_M22426_IG03
-                       ;; size=12 bbWeight=4 PerfScore 108.00
-G_M22426_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+       je       SHORT G_M22426_IG07
+                       ;; size=16 bbWeight=1 PerfScore 28.25
+G_M22426_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       xor      edx, edx
+       div      edx:eax, esi
+       mov      eax, edx
+       test     eax, eax
+       jne      SHORT G_M22426_IG06
+                       ;; size=10 bbWeight=4 PerfScore 107.00
+G_M22426_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       mov      eax, esi
+                       ;; size=2 bbWeight=1 PerfScore 0.25
+G_M22426_IG05:        ; bbWeight=1, epilog, nogc, extend
        pop      esi
        pop      ebp
        ret      
                        ;; size=3 bbWeight=1 PerfScore 2.00
+G_M22426_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      ecx, eax
+       mov      eax, esi
+       mov      esi, ecx
+       jmp      SHORT G_M22426_IG03
+                       ;; size=8 bbWeight=2 PerfScore 5.50
+G_M22426_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, eax
+       jmp      SHORT G_M22426_IG04
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
+G_M22426_IG08:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, eax
+       jmp      SHORT G_M22426_IG04
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 27, prolog size 8, PerfScore 114.00, instruction count 16, allocated bytes for code 27 (MethodHash=f186a865) for method System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (Tier0-FullOpts)
+; Total bytes of code 55, prolog size 8, PerfScore 148.00, instruction count 30, allocated bytes for code 55 (MethodHash=f186a865) for method System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (Tier0-FullOpts)
 ; ============================================================
 
  
  
benchmarks.run_tiered.windows.x86.checked.mch
-41 (-8.72%) : 35130.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier0-FullOpts)
@@ -8,11 +8,11 @@
 ; 0 inlinees with PGO data; 28 single block inlinees; 11 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 13, 16   )     ref  ->  [ebp-0x34]  this class-hnd EH-live single-def <Microsoft.CodeAnalysis.PEModule>
+;  V00 this         [V00,T04] ( 13, 12.50)     ref  ->  [ebp-0x2C]  this class-hnd EH-live single-def <Microsoft.CodeAnalysis.PEModule>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op <System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator>
 ;* V02 loc1         [V02    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op <System.Reflection.Metadata.CustomAttributeHandleCollection>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 4) zero-ref    <System.Reflection.Metadata.CustomAttributeHandle>
-;  V04 loc3         [V04,T10] (  3,  9   )     int  ->  [ebp-0x24] 
+;  V04 loc3         [V04,T08] (  3,  2   )     int  ->  [ebp-0x24] 
 ;* V05 loc4         [V05    ] (  0,  0   )  struct ( 4) zero-ref    <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V06 loc5         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Reflection.Metadata.CustomAttribute>
 ;* V07 loc6         [V07,T31] (  0,  0   )   ubyte  ->  zero-ref   
@@ -31,37 +31,37 @@
 ;* V20 tmp12        [V20    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttributeHandle>
 ;  V21 tmp13        [V21,T15] (  3,  6   )     ref  ->  edx         class-hnd exact "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
 ;* V22 tmp14        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttribute>
-;  V23 tmp15        [V23,T25] (  2,  2   )     int  ->  edi         "Inline return value spill temp"
+;  V23 tmp15        [V23,T24] (  2,  2   )     int  ->  edi         "Inline return value spill temp"
 ;* V24 tmp16        [V24    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.CustomAttributeHandle>
 ;* V25 tmp17        [V25    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V26 tmp18        [V26,T07] (  5, 10   )   byref  ->  edx         "impAppendStmt"
+;  V26 tmp18        [V26,T06] (  5, 10   )   byref  ->  edx         "impAppendStmt"
 ;* V27 tmp19        [V27    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.CustomAttributeHandle>
 ;* V28 tmp20        [V28    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp21        [V29    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttributeHandle>
 ;* V30 tmp22        [V30    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.CustomAttributeHandle>
-;  V31 tmp23        [V31,T26] (  2,  2   )     int  ->  edi         "Inline stloc first use temp"
-;  V32 tmp24        [V32,T08] (  5, 10   )   byref  ->  ebx         "Inlining Arg"
+;  V31 tmp23        [V31,T25] (  2,  2   )     int  ->  edi         "Inline stloc first use temp"
+;  V32 tmp24        [V32,T07] (  5, 10   )   byref  ->  ebx         "Inlining Arg"
 ;  V33 tmp25        [V33,T09] (  5, 10   )     int  ->  edi         "Inlining Arg"
 ;* V34 tmp26        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V35 tmp27        [V35,T19] (  4,  4   )     int  ->  edx         "Inline return value spill temp"
+;  V35 tmp27        [V35,T18] (  4,  4   )     int  ->  edx         "Inline return value spill temp"
 ;* V36 tmp28        [V36    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V37 tmp29        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V38 tmp30        [V38    ] (  0,  0   )  ushort  ->  zero-ref    "Inline return value spill temp"
 ;* V39 tmp31        [V39    ] (  0,  0   )  ushort  ->  zero-ref    "Inline stloc first use temp"
 ;* V40 tmp32        [V40    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
-;  V41 tmp33        [V41,T20] (  2,  4   )     int  ->  edi         "Span.get_Item index"
-;  V42 tmp34        [V42,T21] (  3,  3   )     int  ->  edi         "Inline stloc first use temp"
-;  V43 tmp35        [V43,T22] (  3,  3   )     int  ->  edx         "Inline stloc first use temp"
+;  V41 tmp33        [V41,T19] (  2,  4   )     int  ->  eax         "Span.get_Item index"
+;  V42 tmp34        [V42,T20] (  3,  3   )     int  ->  eax         "Inline stloc first use temp"
+;  V43 tmp35        [V43,T21] (  3,  3   )     int  ->  edx         "Inline stloc first use temp"
 ;* V44 tmp36        [V44    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
 ;* V45 tmp37        [V45    ] (  0,  0   )  struct ( 8) zero-ref    "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
 ;* V46 tmp38        [V46    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp39        [V47    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.EntityHandle>
 ;* V48 tmp40        [V48    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V49 tmp41        [V49    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V50 tmp42        [V50,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V51 tmp43        [V51,T18] (  2,  5   )     ref  ->  edi         single-def "field V01._reader (fldOffset=0x0)" P-INDEP
-;  V52 tmp44        [V52,T11] (  2,  9   )     int  ->  esi         single-def "field V01._lastRowId (fldOffset=0x4)" P-INDEP
-;  V53 tmp45        [V53,T00] (  6, 33   )     int  ->  ebx         "field V01._currentRowId (fldOffset=0x8)" P-INDEP
+;* V50 tmp42        [V50,T01] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V51 tmp43        [V51,T11] (  2,  1.50)     ref  ->  edi         single-def "field V01._reader (fldOffset=0x0)" P-INDEP
+;  V52 tmp44        [V52,T10] (  2,  2   )     int  ->  esi         single-def "field V01._lastRowId (fldOffset=0x4)" P-INDEP
+;  V53 tmp45        [V53,T00] (  6,  5   )     int  ->  ebx         "field V01._currentRowId (fldOffset=0x8)" P-INDEP
 ;* V54 tmp46        [V54    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._reader (fldOffset=0x0)" P-INDEP
 ;* V55 tmp47        [V55    ] (  0,  0   )     int  ->  zero-ref    single-def "field V02._firstRowId (fldOffset=0x4)" P-INDEP
 ;* V56 tmp48        [V56    ] (  0,  0   )     int  ->  zero-ref    single-def "field V02._lastRowId (fldOffset=0x8)" P-INDEP
@@ -72,37 +72,35 @@
 ;* V61 tmp53        [V61    ] (  0,  0   )     int  ->  zero-ref    "field V08._vToken (fldOffset=0x0)" P-INDEP
 ;* V62 tmp54        [V62    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._reader (fldOffset=0x0)" P-INDEP
 ;* V63 tmp55        [V63    ] (  0,  0   )     int  ->  zero-ref    single-def "field V11._firstRowId (fldOffset=0x4)" P-INDEP
-;  V64 tmp56        [V64,T27] (  2,  2   )     int  ->  esi         single-def "field V11._lastRowId (fldOffset=0x8)" P-INDEP
-;  V65 tmp57        [V65,T24] (  2,  2   )     ref  ->  edi         single-def "field V12._reader (fldOffset=0x0)" P-INDEP
-;  V66 tmp58        [V66,T28] (  2,  2   )     int  ->  esi         single-def "field V12._lastRowId (fldOffset=0x4)" P-INDEP
+;  V64 tmp56        [V64,T26] (  2,  2   )     int  ->  esi         single-def "field V11._lastRowId (fldOffset=0x8)" P-INDEP
+;  V65 tmp57        [V65,T23] (  2,  2   )     ref  ->  edi         single-def "field V12._reader (fldOffset=0x0)" P-INDEP
+;  V66 tmp58        [V66,T27] (  2,  2   )     int  ->  esi         single-def "field V12._lastRowId (fldOffset=0x4)" P-INDEP
 ;* V67 tmp59        [V67,T32] (  0,  0   )     int  ->  zero-ref    single-def "field V12._currentRowId (fldOffset=0x8)" P-INDEP
-;  V68 tmp60        [V68,T05] (  6, 15   )     int  ->  [ebp-0x28]  "field V16._rowId (fldOffset=0x0)" P-INDEP
-;  V69 tmp61        [V69,T12] (  2,  8   )     int  ->  eax         "field V18._rowId (fldOffset=0x0)" P-INDEP
-;  V70 tmp62        [V70,T13] (  2,  8   )     int  ->  eax         "field V20._rowId (fldOffset=0x0)" P-INDEP
+;  V68 tmp60        [V68,T05] (  6,  4.50)     int  ->  [ebp-0x28]  "field V16._rowId (fldOffset=0x0)" P-INDEP
+;  V69 tmp61        [V69,T12] (  2,  1   )     int  ->  eax         "field V18._rowId (fldOffset=0x0)" P-INDEP
+;  V70 tmp62        [V70,T13] (  2,  1   )     int  ->  eax         "field V20._rowId (fldOffset=0x0)" P-INDEP
 ;* V71 tmp63        [V71    ] (  0,  0   )     ref  ->  zero-ref    "field V22._reader (fldOffset=0x0)" P-INDEP
 ;* V72 tmp64        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V22._treatmentAndRowId (fldOffset=0x4)" P-INDEP
 ;* V73 tmp65        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V24._rowId (fldOffset=0x0)" P-INDEP
 ;* V74 tmp66        [V74    ] (  0,  0   )     int  ->  zero-ref    "field V27._rowId (fldOffset=0x0)" P-INDEP
-;  V75 tmp67        [V75,T29] (  2,  2   )     int  ->  edi         "field V29._rowId (fldOffset=0x0)" P-INDEP
+;  V75 tmp67        [V75,T28] (  2,  2   )     int  ->  edi         "field V29._rowId (fldOffset=0x0)" P-INDEP
 ;* V76 tmp68        [V76    ] (  0,  0   )     int  ->  zero-ref    "field V30._rowId (fldOffset=0x0)" P-INDEP
 ;* V77 tmp69        [V77    ] (  0,  0   )   byref  ->  zero-ref    "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V78 tmp70        [V78    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x4)" P-INDEP
-;  V79 tmp71        [V79,T23] (  3,  3   )     int  ->  edx         "field V44._vToken (fldOffset=0x0)" P-INDEP
+;  V79 tmp71        [V79,T22] (  3,  3   )     int  ->  edx         "field V44._vToken (fldOffset=0x0)" P-INDEP
 ;* V80 tmp72        [V80    ] (  0,  0   )   byref  ->  zero-ref    "field V45._reference (fldOffset=0x0)" P-INDEP
 ;* V81 tmp73        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x4)" P-INDEP
 ;* V82 tmp74        [V82    ] (  0,  0   )     int  ->  zero-ref    "field V47._vToken (fldOffset=0x0)" P-INDEP
-;  V83 tmp75        [V83,T30] (  2,  2   )     int  ->  edx         "field V48._rowId (fldOffset=0x0)" P-INDEP
-;  V84 tmp76        [V84,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
-;  V85 tmp77        [V85,T02] (  3, 24   )     int  ->  edx         "index expr"
+;  V83 tmp75        [V83,T29] (  2,  2   )     int  ->  edx         "field V48._rowId (fldOffset=0x0)" P-INDEP
+;  V84 tmp76        [V84,T02] (  3,  3   )     ref  ->  ecx         "arr expr"
+;  V85 tmp77        [V85,T03] (  3,  3   )     int  ->  edx         "index expr"
 ;  V86 EHSlots      [V86    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V87 cse0         [V87,T06] (  3, 12   )     ref  ->  ecx         "CSE - moderate"
-;  V88 rat0         [V88,T16] (  3,  6   )     int  ->  [ebp-0x2C]  spill-single-def "ReplaceWithLclVar is creating a new local variable"
-;  V89 rat1         [V89,T17] (  3,  6   )     int  ->  [ebp-0x30]  spill-single-def "ReplaceWithLclVar is creating a new local variable"
-;  TEMP_03                                     int  ->  [ebp-0x38]
-;  TEMP_02                                     int  ->  [ebp-0x3C]
-;  TEMP_01                                     int  ->  [ebp-0x40]
+;  V87 cse0         [V87,T30] (  3,  1.50)     ref  ->  ecx         "CSE - conservative"
+;  V88 rat0         [V88,T16] (  3,  6   )     int  ->  esi         "ReplaceWithLclVar is creating a new local variable"
+;  V89 rat1         [V89,T17] (  3,  6   )     int  ->  esi         "ReplaceWithLclVar is creating a new local variable"
+;  TEMP_01                                     int  ->  [ebp-0x30]
 ;
-; Lcl frame size = 52
+; Lcl frame size = 36
 
 G_M13056_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
        push     ebp
@@ -110,16 +108,16 @@ G_M13056_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=000000
        push     edi
        push     esi
        push     ebx
-       sub      esp, 52
+       sub      esp, 36
        xor      eax, eax
        mov      dword ptr [ebp-0x20], eax
        mov      dword ptr [ebp-0x1C], eax
        mov      dword ptr [ebp-0x18], eax
        mov      dword ptr [ebp-0x14], eax
-       mov      gword ptr [ebp-0x34], ecx
+       mov      gword ptr [ebp-0x2C], ecx
        ; GC ptr vars +{V00}
                        ;; size=26 bbWeight=1 PerfScore 9.75
-G_M13056_IG02:        ; bbWeight=1, gcVars=0000000000000008 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
+G_M13056_IG02:        ; bbWeight=1, gcVars=0000000000000010 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[ecx]
        cmp      byte  ptr [ecx+0x35], 0
        jne      G_M13056_IG19
@@ -131,24 +129,29 @@ G_M13056_IG03:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        mov      edi, eax
        ; gcrRegs +[edi]
        xor      ebx, ebx
-       jmp      SHORT G_M13056_IG06
+       jmp      SHORT G_M13056_IG07
                      ;; size=18 bbWeight=1 PerfScore 7.50
-G_M13056_IG04:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+G_M13056_IG04:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
        mov      ecx, gword ptr [edi+0x1F0]
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       SHORT G_M13056_IG12
+       je       SHORT G_M13056_IG05
        mov      edx, ebx
        and      edx, 0xD1FFAB1E
        dec      edx
        cmp      edx, dword ptr [ecx+0x04]
-       jae      SHORT G_M13056_IG07
+       jae      SHORT G_M13056_IG08
        mov      eax, dword ptr [ecx+4*edx+0x08]
-                       ;; size=28 bbWeight=4 PerfScore 40.00
-G_M13056_IG05:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M13056_IG06
+                       ;; size=30 bbWeight=0.50 PerfScore 6.00
+G_M13056_IG05:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      eax, ebx
+       and      eax, 0xD1FFAB1E
+                       ;; size=7 bbWeight=0.50 PerfScore 0.25
+G_M13056_IG06:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, gword ptr [ebp-0x2C]
        ; gcrRegs +[ecx]
        mov      dword ptr [ebp-0x28], eax
        mov      edx, eax
@@ -157,60 +160,54 @@ G_M13056_IG05:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000
        cmp      eax, -1
        mov      dword ptr [ebp-0x24], eax
        jne      SHORT G_M13056_IG13
-                      ;; size=22 bbWeight=4 PerfScore 30.00
-G_M13056_IG06:        ; bbWeight=8, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=22 bbWeight=0.50 PerfScore 3.75
+G_M13056_IG07:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
        cmp      ebx, esi
        jge      G_M13056_IG18
        inc      ebx
        jmp      SHORT G_M13056_IG04
-                      ;; size=11 bbWeight=8 PerfScore 28.00
-G_M13056_IG07:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+                      ;; size=11 bbWeight=1 PerfScore 3.50
+G_M13056_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edi]
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M13056_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.Reflection.Throw:InvalidCast()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.Reflection.Throw:InvalidCodedIndex()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.Reflection.Throw:OutOfBounds()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [Microsoft.CodeAnalysis.PEModule:ThrowMetadataDisposed()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG12:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[edi]
-       mov      eax, ebx
-       and      eax, 0xD1FFAB1E
-       jmp      SHORT G_M13056_IG05
-                       ;; size=9 bbWeight=4 PerfScore 10.00
 G_M13056_IG13:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edi]
        mov      esi, dword ptr [ebp-0x28]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      ecx, gword ptr [ebp-0x2C]
        ; gcrRegs +[ecx]
        mov      byte  ptr [ecx+0x35], 2
        cmp      gword ptr [ecx+0x0C], 0
        jne      SHORT G_M13056_IG14
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      ecx, gword ptr [ebp-0x2C]
        ; gcrRegs +[ecx]
                        ;; size=25 bbWeight=1 PerfScore 11.00
 G_M13056_IG14:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        cmp      byte  ptr [ecx+0x34], 0
-       jne      SHORT G_M13056_IG11
+       jne      SHORT G_M13056_IG12
        mov      edx, gword ptr [ecx+0x0C]
        ; gcrRegs +[edx]
        mov      edi, esi
        or       edi, 0xD1FFAB1E
        cmp      dword ptr [edx+0x30], 0
+       mov      dword ptr [ebp-0x28], esi
        cmove    edi, esi
        add      edx, 496
        ; gcrRegs -[edx]
@@ -225,64 +222,52 @@ G_M13056_IG14:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        jne      SHORT G_M13056_IG15
...
  
-3 (-6.82%) : 32259.dasm - Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
@@ -10,19 +10,19 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Struct.SpanWrapper>
 ;  V01 arg1         [V01,T07] (  2,  2   )  struct ( 8) [ebp+0x08]  do-not-enreg[S] ld-addr-op single-def <Struct.SpanWrapper`1[int]>
-;  V02 loc0         [V02,T03] (  4,  9   )     int  ->  eax        
+;  V02 loc0         [V02,T04] (  5,  9.25)     int  ->  eax        
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (12) zero-ref    do-not-enreg[SF] ld-addr-op <System.ReadOnlySpan`1+Enumerator[int]>
 ;* V04 loc2         [V04    ] (  0,  0   )     int  ->  zero-ref   
 ;* V05 tmp0         [V05    ] (  0,  0   )  struct (12) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1+Enumerator[int]>
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[int]>
 ;* V07 tmp2         [V07    ] (  0,  0   )     int  ->  zero-ref    "Span.get_Item index"
-;* V08 tmp3         [V08,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V08 tmp3         [V08,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V09 tmp4         [V09,T00] (  3, 20   )     int  ->  esi         "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x4)" P-INDEP
-;  V12 tmp7         [V12,T05] (  2,  3   )   byref  ->  edx         single-def "V03.[000..004)"
-;  V13 tmp8         [V13,T02] (  3, 11   )     int  ->  ecx         single-def "V03.[004..008)"
-;  V14 tmp9         [V14,T01] (  5, 17   )     int  ->  esi         "V03.[008..012)"
+;  V12 tmp7         [V12,T05] (  3,  3.25)   byref  ->  edx         single-def "V03.[000..004)"
+;  V13 tmp8         [V13,T02] (  3, 10   )     int  ->  ecx         single-def "V03.[004..008)"
+;  V14 tmp9         [V14,T01] (  4, 14.50)     int  ->  esi         "V03.[008..012)"
 ;  V15 tmp10        [V15,T06] (  2,  2   )   byref  ->  edx         single-def "V05.[000..004)"
 ;  V16 tmp11        [V16,T08] (  2,  2   )     int  ->  ecx         single-def "V05.[004..008)"
 ;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    "V05.[008..012)"
@@ -39,33 +39,38 @@ G_M19652_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        mov      edx, bword ptr [ebp+0x08]
        ; byrRegs +[edx]
        mov      ecx, dword ptr [ebp+0x0C]
-       mov      esi, -1
        jmp      SHORT G_M19652_IG04
-                        ;; size=15 bbWeight=1 PerfScore 4.50
-G_M19652_IG03:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
-       cmp      esi, ecx
-       jae      SHORT G_M19652_IG07
+                      ;; size=10 bbWeight=1 PerfScore 4.25
+G_M19652_IG03:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
+       mov      eax, dword ptr [edx]
+       jmp      SHORT G_M19652_IG07
+                       ;; size=4 bbWeight=0.25 PerfScore 1.00
+G_M19652_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
+       test     ecx, ecx
+       jle      SHORT G_M19652_IG09
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M19652_IG05:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
+       xor      esi, esi
+       jmp      SHORT G_M19652_IG03
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
+G_M19652_IG06:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref
        add      eax, dword ptr [edx+4*esi]
-                     ;; size=7 bbWeight=2 PerfScore 8.50
-G_M19652_IG04:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
+                      ;; size=3 bbWeight=2 PerfScore 6.00
+G_M19652_IG07:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
        inc      esi
        cmp      esi, ecx
-       jge      SHORT G_M19652_IG06
+       jge      SHORT G_M19652_IG09
                      ;; size=5 bbWeight=8 PerfScore 12.00
-G_M19652_IG05:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
-       jmp      SHORT G_M19652_IG03
+G_M19652_IG08:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
+       jmp      SHORT G_M19652_IG06
                         ;; size=2 bbWeight=4 PerfScore 8.00
-G_M19652_IG06:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M19652_IG09:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; byrRegs -[edx]
        pop      esi
        pop      ebp
        ret      8
                        ;; size=5 bbWeight=4 PerfScore 12.00
-G_M19652_IG07:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       call     CORINFO_HELP_RNGCHKFAIL
-       int3     
-                       ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 44, prolog size 4, PerfScore 47.25, instruction count 20, allocated bytes for code 44 (MethodHash=47afb33b) for method Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
+; Total bytes of code 41, prolog size 4, PerfScore 47.88, instruction count 21, allocated bytes for code 41 (MethodHash=47afb33b) for method Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
 ; ============================================================
 
  
-47 (-6.51%) : 35828.dasm - Microsoft.CodeAnalysis.PEModule+d__80:MoveNext():ubyte:this (Tier0-FullOpts)
@@ -8,16 +8,16 @@
 ; 0 inlinees with PGO data; 41 single block inlinees; 17 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] ( 17, 16.50)     ref  ->  [ebp-0x30]  this class-hnd EH-live single-def <Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80>
-;  V01 loc0         [V01,T27] (  4,  2.50)   ubyte  ->  eax        
-;  V02 loc1         [V02,T28] (  3,  2.50)     int  ->  eax         single-def
-;  V03 loc2         [V03,T08] (  6,  9.50)     ref  ->  esi         class-hnd exact single-def <Microsoft.CodeAnalysis.PEModule>
+;  V00 this         [V00,T01] ( 17,  9.50)     ref  ->  [ebp-0x30]  this class-hnd EH-live single-def <Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80>
+;  V01 loc0         [V01,T26] (  4,  2.50)   ubyte  ->  eax        
+;  V02 loc1         [V02,T27] (  3,  2.50)     int  ->  eax         single-def
+;  V03 loc2         [V03,T08] (  6,  2.50)     ref  ->  esi         class-hnd exact single-def <Microsoft.CodeAnalysis.PEModule>
 ;* V04 loc3         [V04    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <System.Reflection.Metadata.TypeDefinitionHandleCollection>
 ;* V05 loc4         [V05    ] (  0,  0   )  struct ( 4) zero-ref    <System.Reflection.Metadata.TypeDefinitionHandle>
-;  V06 loc5         [V06    ] ( 11, 14.50)  struct ( 8) [ebp-0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Metadata.TypeDefinition>
+;  V06 loc5         [V06    ] ( 11,  4   )  struct ( 8) [ebp-0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Metadata.TypeDefinition>
 ;* V07 tmp0         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.PEModule+TypeDefToNamespace>
 ;* V08 tmp1         [V08    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.NamespaceDefinitionHandle>
-;  V09 tmp2         [V09,T29] (  2,  2   )     ref  ->  eax         class-hnd exact single-def "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
+;  V09 tmp2         [V09,T28] (  2,  2   )     ref  ->  eax         class-hnd exact single-def "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
 ;* V10 tmp3         [V10    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandleCollection>
 ;* V11 tmp4         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp5         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandleCollection+Enumerator>
@@ -25,89 +25,90 @@
 ;* V14 tmp7         [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp9         [V16    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
-;  V17 tmp10        [V17,T02] (  4, 16   )     ref  ->  ebx         class-hnd exact "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
+;  V17 tmp10        [V17,T02] (  4,  2   )     ref  ->  ebx         class-hnd exact "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
 ;* V18 tmp11        [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinition>
-;  V19 tmp12        [V19,T11] (  3,  6   )     int  ->  eax         "Inline return value spill temp"
+;  V19 tmp12        [V19,T10] (  3,  0.75)     int  ->  eax         "Inline return value spill temp"
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
-;  V21 tmp14        [V21,T12] (  3,  6   )     int  ->  registers   "Inline return value spill temp"
-;  V22 tmp15        [V22,T03] (  4, 16   )   byref  ->  eax         "impAppendStmt"
+;  V21 tmp14        [V21,T11] (  3,  0.75)     int  ->  registers   "Inline return value spill temp"
+;  V22 tmp15        [V22,T03] (  4,  2   )   byref  ->  eax         "impAppendStmt"
 ;* V23 tmp16        [V23    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V24 tmp17        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp18        [V25    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V26 tmp19        [V26    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
-;  V27 tmp20        [V27,T20] (  2,  4   )     int  ->  edx         "Inline stloc first use temp"
+;  V27 tmp20        [V27,T19] (  2,  0.50)     int  ->  edx         "Inline stloc first use temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V29 tmp22        [V29,T04] (  3, 12   )   byref  ->  ebx         "Inlining Arg"
-;  V30 tmp23        [V30,T05] (  3, 12   )     int  ->  edx         "Inlining Arg"
+;  V29 tmp22        [V29,T05] (  3,  1.50)   byref  ->  ebx         "Inlining Arg"
+;  V30 tmp23        [V30,T06] (  3,  1.50)     int  ->  edx         "Inlining Arg"
 ;* V31 tmp24        [V31    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V32 tmp25        [V32    ] (  0,  0   )  struct ( 4) zero-ref    "Inline return value spill temp" <System.Reflection.Metadata.NamespaceDefinitionHandle>
-;  V33 tmp26        [V33,T13] (  5,  5   )   byref  ->  eax         "impAppendStmt"
+;  V33 tmp26        [V33,T12] (  5,  5   )   byref  ->  eax         "impAppendStmt"
 ;* V34 tmp27        [V34    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V35 tmp28        [V35    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp29        [V36    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V37 tmp30        [V37    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
-;  V38 tmp31        [V38,T35] (  2,  1   )     int  ->  edx         "Inline stloc first use temp"
-;  V39 tmp32        [V39,T30] (  3,  1.50)     int  ->  eax         "Inline return value spill temp"
+;  V38 tmp31        [V38,T36] (  2,  1   )     int  ->  edx         "Inline stloc first use temp"
+;  V39 tmp32        [V39,T29] (  3,  1.50)     int  ->  eax         "Inline return value spill temp"
 ;* V40 tmp33        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V41 tmp34        [V41,T14] (  5,  5   )   byref  ->  esi         "Inlining Arg"
-;  V42 tmp35        [V42,T17] (  5,  5   )     int  ->  edx         "Inlining Arg"
-;  V43 tmp36        [V43,T31] (  3,  1.50)     int  ->  eax         "Inline stloc first use temp"
+;  V41 tmp34        [V41,T13] (  5,  5   )   byref  ->  esi         "Inlining Arg"
+;  V42 tmp35        [V42,T16] (  5,  5   )     int  ->  edx         "Inlining Arg"
+;  V43 tmp36        [V43,T30] (  3,  1.50)     int  ->  eax         "Inline stloc first use temp"
 ;* V44 tmp37        [V44    ] (  0,  0   )  ushort  ->  zero-ref    "Inline return value spill temp"
 ;* V45 tmp38        [V45    ] (  0,  0   )  ushort  ->  zero-ref    "Inline stloc first use temp"
 ;* V46 tmp39        [V46    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V47 tmp40        [V47    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp41        [V48    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.NamespaceDefinitionHandle>
-;  V49 tmp42        [V49,T15] (  5,  5   )   byref  ->  eax         "impAppendStmt"
+;  V49 tmp42        [V49,T14] (  5,  5   )   byref  ->  eax         "impAppendStmt"
 ;* V50 tmp43        [V50    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V51 tmp44        [V51    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V52 tmp45        [V52    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V53 tmp46        [V53    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.TypeDefinitionHandle>
-;  V54 tmp47        [V54,T36] (  2,  1   )     int  ->  edx         "Inline stloc first use temp"
-;  V55 tmp48        [V55,T32] (  3,  1.50)     int  ->  eax         "Inline return value spill temp"
+;  V54 tmp47        [V54,T37] (  2,  1   )     int  ->  edx         "Inline stloc first use temp"
+;  V55 tmp48        [V55,T31] (  3,  1.50)     int  ->  eax         "Inline return value spill temp"
 ;* V56 tmp49        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V57 tmp50        [V57,T16] (  5,  5   )   byref  ->  esi         "Inlining Arg"
-;  V58 tmp51        [V58,T18] (  5,  5   )     int  ->  edx         "Inlining Arg"
-;  V59 tmp52        [V59,T33] (  3,  1.50)     int  ->  eax         "Inline stloc first use temp"
+;  V57 tmp50        [V57,T15] (  5,  5   )   byref  ->  esi         "Inlining Arg"
+;  V58 tmp51        [V58,T17] (  5,  5   )     int  ->  edx         "Inlining Arg"
+;  V59 tmp52        [V59,T32] (  3,  1.50)     int  ->  eax         "Inline stloc first use temp"
 ;* V60 tmp53        [V60    ] (  0,  0   )  ushort  ->  zero-ref    "Inline return value spill temp"
 ;* V61 tmp54        [V61    ] (  0,  0   )  ushort  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp55        [V62    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V63 tmp56        [V63    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V64 tmp57        [V64    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.NamespaceDefinitionHandle>
-;* V65 tmp58        [V65,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V66 tmp59        [V66,T00] (  5, 40   )   byref  ->  eax         "Inlining Arg"
+;* V65 tmp58        [V65,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V66 tmp59        [V66,T00] (  5,  5   )   byref  ->  eax         "Inlining Arg"
 ;* V67 tmp60        [V67    ] (  0,  0   )     int  ->  zero-ref    single-def "field V04._lastRowId (fldOffset=0x0)" P-INDEP
 ;* V68 tmp61        [V68    ] (  0,  0   )     int  ->  zero-ref    "field V05._rowId (fldOffset=0x0)" P-INDEP
-;  V69 tmp62        [V69    ] (  5,  7   )     ref  ->  [ebp-0x28]  do-not-enreg[X] addr-exposed "field V06._reader (fldOffset=0x0)" P-DEP
-;  V70 tmp63        [V70    ] (  7,  9.50)     int  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed "field V06._treatmentAndRowId (fldOffset=0x4)" P-DEP
-;  V71 tmp64        [V71,T37] (  2,  1   )     int  ->  edi         "field V07.TypeDef (fldOffset=0x0)" P-INDEP
-;  V72 tmp65        [V72,T38] (  2,  1   )     int  ->  eax         "field V07.NamespaceHandle (fldOffset=0x4)" P-INDEP
+;  V69 tmp62        [V69    ] (  5,  1.75)     ref  ->  [ebp-0x28]  do-not-enreg[X] addr-exposed "field V06._reader (fldOffset=0x0)" P-DEP
+;  V70 tmp63        [V70    ] (  7,  2.50)     int  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed "field V06._treatmentAndRowId (fldOffset=0x4)" P-DEP
+;  V71 tmp64        [V71,T38] (  2,  1   )     int  ->  edi         "field V07.TypeDef (fldOffset=0x0)" P-INDEP
+;  V72 tmp65        [V72,T39] (  2,  1   )     int  ->  eax         "field V07.NamespaceHandle (fldOffset=0x4)" P-INDEP
 ;* V73 tmp66        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V08._value (fldOffset=0x0)" P-INDEP
-;  V74 tmp67        [V74,T39] (  2,  1   )     int  ->  ecx         single-def "field V10._lastRowId (fldOffset=0x0)" P-INDEP
-;  V75 tmp68        [V75,T40] (  2,  1   )     int  ->  ecx         single-def "field V12._lastRowId (fldOffset=0x0)" P-INDEP
-;* V76 tmp69        [V76,T45] (  0,  0   )     int  ->  zero-ref    single-def "field V12._currentRowId (fldOffset=0x4)" P-INDEP
-;  V77 tmp70        [V77,T10] (  4,  6.50)     int  ->  [ebp-0x2C]  spill-single-def "field V16._rowId (fldOffset=0x0)" P-INDEP
-;  V78 tmp71        [V78,T19] (  2,  4   )     ref  ->  ebx         "field V18._reader (fldOffset=0x0)" P-INDEP
-;  V79 tmp72        [V79,T21] (  2,  4   )     int  ->  eax         "field V18._treatmentAndRowId (fldOffset=0x4)" P-INDEP
+;  V74 tmp67        [V74,T40] (  2,  1   )     int  ->  ecx         single-def "field V10._lastRowId (fldOffset=0x0)" P-INDEP
+;  V75 tmp68        [V75,T41] (  2,  1   )     int  ->  ecx         single-def "field V12._lastRowId (fldOffset=0x0)" P-INDEP
+;* V76 tmp69        [V76,T46] (  0,  0   )     int  ->  zero-ref    single-def "field V12._currentRowId (fldOffset=0x4)" P-INDEP
+;  V77 tmp70        [V77,T09] (  4,  1.25)     int  ->  [ebp-0x2C]  spill-single-def "field V16._rowId (fldOffset=0x0)" P-INDEP
+;  V78 tmp71        [V78,T18] (  2,  0.50)     ref  ->  ebx         "field V18._reader (fldOffset=0x0)" P-INDEP
+;  V79 tmp72        [V79,T20] (  2,  0.50)     int  ->  eax         "field V18._treatmentAndRowId (fldOffset=0x4)" P-INDEP
 ;* V80 tmp73        [V80    ] (  0,  0   )     int  ->  zero-ref    "field V20._rowId (fldOffset=0x0)" P-INDEP
 ;* V81 tmp74        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V23._rowId (fldOffset=0x0)" P-INDEP
-;  V82 tmp75        [V82,T22] (  2,  4   )     int  ->  edx         "field V25._rowId (fldOffset=0x0)" P-INDEP
+;  V82 tmp75        [V82,T21] (  2,  0.50)     int  ->  edx         "field V25._rowId (fldOffset=0x0)" P-INDEP
 ;* V83 tmp76        [V83    ] (  0,  0   )     int  ->  zero-ref    "field V26._rowId (fldOffset=0x0)" P-INDEP
-;  V84 tmp77        [V84,T34] (  3,  1.50)     int  ->  eax         "field V32._value (fldOffset=0x0)" P-INDEP
+;  V84 tmp77        [V84,T33] (  3,  1.50)     int  ->  eax         "field V32._value (fldOffset=0x0)" P-INDEP
 ;* V85 tmp78        [V85    ] (  0,  0   )     int  ->  zero-ref    "field V34._rowId (fldOffset=0x0)" P-INDEP
-;  V86 tmp79        [V86,T41] (  2,  1   )     int  ->  edx         "field V36._rowId (fldOffset=0x0)" P-INDEP
+;  V86 tmp79        [V86,T42] (  2,  1   )     int  ->  edx         "field V36._rowId (fldOffset=0x0)" P-INDEP
 ;* V87 tmp80        [V87    ] (  0,  0   )     int  ->  zero-ref    "field V37._rowId (fldOffset=0x0)" P-INDEP
-;  V88 tmp81        [V88,T42] (  2,  1   )     int  ->  eax         "field V48._value (fldOffset=0x0)" P-INDEP
+;  V88 tmp81        [V88,T43] (  2,  1   )     int  ->  eax         "field V48._value (fldOffset=0x0)" P-INDEP
 ;* V89 tmp82        [V89    ] (  0,  0   )     int  ->  zero-ref    "field V50._rowId (fldOffset=0x0)" P-INDEP
-;  V90 tmp83        [V90,T43] (  2,  1   )     int  ->  edx         "field V52._rowId (fldOffset=0x0)" P-INDEP
+;  V90 tmp83        [V90,T44] (  2,  1   )     int  ->  edx         "field V52._rowId (fldOffset=0x0)" P-INDEP
 ;* V91 tmp84        [V91    ] (  0,  0   )     int  ->  zero-ref    "field V53._rowId (fldOffset=0x0)" P-INDEP
-;  V92 tmp85        [V92,T44] (  2,  1   )     int  ->  eax         "field V64._value (fldOffset=0x0)" P-INDEP
+;  V92 tmp85        [V92,T45] (  2,  1   )     int  ->  eax         "field V64._value (fldOffset=0x0)" P-INDEP
 ;  V93 EHSlots      [V93    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V94 cse0         [V94,T06] (  3, 12   )     int  ->  edx         "CSE - moderate"
-;  V95 rat0         [V95,T07] (  3, 12   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
-;  V96 rat1         [V96,T23] (  3,  3   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
-;  V97 rat2         [V97,T24] (  3,  3   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
-;  V98 rat3         [V98,T25] (  3,  3   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
-;  V99 rat4         [V99,T26] (  3,  3   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
+;  V94 cse0         [V94,T34] (  3,  1.50)     int  ->  edx         "CSE - conservative"
+;* V95 rat0         [V95,T07] (  0,  0   )     int  ->  zero-ref    "ReplaceWithLclVar is creating a new local variable"
+;  V96 rat1         [V96,T22] (  3,  3   )     int  ->  edi         "ReplaceWithLclVar is creating a new local variable"
+;  V97 rat2         [V97,T23] (  3,  3   )     int  ->  edi         "ReplaceWithLclVar is creating a new local variable"
+;  V98 rat3         [V98,T24] (  3,  3   )     int  ->  edi         "ReplaceWithLclVar is creating a new local variable"
+;  V99 rat4         [V99,T25] (  3,  3   )     int  ->  edi         "ReplaceWithLclVar is creating a new local variable"
+;  V100 rat5        [V100,T35] (  3,  1.50)     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
 ;  TEMP_03                                     int  ->  [ebp-0x34]
 ;  TEMP_02                                     int  ->  [ebp-0x38]
 ;  TEMP_01                                     int  ->  [ebp-0x3C]
@@ -139,7 +140,7 @@ G_M34558_IG02:        ; bbWeight=1, gcVars=0000000000000002 {V00}, gcrefRegs=000
                        ;; size=10 bbWeight=1 PerfScore 5.25
 G_M34558_IG03:        ; bbWeight=0.50, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref
        cmp      eax, 1
-       je       G_M34558_IG22
+       je       G_M34558_IG13
        xor      eax, eax
        jmp      G_M34558_IG26
                        ;; size=16 bbWeight=0.50 PerfScore 1.75
@@ -156,43 +157,172 @@ G_M34558_IG04:        ; bbWeight=0.50, gcrefRegs=00000042 {ecx esi}, byrefRegs=0
        mov      dword ptr [edi+0x20], ecx
        mov      ecx, edi
        ; gcrRegs +[ecx]
-       jmp      G_M34558_IG22
+       jmp      G_M34558_IG13
                       ;; size=39 bbWeight=0.50 PerfScore 5.88
-G_M34558_IG05:        ; bbWeight=2, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[eax edi]
+G_M34558_IG05:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[eax esi edi]
+       mov      dword ptr [ecx+0x08], -1
+       xor      edx, edx
+       mov      dword ptr [ecx+0x1C], edx
+       mov      dword ptr [ecx+0x20], edx
+                       ;; size=15 bbWeight=0.50 PerfScore 1.62
+G_M34558_IG06:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+       xor      eax, eax
+       jmp      G_M34558_IG26
+                       ;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M34558_IG07:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, dword ptr [ebp-0x24]
+       shr      eax, 24
+       movzx    eax, al
+       test     eax, eax
+       jne      G_M34558_IG10
+       mov      eax, gword ptr [ebp-0x28]
+       ; gcrRegs +[eax]
+       add      eax, 180
+       ; gcrRegs -[eax]
+       ; byrRegs +[eax]
+       mov      edx, dword ptr [ebp-0x24]
+       and      edx, 0xD1FFAB1E
+       dec      edx
+       imul     edx, dword ptr [eax+0x20]
+       lea      esi, bword ptr [eax+0x24]
+       ; byrRegs +[esi]
+       add      edx, dword ptr [eax+0x10]
+       cmp      byte  ptr [eax+0x07], 0
+       je       SHORT G_M34558_IG08
+       xor      eax, eax
+       ; byrRegs -[eax]
+       mov      ebx, edx
+       add      ebx, 2
+       adc      eax, 0
+       mov      dword ptr [ebp-0x34], eax
+       mov      edi, dword ptr [esi+0x04]
+       mov      eax, edi
+       sar      eax, 31
+       cmp      edi, ebx
+       sbb      eax, dword ptr [ebp-0x34]
+       jb       G_M34558_IG17
+       mov      eax, dword ptr [esi]
+       movzx    eax, word  ptr [eax+edx]
+       jmp      SHORT G_M34558_IG09
+                       ;; size=91 bbWeight=0.50 PerfScore 16.25
+G_M34558_IG08:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref
+       xor      eax, eax
+       mov      ebx, edx
+       add      ebx, 4
+       adc      eax, 0
+       mov      dword ptr [ebp-0x34], eax
+       mov      edi, dword ptr [esi+0x04]
+       mov      eax, edi
+       sar      eax, 31
+       cmp      edi, ebx
+       sbb      eax, dword ptr [ebp-0x34]
+       jb       G_M34558_IG17
+       mov      eax, dword ptr [esi]
+       mov      eax, dword ptr [eax+edx]
+       test     eax, 0xD1FFAB1E
+       jne      G_M34558_IG16
+                       ;; size=48 bbWeight=0.50 PerfScore 6.75
+G_M34558_IG09:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; byrRegs -[esi]
+       jmp      SHORT G_M34558_IG12
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M34558_IG10:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, gword ptr [ebp-0x28]
+       ; gcrRegs +[eax]
+       add      eax, 180
+       ; gcrRegs -[eax]
+       ; byrRegs +[eax]
+       mov      edx, dword ptr [ebp-0x24]
...
  
+49 (+83.05%) : 10000.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_Scan(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]) (FullOpts)
@@ -7,20 +7,23 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6, 22   )     ref  ->  esi         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
-;  V01 arg1         [V01,T01] (  3, 16   )  struct ( 8) [ebp+0x08]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
+;  V00 arg0         [V00,T00] ( 10, 25   )     ref  ->  esi         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
+;  V01 arg1         [V01,T01] (  5, 14   )  struct ( 8) [ebp+0x08]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
 ;  V02 cse0         [V02,T02] (  3, 12   )     int  ->  eax         "CSE - aggressive"
+;  V03 cse1         [V03,T04] (  3,  2   )     int  ->  ecx         "CSE - moderate"
+;  V04 cse2         [V04,T03] (  3,  5   )     int  ->  edi         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
-G_M47574_IG01:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+G_M47574_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     edi
        push     esi
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=6 bbWeight=8 PerfScore 20.00
-G_M47574_IG02:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=7 bbWeight=1 PerfScore 3.50
+G_M47574_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        push     dword ptr [ebp+0x0C]
        push     bword ptr [ebp+0x08]
        mov      ecx, esi
@@ -28,9 +31,37 @@ G_M47574_IG02:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     <unknown method>
        ; gcrRegs -[ecx]
        test     eax, eax
-       je       SHORT G_M47574_IG04
+       je       SHORT G_M47574_IG07
+                       ;; size=17 bbWeight=1 PerfScore 4.50
+G_M47574_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       push     dword ptr [ebp+0x0C]
+       push     bword ptr [ebp+0x08]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     <unknown method>
+       ; gcrRegs -[ecx]
+       test     eax, eax
+       jne      SHORT G_M47574_IG07
+       mov      ecx, dword ptr [esi+0x30]
+       mov      edi, dword ptr [ebp+0x0C]
+       cmp      ecx, edi
+       je       SHORT G_M47574_IG07
+                       ;; size=27 bbWeight=0.50 PerfScore 4.38
+G_M47574_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       inc      ecx
+       mov      dword ptr [esi+0x30], ecx
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M47574_IG05:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       push     dword ptr [ebp+0x0C]
+       push     bword ptr [ebp+0x08]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     <unknown method>
+       ; gcrRegs -[ecx]
+       test     eax, eax
+       je       SHORT G_M47574_IG07
                         ;; size=17 bbWeight=8 PerfScore 36.00
-G_M47574_IG03:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M47574_IG06:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        push     dword ptr [ebp+0x0C]
        push     bword ptr [ebp+0x08]
        mov      ecx, esi
@@ -38,21 +69,22 @@ G_M47574_IG03:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     <unknown method>
        ; gcrRegs -[ecx]
        test     eax, eax
-       jne      SHORT G_M47574_IG04
+       jne      SHORT G_M47574_IG07
        mov      eax, dword ptr [esi+0x30]
-       cmp      eax, dword ptr [ebp+0x0C]
-       je       SHORT G_M47574_IG04
+       cmp      eax, edi
+       je       SHORT G_M47574_IG07
        inc      eax
        mov      dword ptr [esi+0x30], eax
-       jmp      SHORT G_M47574_IG02
-                       ;; size=31 bbWeight=4 PerfScore 51.00
-G_M47574_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+       jmp      SHORT G_M47574_IG05
+                       ;; size=30 bbWeight=4 PerfScore 44.00
+G_M47574_IG07:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[esi]
        pop      esi
+       pop      edi
        pop      ebp
        ret      8
-                        ;; size=5 bbWeight=1 PerfScore 3.00
+                       ;; size=6 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 59, prolog size 4, PerfScore 110.00, instruction count 25, allocated bytes for code 59 (MethodHash=b0674629) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex2_Scan(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]) (FullOpts)
+; Total bytes of code 108, prolog size 5, PerfScore 97.12, instruction count 45, allocated bytes for code 108 (MethodHash=b0674629) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex2_Scan(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]) (FullOpts)
 ; ============================================================
 
  
+44 (+88.00%) : 7880.dasm - Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
@@ -8,67 +8,113 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  6, 22   )     ref  ->  esi         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
-;  V01 tmp0         [V01,T00] (  3, 36   )     ref  ->  ecx         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
+;  V00 this         [V00,T01] (  9, 22.50)     ref  ->  esi         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
+;  V01 tmp0         [V01,T00] (  6, 40.50)     ref  ->  edi         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
 ;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref   
-;  V03 tmp2         [V03,T03] (  4, 14   )     int  ->  eax        
-;  V04 tmp3         [V04,T02] (  3, 18   )     int  ->  ecx         "Inline stloc first use temp"
+;  V03 tmp2         [V03,T03] (  8, 15.75)     int  ->  registers  
+;  V04 tmp3         [V04,T02] (  6, 20.25)     int  ->  registers   "Inline stloc first use temp"
+;  V05 cse0         [V05,T04] (  3,  2.50)     int  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
 G_M16914_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     edi
        push     esi
+       push     ebx
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=6 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 4.50
 G_M16914_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        jmp      SHORT G_M16914_IG04
                        ;; size=2 bbWeight=1 PerfScore 2.00
-G_M16914_IG03:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M16914_IG03:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      eax, dword ptr [esi]
-       mov      eax, dword ptr [eax+0x50]
-       call     [eax+0x10]<unknown method>
+       mov      ebx, dword ptr [eax+0x50]
+       call     [ebx+0x10]<unknown method>
        ; gcrRegs -[ecx]
-                      ;; size=10 bbWeight=2 PerfScore 14.50
-G_M16914_IG04:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, gword ptr [esi+0x04]
-       ; gcrRegs +[ecx]
-       test     ecx, ecx
+       jmp      SHORT G_M16914_IG12
+                       ;; size=12 bbWeight=0.25 PerfScore 2.31
+G_M16914_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [esi+0x04]
+       ; gcrRegs +[edi]
+       test     edi, edi
        jne      SHORT G_M16914_IG06
-                      ;; size=7 bbWeight=8 PerfScore 26.00
-G_M16914_IG05:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
-       xor      eax, eax
+                     ;; size=7 bbWeight=1 PerfScore 3.25
+G_M16914_IG05:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       xor      ebx, ebx
        jmp      SHORT G_M16914_IG07
-                      ;; size=4 bbWeight=2 PerfScore 4.50
-G_M16914_IG06:        ; bbWeight=2, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs +[ecx]
-       mov      eax, dword ptr [ecx+0x08]
-                       ;; size=3 bbWeight=2 PerfScore 4.00
-G_M16914_IG07:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
-       mov      ecx, eax
+                     ;; size=4 bbWeight=0.25 PerfScore 0.56
+G_M16914_IG06:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[edi]
+       mov      ebx, dword ptr [edi+0x08]
+                       ;; size=3 bbWeight=0.25 PerfScore 0.50
+G_M16914_IG07:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       mov      eax, ebx
        cmp      dword ptr [esi+0x30], 0
        je       SHORT G_M16914_IG09
+                      ;; size=8 bbWeight=1 PerfScore 4.25
+G_M16914_IG08:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       lea      eax, [ebx+0x01]
+                       ;; size=3 bbWeight=0.25 PerfScore 0.12
+G_M16914_IG09:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       test     eax, eax
+       jg       SHORT G_M16914_IG03
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M16914_IG10:        ; bbWeight=0.12, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[esi]
+       jmp      SHORT G_M16914_IG18
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M16914_IG11:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[esi]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     [ebx+0x10]<unknown method>
+       ; gcrRegs -[ecx]
+                       ;; size=5 bbWeight=2 PerfScore 6.50
+G_M16914_IG12:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [esi+0x04]
+       ; gcrRegs +[edi]
+       test     edi, edi
+       jne      SHORT G_M16914_IG14
+                       ;; size=7 bbWeight=8 PerfScore 26.00
+G_M16914_IG13:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       xor      ecx, ecx
+       xor      eax, eax
+       jmp      SHORT G_M16914_IG15
+                       ;; size=6 bbWeight=2 PerfScore 5.00
+G_M16914_IG14:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[edi]
+       mov      eax, dword ptr [edi+0x08]
+                       ;; size=3 bbWeight=2 PerfScore 4.00
+G_M16914_IG15:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       mov      ecx, eax
+       cmp      dword ptr [esi+0x30], 0
+       je       SHORT G_M16914_IG17
                         ;; size=8 bbWeight=8 PerfScore 34.00
-G_M16914_IG08:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M16914_IG16:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        lea      ecx, [eax+0x01]
                        ;; size=3 bbWeight=2 PerfScore 1.00
-G_M16914_IG09:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M16914_IG17:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        test     ecx, ecx
-       jg       SHORT G_M16914_IG03
+       jg       SHORT G_M16914_IG11
                      ;; size=4 bbWeight=8 PerfScore 10.00
-G_M16914_IG10:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M16914_IG18:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[esi]
+       pop      ebx
        pop      esi
+       pop      edi
        pop      ebp
        ret      
-                     ;; size=3 bbWeight=1 PerfScore 2.00
+                       ;; size=5 bbWeight=1 PerfScore 3.00
 
-; Total bytes of code 50, prolog size 4, PerfScore 100.50, instruction count 24, allocated bytes for code 50 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
+; Total bytes of code 94, prolog size 6, PerfScore 108.50, instruction count 45, allocated bytes for code 94 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
 ; ============================================================
 
  
+28 (+103.70%) : 20513.dasm - System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (Tier0-FullOpts)
@@ -7,9 +7,9 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5, 11   )     int  ->  eax        
-;  V01 arg1         [V01,T00] (  7, 19   )     int  ->  esi        
-;  V02 loc0         [V02,T02] (  2,  8   )     int  ->  edx        
+;  V00 arg0         [V00,T01] (  7, 13   )     int  ->  registers  
+;  V01 arg1         [V01,T00] ( 11, 23   )     int  ->  registers  
+;  V02 loc0         [V02,T02] (  4, 10   )     int  ->  edx        
 ;
 ; Lcl frame size = 0
 
@@ -22,22 +22,44 @@ G_M22426_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=8 bbWeight=1 PerfScore 2.75
 G_M22426_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        test     esi, esi
-       je       SHORT G_M22426_IG04
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M22426_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       je       SHORT G_M22426_IG08
        xor      edx, edx
        div      edx:eax, esi
        mov      eax, esi
        mov      esi, edx
        test     esi, esi
-       jne      SHORT G_M22426_IG03
-                       ;; size=12 bbWeight=4 PerfScore 108.00
-G_M22426_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+       je       SHORT G_M22426_IG07
+                       ;; size=16 bbWeight=1 PerfScore 28.25
+G_M22426_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       xor      edx, edx
+       div      edx:eax, esi
+       mov      eax, edx
+       test     eax, eax
+       jne      SHORT G_M22426_IG06
+                       ;; size=10 bbWeight=4 PerfScore 107.00
+G_M22426_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       mov      eax, esi
+                       ;; size=2 bbWeight=1 PerfScore 0.25
+G_M22426_IG05:        ; bbWeight=1, epilog, nogc, extend
        pop      esi
        pop      ebp
        ret      
                        ;; size=3 bbWeight=1 PerfScore 2.00
+G_M22426_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      ecx, eax
+       mov      eax, esi
+       mov      esi, ecx
+       jmp      SHORT G_M22426_IG03
+                       ;; size=8 bbWeight=2 PerfScore 5.50
+G_M22426_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, eax
+       jmp      SHORT G_M22426_IG04
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
+G_M22426_IG08:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, eax
+       jmp      SHORT G_M22426_IG04
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 27, prolog size 8, PerfScore 114.00, instruction count 16, allocated bytes for code 27 (MethodHash=f186a865) for method System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (Tier0-FullOpts)
+; Total bytes of code 55, prolog size 8, PerfScore 148.00, instruction count 30, allocated bytes for code 55 (MethodHash=f186a865) for method System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (Tier0-FullOpts)
 ; ============================================================
 
  
  
coreclr_tests.run.windows.x86.checked.mch
-34 (-61.82%) : 289397.dasm - foo:Main():int (Tier0-FullOpts)
@@ -7,49 +7,26 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T00] (  5, 14   )     int  ->  ecx        
+;* V00 loc0         [V00,T00] (  0,  0   )     int  ->  zero-ref   
 ;
 ; Lcl frame size = 0
 
-G_M24869_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M24869_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
                        ;; size=3 bbWeight=1 PerfScore 1.25
 G_M24869_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      ecx, 1
-                       ;; size=5 bbWeight=1 PerfScore 0.25
-G_M24869_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       inc      ecx
-       cmp      ecx, 2
-       jl       SHORT G_M24869_IG03
-                       ;; size=6 bbWeight=4 PerfScore 6.00
-G_M24869_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       cmp      ecx, 2
-       je       SHORT G_M24869_IG07
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M24869_IG05:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      ecx, 0xD1FFAB1E
-       ; gcrRegs +[ecx]
-       call     [<unknown method>]
-       ; gcrRegs -[ecx]
-       mov      eax, 101
-                       ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M24869_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       pop      ebp
-       ret      
-                       ;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M24869_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx]
        mov      eax, 100
-                     ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M24869_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+                      ;; size=16 bbWeight=1 PerfScore 3.50
+G_M24869_IG03:        ; bbWeight=1, epilog, nogc, extend
        pop      ebp
        ret      
-                     ;; size=2 bbWeight=0.50 PerfScore 0.75
+                        ;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 55, prolog size 3, PerfScore 13.75, instruction count 18, allocated bytes for code 55 (MethodHash=945a9eda) for method foo:Main():int (Tier0-FullOpts)
+; Total bytes of code 21, prolog size 3, PerfScore 6.25, instruction count 7, allocated bytes for code 21 (MethodHash=945a9eda) for method foo:Main():int (Tier0-FullOpts)
 ; ============================================================
 
  
-34 (-61.82%) : 519554.dasm - foo:Main():int (FullOpts)
@@ -7,49 +7,26 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T00] (  5, 14   )     int  ->  ecx        
+;* V00 loc0         [V00,T00] (  0,  0   )     int  ->  zero-ref   
 ;
 ; Lcl frame size = 0
 
-G_M24869_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M24869_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
                        ;; size=3 bbWeight=1 PerfScore 1.25
 G_M24869_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      ecx, 1
-                       ;; size=5 bbWeight=1 PerfScore 0.25
-G_M24869_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       inc      ecx
-       cmp      ecx, 2
-       jl       SHORT G_M24869_IG03
-                       ;; size=6 bbWeight=4 PerfScore 6.00
-G_M24869_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       cmp      ecx, 2
-       je       SHORT G_M24869_IG07
-                       ;; size=5 bbWeight=1 PerfScore 1.25
-G_M24869_IG05:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      ecx, 0xD1FFAB1E
-       ; gcrRegs +[ecx]
-       call     [<unknown method>]
-       ; gcrRegs -[ecx]
-       mov      eax, 101
-                       ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M24869_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       pop      ebp
-       ret      
-                       ;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M24869_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx]
        mov      eax, 100
-                     ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M24869_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+                      ;; size=16 bbWeight=1 PerfScore 3.50
+G_M24869_IG03:        ; bbWeight=1, epilog, nogc, extend
        pop      ebp
        ret      
-                     ;; size=2 bbWeight=0.50 PerfScore 0.75
+                        ;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 55, prolog size 3, PerfScore 13.75, instruction count 18, allocated bytes for code 55 (MethodHash=945a9eda) for method foo:Main():int (FullOpts)
+; Total bytes of code 21, prolog size 3, PerfScore 6.25, instruction count 7, allocated bytes for code 21 (MethodHash=945a9eda) for method foo:Main():int (FullOpts)
 ; ============================================================
 
  
-31 (-22.46%) : 231981.dasm - Benchstone.BenchI.BubbleSort2:Bench():ubyte (Tier0-FullOpts)
@@ -7,11 +7,11 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T02] (  9, 35.92)     ref  ->  esi         class-hnd exact single-def <int[]>
-;  V01 loc1         [V01,T00] ( 13, 69.80)     int  ->  eax        
-;  V02 loc2         [V02,T01] (  8, 43   )     int  ->  ecx        
+;  V00 loc0         [V00,T01] ( 11, 16.92)     ref  ->  esi         class-hnd exact single-def <int[]>
+;  V01 loc1         [V01,T00] (  6, 20.80)     int  ->  eax        
+;  V02 loc2         [V02,T03] (  3,  3   )     int  ->  ecx        
 ;* V03 loc3         [V03,T04] (  0,  0   )     int  ->  zero-ref    single-def
-;  V04 cse0         [V04,T03] (  2,  7.92)     int  ->  ecx         "CSE - aggressive"
+;  V04 cse0         [V04,T02] (  2,  7.92)     int  ->  ecx         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -20,68 +20,55 @@ G_M42106_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        mov      ebp, esp
        push     esi
                        ;; size=4 bbWeight=1 PerfScore 2.25
-G_M42106_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M42106_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, 0xD1FFAB1E      ; int[]
        mov      edx, 6
        call     CORINFO_HELP_NEWARR_1_VC
        ; gcrRegs +[eax]
        mov      esi, eax
        ; gcrRegs +[esi]
-       mov      ecx, 0x1869F
-       mov      eax, 1
-       ; gcrRegs -[eax]
-                       ;; size=27 bbWeight=1 PerfScore 2.25
-G_M42106_IG03:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, ecx
-       and      edx, 0x7FFF
-       mov      dword ptr [esi+4*eax+0x08], edx
-       lea      edx, [ecx+0x2B67]
-       and      edx, 0x7FFF
-       mov      dword ptr [esi+4*eax+0x0C], edx
-       lea      edx, [ecx+0x56CE]
-       and      edx, 0x7FFF
-       mov      dword ptr [esi+4*eax+0x10], edx
-       add      ecx, 0x8235
-       add      eax, 3
-       cmp      eax, 3
-       jle      SHORT G_M42106_IG03
-                       ;; size=58 bbWeight=8 PerfScore 54.00
-G_M42106_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       mov      dword ptr [esi+0x0C], 0x69F
+       mov      dword ptr [esi+0x10], 0x3206
+       mov      dword ptr [esi+0x14], 0x5D6D
+       mov      ecx, 0x208D4
        mov      dword ptr [esi+0x18], ecx
        mov      dword ptr [esi+0x1C], ecx
        mov      ecx, esi
        ; gcrRegs +[ecx]
        call     [Benchstone.BenchI.BubbleSort2:Inner(int[])]
-       ; gcrRegs -[ecx]
-       xor      eax, eax
-                       ;; size=16 bbWeight=1 PerfScore 5.50
-G_M42106_IG05:        ; bbWeight=3.96, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax ecx]
+       mov      eax, dword ptr [esi+0x08]
+       cmp      eax, dword ptr [esi+0x0C]
+       jg       SHORT G_M42106_IG06
+       mov      eax, 1
+                       ;; size=70 bbWeight=1 PerfScore 16.50
+G_M42106_IG03:        ; bbWeight=3.96, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [esi+4*eax+0x08]
        lea      ecx, [eax+0x01]
        cmp      edx, dword ptr [esi+4*eax+0x0C]
-       jg       SHORT G_M42106_IG08
+       jg       SHORT G_M42106_IG06
        mov      eax, ecx
        cmp      eax, 4
-       jl       SHORT G_M42106_IG05
+       jl       SHORT G_M42106_IG03
                        ;; size=20 bbWeight=3.96 PerfScore 31.68
-G_M42106_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M42106_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi]
        mov      eax, 1
                        ;; size=5 bbWeight=1 PerfScore 0.25
+G_M42106_IG05:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      esi
+       pop      ebp
+       ret      
+                       ;; size=3 bbWeight=0.50 PerfScore 1.00
+G_M42106_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       xor      eax, eax
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M42106_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        pop      esi
        pop      ebp
        ret      
                        ;; size=3 bbWeight=0.50 PerfScore 1.00
-G_M42106_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       xor      eax, eax
-                       ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M42106_IG09:        ; bbWeight=0.50, epilog, nogc, extend
-       pop      esi
-       pop      ebp
-       ret      
-                       ;; size=3 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 138, prolog size 4, PerfScore 98.05, instruction count 42, allocated bytes for code 138 (MethodHash=86305b85) for method Benchstone.BenchI.BubbleSort2:Bench():ubyte (Tier0-FullOpts)
+; Total bytes of code 107, prolog size 4, PerfScore 52.81, instruction count 34, allocated bytes for code 107 (MethodHash=86305b85) for method Benchstone.BenchI.BubbleSort2:Bench():ubyte (Tier0-FullOpts)
 ; ============================================================
 
  
+32 (+86.49%) : 291868.dasm - Test27937:calc(uint,uint) (Tier0-FullOpts)
@@ -7,15 +7,16 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T03] (  3, 10   )     int  ->  ecx         single-def
-;  V01 arg1         [V01,T05] (  3,  3   )     int  ->  edx         single-def
-;  V02 loc0         [V02,T01] (  5,138   )     int  ->  edx        
-;  V03 loc1         [V03,T04] (  2,  9   )     int  ->  eax         single-def
-;  V04 loc2         [V04,T00] (  6,272   )     int  ->  esi        
-;  V05 loc3         [V05,T02] (  2, 72   )     int  ->  edi        
-;* V06 loc4         [V06,T06] (  0,  0   )  simd16  ->  zero-ref    <System.Runtime.Intrinsics.Vector128`1[float]>
+;  V00 arg0         [V00,T03] (  4, 11   )     int  ->  ecx         single-def
+;  V01 arg1         [V01,T06] (  3,  3   )     int  ->  edx         single-def
+;  V02 loc0         [V02,T01] (  8,155   )     int  ->  edx        
+;  V03 loc1         [V03,T04] (  3, 10   )     int  ->  eax         single-def
+;  V04 loc2         [V04,T00] ( 11,298   )     int  ->  esi        
+;  V05 loc3         [V05,T02] (  4, 81   )     int  ->  ebx        
+;* V06 loc4         [V06,T07] (  0,  0   )  simd16  ->  zero-ref    <System.Runtime.Intrinsics.Vector128`1[float]>
+;  V07 cse0         [V07,T05] (  3, 10   )     int  ->  [ebp-0x10]  spill-single-def "CSE - moderate"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
 G_M57006_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -23,34 +24,53 @@ G_M57006_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-                      ;; size=6 bbWeight=1 PerfScore 4.25
+       push     eax
+                       ;; size=7 bbWeight=1 PerfScore 5.25
 G_M57006_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        lea      eax, [edx+0x40]
-                      ;; size=3 bbWeight=1 PerfScore 0.50
-G_M57006_IG03:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      esi, ecx
        lea      edi, [esi+0x40]
-                      ;; size=5 bbWeight=8 PerfScore 6.00
-G_M57006_IG04:        ; bbWeight=64, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       xor      ebx, ebx
-       mov      dword ptr [esi], ebx
+       mov      dword ptr [ebp-0x10], edi
+       mov      ebx, edi
+                       ;; size=13 bbWeight=1 PerfScore 2.50
+G_M57006_IG03:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       xor      edi, edi
+       mov      dword ptr [esi], edi
        add      esi, 16
        add      edx, 16
-       cmp      esi, edi
-       jb       SHORT G_M57006_IG04
-                       ;; size=14 bbWeight=64 PerfScore 192.00
-G_M57006_IG05:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       cmp      edx, eax
+       cmp      esi, ebx
        jb       SHORT G_M57006_IG03
+                        ;; size=14 bbWeight=8 PerfScore 24.00
+G_M57006_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       cmp      edx, eax
+       jae      SHORT G_M57006_IG08
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M57006_IG05:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       mov      esi, ecx
+       mov      edi, dword ptr [ebp-0x10]
+       mov      ebx, edi
+                       ;; size=7 bbWeight=8 PerfScore 12.00
+G_M57006_IG06:        ; bbWeight=64, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       xor      edi, edi
+       mov      dword ptr [esi], edi
+       add      esi, 16
+       add      edx, 16
+       cmp      esi, ebx
+       jb       SHORT G_M57006_IG06
+                       ;; size=14 bbWeight=64 PerfScore 192.00
+G_M57006_IG07:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       cmp      edx, eax
+       jb       SHORT G_M57006_IG05
                         ;; size=4 bbWeight=8 PerfScore 10.00
-G_M57006_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M57006_IG08:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      
-                     ;; size=5 bbWeight=1 PerfScore 3.00
+                       ;; size=6 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 37, prolog size 6, PerfScore 215.75, instruction count 21, allocated bytes for code 37 (MethodHash=d3a82151) for method Test27937:calc(uint,uint) (Tier0-FullOpts)
+; Total bytes of code 69, prolog size 7, PerfScore 250.50, instruction count 36, allocated bytes for code 69 (MethodHash=d3a82151) for method Test27937:calc(uint,uint) (Tier0-FullOpts)
 ; ============================================================
 
  
+44 (+88.00%) : 481611.dasm - Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
@@ -8,67 +8,113 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  6, 22   )     ref  ->  esi         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
-;  V01 tmp0         [V01,T00] (  3, 36   )     ref  ->  ecx         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
+;  V00 this         [V00,T01] (  9, 22.50)     ref  ->  esi         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
+;  V01 tmp0         [V01,T00] (  6, 40.50)     ref  ->  edi         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
 ;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref   
-;  V03 tmp2         [V03,T03] (  4, 14   )     int  ->  eax        
-;  V04 tmp3         [V04,T02] (  3, 18   )     int  ->  ecx         "Inline stloc first use temp"
+;  V03 tmp2         [V03,T03] (  8, 15.75)     int  ->  registers  
+;  V04 tmp3         [V04,T02] (  6, 20.25)     int  ->  registers   "Inline stloc first use temp"
+;  V05 cse0         [V05,T04] (  3,  2.50)     int  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
 G_M16914_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     edi
        push     esi
+       push     ebx
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=6 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 4.50
 G_M16914_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        jmp      SHORT G_M16914_IG04
                        ;; size=2 bbWeight=1 PerfScore 2.00
-G_M16914_IG03:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M16914_IG03:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      eax, dword ptr [esi]
-       mov      eax, dword ptr [eax+0x50]
-       call     [eax+0x10]<unknown method>
+       mov      ebx, dword ptr [eax+0x50]
+       call     [ebx+0x10]<unknown method>
        ; gcrRegs -[ecx]
-                      ;; size=10 bbWeight=2 PerfScore 14.50
-G_M16914_IG04:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, gword ptr [esi+0x04]
-       ; gcrRegs +[ecx]
-       test     ecx, ecx
+       jmp      SHORT G_M16914_IG12
+                       ;; size=12 bbWeight=0.25 PerfScore 2.31
+G_M16914_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [esi+0x04]
+       ; gcrRegs +[edi]
+       test     edi, edi
        jne      SHORT G_M16914_IG06
-                      ;; size=7 bbWeight=8 PerfScore 26.00
-G_M16914_IG05:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
-       xor      eax, eax
+                     ;; size=7 bbWeight=1 PerfScore 3.25
+G_M16914_IG05:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       xor      ebx, ebx
        jmp      SHORT G_M16914_IG07
-                      ;; size=4 bbWeight=2 PerfScore 4.50
-G_M16914_IG06:        ; bbWeight=2, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs +[ecx]
-       mov      eax, dword ptr [ecx+0x08]
-                       ;; size=3 bbWeight=2 PerfScore 4.00
-G_M16914_IG07:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
-       mov      ecx, eax
+                     ;; size=4 bbWeight=0.25 PerfScore 0.56
+G_M16914_IG06:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[edi]
+       mov      ebx, dword ptr [edi+0x08]
+                       ;; size=3 bbWeight=0.25 PerfScore 0.50
+G_M16914_IG07:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       mov      eax, ebx
        cmp      dword ptr [esi+0x30], 0
        je       SHORT G_M16914_IG09
+                      ;; size=8 bbWeight=1 PerfScore 4.25
+G_M16914_IG08:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       lea      eax, [ebx+0x01]
+                       ;; size=3 bbWeight=0.25 PerfScore 0.12
+G_M16914_IG09:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       test     eax, eax
+       jg       SHORT G_M16914_IG03
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M16914_IG10:        ; bbWeight=0.12, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[esi]
+       jmp      SHORT G_M16914_IG18
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M16914_IG11:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[esi]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     [ebx+0x10]<unknown method>
+       ; gcrRegs -[ecx]
+                       ;; size=5 bbWeight=2 PerfScore 6.50
+G_M16914_IG12:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [esi+0x04]
+       ; gcrRegs +[edi]
+       test     edi, edi
+       jne      SHORT G_M16914_IG14
+                       ;; size=7 bbWeight=8 PerfScore 26.00
+G_M16914_IG13:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       xor      ecx, ecx
+       xor      eax, eax
+       jmp      SHORT G_M16914_IG15
+                       ;; size=6 bbWeight=2 PerfScore 5.00
+G_M16914_IG14:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[edi]
+       mov      eax, dword ptr [edi+0x08]
+                       ;; size=3 bbWeight=2 PerfScore 4.00
+G_M16914_IG15:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       mov      ecx, eax
+       cmp      dword ptr [esi+0x30], 0
+       je       SHORT G_M16914_IG17
                         ;; size=8 bbWeight=8 PerfScore 34.00
-G_M16914_IG08:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M16914_IG16:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        lea      ecx, [eax+0x01]
                        ;; size=3 bbWeight=2 PerfScore 1.00
-G_M16914_IG09:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M16914_IG17:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        test     ecx, ecx
-       jg       SHORT G_M16914_IG03
+       jg       SHORT G_M16914_IG11
                      ;; size=4 bbWeight=8 PerfScore 10.00
-G_M16914_IG10:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M16914_IG18:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[esi]
+       pop      ebx
        pop      esi
+       pop      edi
        pop      ebp
        ret      
-                     ;; size=3 bbWeight=1 PerfScore 2.00
+                       ;; size=5 bbWeight=1 PerfScore 3.00
 
-; Total bytes of code 50, prolog size 4, PerfScore 100.50, instruction count 24, allocated bytes for code 50 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
+; Total bytes of code 94, prolog size 6, PerfScore 108.50, instruction count 45, allocated bytes for code 94 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
 ; ============================================================
 
  
+44 (+88.00%) : 235600.dasm - Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
@@ -8,67 +8,113 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  6, 22   )     ref  ->  esi         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
-;  V01 tmp0         [V01,T00] (  3, 36   )     ref  ->  ecx         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
+;  V00 this         [V00,T01] (  9, 22.50)     ref  ->  esi         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
+;  V01 tmp0         [V01,T00] (  6, 40.50)     ref  ->  edi         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
 ;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref   
-;  V03 tmp2         [V03,T03] (  4, 14   )     int  ->  eax        
-;  V04 tmp3         [V04,T02] (  3, 18   )     int  ->  ecx         "Inline stloc first use temp"
+;  V03 tmp2         [V03,T03] (  8, 15.75)     int  ->  registers  
+;  V04 tmp3         [V04,T02] (  6, 20.25)     int  ->  registers   "Inline stloc first use temp"
+;  V05 cse0         [V05,T04] (  3,  2.50)     int  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
 G_M16914_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     edi
        push     esi
+       push     ebx
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=6 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 4.50
 G_M16914_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        jmp      SHORT G_M16914_IG04
                        ;; size=2 bbWeight=1 PerfScore 2.00
-G_M16914_IG03:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M16914_IG03:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      eax, dword ptr [esi]
-       mov      eax, dword ptr [eax+0x50]
-       call     [eax+0x10]<unknown method>
+       mov      ebx, dword ptr [eax+0x50]
+       call     [ebx+0x10]<unknown method>
        ; gcrRegs -[ecx]
-                      ;; size=10 bbWeight=2 PerfScore 14.50
-G_M16914_IG04:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, gword ptr [esi+0x04]
-       ; gcrRegs +[ecx]
-       test     ecx, ecx
+       jmp      SHORT G_M16914_IG12
+                       ;; size=12 bbWeight=0.25 PerfScore 2.31
+G_M16914_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [esi+0x04]
+       ; gcrRegs +[edi]
+       test     edi, edi
        jne      SHORT G_M16914_IG06
-                      ;; size=7 bbWeight=8 PerfScore 26.00
-G_M16914_IG05:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
-       xor      eax, eax
+                     ;; size=7 bbWeight=1 PerfScore 3.25
+G_M16914_IG05:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       xor      ebx, ebx
        jmp      SHORT G_M16914_IG07
-                      ;; size=4 bbWeight=2 PerfScore 4.50
-G_M16914_IG06:        ; bbWeight=2, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs +[ecx]
-       mov      eax, dword ptr [ecx+0x08]
-                       ;; size=3 bbWeight=2 PerfScore 4.00
-G_M16914_IG07:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
-       mov      ecx, eax
+                     ;; size=4 bbWeight=0.25 PerfScore 0.56
+G_M16914_IG06:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[edi]
+       mov      ebx, dword ptr [edi+0x08]
+                       ;; size=3 bbWeight=0.25 PerfScore 0.50
+G_M16914_IG07:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       mov      eax, ebx
        cmp      dword ptr [esi+0x30], 0
        je       SHORT G_M16914_IG09
+                      ;; size=8 bbWeight=1 PerfScore 4.25
+G_M16914_IG08:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       lea      eax, [ebx+0x01]
+                       ;; size=3 bbWeight=0.25 PerfScore 0.12
+G_M16914_IG09:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       test     eax, eax
+       jg       SHORT G_M16914_IG03
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M16914_IG10:        ; bbWeight=0.12, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[esi]
+       jmp      SHORT G_M16914_IG18
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M16914_IG11:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[esi]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     [ebx+0x10]<unknown method>
+       ; gcrRegs -[ecx]
+                       ;; size=5 bbWeight=2 PerfScore 6.50
+G_M16914_IG12:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [esi+0x04]
+       ; gcrRegs +[edi]
+       test     edi, edi
+       jne      SHORT G_M16914_IG14
+                       ;; size=7 bbWeight=8 PerfScore 26.00
+G_M16914_IG13:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       xor      ecx, ecx
+       xor      eax, eax
+       jmp      SHORT G_M16914_IG15
+                       ;; size=6 bbWeight=2 PerfScore 5.00
+G_M16914_IG14:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[edi]
+       mov      eax, dword ptr [edi+0x08]
+                       ;; size=3 bbWeight=2 PerfScore 4.00
+G_M16914_IG15:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       mov      ecx, eax
+       cmp      dword ptr [esi+0x30], 0
+       je       SHORT G_M16914_IG17
                         ;; size=8 bbWeight=8 PerfScore 34.00
-G_M16914_IG08:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M16914_IG16:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        lea      ecx, [eax+0x01]
                        ;; size=3 bbWeight=2 PerfScore 1.00
-G_M16914_IG09:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M16914_IG17:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        test     ecx, ecx
-       jg       SHORT G_M16914_IG03
+       jg       SHORT G_M16914_IG11
                      ;; size=4 bbWeight=8 PerfScore 10.00
-G_M16914_IG10:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M16914_IG18:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[esi]
+       pop      ebx
        pop      esi
+       pop      edi
        pop      ebp
        ret      
-                     ;; size=3 bbWeight=1 PerfScore 2.00
+                       ;; size=5 bbWeight=1 PerfScore 3.00
 
-; Total bytes of code 50, prolog size 4, PerfScore 100.50, instruction count 24, allocated bytes for code 50 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
+; Total bytes of code 94, prolog size 6, PerfScore 108.50, instruction count 45, allocated bytes for code 94 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (Tier0-FullOpts)
 ; ============================================================
 
  
  
libraries.crossgen2.windows.x86.checked.mch
-11 (-10.19%) : 89382.dasm - Microsoft.Diagnostics.Tracing.EventPipeEventHeader:ReadVarUInt64(byref):ulong (FullOpts)
@@ -8,21 +8,27 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T04] (  4, 10   )   byref  ->  [ebp-0x24]  single-def
+;  V00 arg0         [V00,T02] (  4,  4   )   byref  ->  [ebp-0x20]  single-def
 ;* V01 loc0         [V01    ] (  0,  0   )    long  ->  zero-ref   
-;  V02 loc1         [V02,T03] (  5, 15   )     int  ->  [ebp-0x10] 
-;  V03 loc2         [V03,T05] (  3, 12   )   ubyte  ->  [ebp-0x14]  spill-single-def
-;  V04 cse0         [V04,T06] (  3, 12   )     int  ->  eax         "CSE - aggressive"
-;  V05 rat0         [V05,T09] (  4, 10   )     int  ->  edi         "field V01.lo (fldOffset=0x0)" P-INDEP
-;  V06 rat1         [V06,T10] (  4, 10   )     int  ->  [ebp-0x18]  "field V01.hi (fldOffset=0x4)" P-INDEP
-;  V07 rat2         [V07,T00] (  3, 24   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
-;  V08 rat3         [V08,T01] (  2, 16   )     int  ->  ebx         "ReplaceWithLclVar is creating a new local variable"
-;  V09 rat4         [V09,T02] (  2, 16   )     int  ->  esi         "ReplaceWithLclVar is creating a new local variable"
-;  V10 rat5         [V10    ] (  1,  8   )    long  ->  [ebp-0x20]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
-;  V11 rat6         [V11,T07] (  2, 12   )     int  ->  eax         "field V10.lo (fldOffset=0x0)" P-INDEP
-;  V12 rat7         [V12,T08] (  2, 12   )     int  ->  edx         "field V10.hi (fldOffset=0x4)" P-INDEP
+;  V02 loc1         [V02,T01] (  5,  4.50)     int  ->  [ebp-0x10] 
+;  V03 loc2         [V03,T05] (  3,  3   )   ubyte  ->  [ebp-0x14]  spill-single-def
+;  V04 cse0         [V04,T13] (  3,  3   )     int  ->  eax         "CSE - moderate"
+;  V05 rat0         [V05,T06] (  4,  4   )     int  ->  edi         "field V01.lo (fldOffset=0x0)" P-INDEP
+;  V06 rat1         [V06,T07] (  4,  4   )     int  ->  ebx         "field V01.hi (fldOffset=0x4)" P-INDEP
+;  V07 rat2         [V07,T10] (  3,  6   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
+;  V08 rat3         [V08,T11] (  2,  4   )     int  ->  esi         "ReplaceWithLclVar is creating a new local variable"
+;  V09 rat4         [V09,T12] (  2,  4   )     int  ->  edx         "ReplaceWithLclVar is creating a new local variable"
+;  V10 rat5         [V10    ] (  1,  2   )    long  ->  [ebp-0x1C]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
+;  V11 rat6         [V11,T14] (  2,  3   )     int  ->  eax         "field V10.lo (fldOffset=0x0)" P-INDEP
+;  V12 rat7         [V12,T15] (  2,  3   )     int  ->  edx         "field V10.hi (fldOffset=0x4)" P-INDEP
+;* V13 rat8         [V13,T00] (  0,  0   )     int  ->  zero-ref    "ReplaceWithLclVar is creating a new local variable"
+;* V14 rat9         [V14,T03] (  0,  0   )     int  ->  zero-ref    "ReplaceWithLclVar is creating a new local variable"
+;* V15 rat10        [V15,T04] (  0,  0   )     int  ->  zero-ref    "ReplaceWithLclVar is creating a new local variable"
+;* V16 rat11        [V16    ] (  0,  0   )    long  ->  zero-ref    do-not-enreg[BR] multireg-ret "ReplaceWithLclVar is creating a new local variable"
+;* V17 rat12        [V17,T08] (  0,  0   )     int  ->  zero-ref    "field V16.lo (fldOffset=0x0)" P-DEP
+;* V18 rat13        [V18,T09] (  0,  0   )     int  ->  zero-ref    "field V16.hi (fldOffset=0x4)" P-DEP
 ;
-; Lcl frame size = 24
+; Lcl frame size = 20
 
 G_M42372_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -30,57 +36,53 @@ G_M42372_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 24
+       sub      esp, 20
        mov      esi, ecx
        ; byrRegs +[esi]
                        ;; size=11 bbWeight=1 PerfScore 4.75
 G_M42372_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
        xor      edi, edi
        xor      ebx, ebx
-       mov      dword ptr [ebp-0x18], ebx
        xor      ecx, ecx
        jmp      SHORT G_M42372_IG05
-                      ;; size=11 bbWeight=1 PerfScore 3.75
-G_M42372_IG03:        ; bbWeight=2, gcVars=00000010 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+                      ;; size=8 bbWeight=1 PerfScore 2.75
+G_M42372_IG03:        ; bbWeight=0.50, gcVars=00000004 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; byrRegs -[esi]
-       ; GC ptr vars +{V00 V04}
+       ; GC ptr vars +{V00 V02}
        cmp      esi, 70
        mov      ecx, esi
        je       SHORT G_M42372_IG06
-                      ;; size=7 bbWeight=2 PerfScore 3.00
-G_M42372_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      dword ptr [ebp-0x18], ebx
-       mov      esi, bword ptr [ebp-0x24]
+                        ;; size=7 bbWeight=0.50 PerfScore 0.75
+G_M42372_IG04:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       mov      esi, bword ptr [ebp-0x20]
        ; byrRegs +[esi]
-                     ;; size=6 bbWeight=1 PerfScore 2.00
-G_M42372_IG05:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, gcvars, byref, isz
-       ; GC ptr vars -{V00 V04}
+                      ;; size=3 bbWeight=0.25 PerfScore 0.25
+G_M42372_IG05:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, gcvars, byref, isz
+       ; GC ptr vars -{V00 V02}
        mov      eax, dword ptr [esi]
        movzx    edx, byte  ptr [eax]
        mov      dword ptr [ebp-0x14], edx
        inc      eax
-       mov      bword ptr [ebp-0x24], esi
+       mov      bword ptr [ebp-0x20], esi
        ; GC ptr vars +{V00}
        mov      dword ptr [esi], eax
        mov      eax, edx
        and      eax, 127
-       mov      esi, eax
-       ; byrRegs -[esi]
-       sar      esi, 31
+       mov      edx, eax
+       sar      edx, 31
        mov      dword ptr [ebp-0x10], ecx
-       mov      ebx, ecx
-       and      ebx, 63
-       mov      edx, esi
-       mov      ecx, ebx
+       mov      esi, ecx
+       ; byrRegs -[esi]
+       and      esi, 63
+       mov      ecx, esi
        call     [CORINFO_HELP_LLSH]
        or       edi, eax
-       mov      ebx, dword ptr [ebp-0x18]
        or       ebx, edx
        mov      esi, dword ptr [ebp-0x10]
        add      esi, 7
        test     byte  ptr [ebp-0x14], 128
        jne      SHORT G_M42372_IG03
-                      ;; size=61 bbWeight=4 PerfScore 77.00
+                     ;; size=56 bbWeight=1 PerfScore 18.00
 G_M42372_IG06:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars -{V00}
        mov      eax, edi
@@ -95,6 +97,6 @@ G_M42372_IG07:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 108, prolog size 11, PerfScore 94.50, instruction count 48, allocated bytes for code 108 (MethodHash=f2385a7b) for method Microsoft.Diagnostics.Tracing.EventPipeEventHeader:ReadVarUInt64(byref):ulong (FullOpts)
+; Total bytes of code 97, prolog size 11, PerfScore 30.50, instruction count 44, allocated bytes for code 97 (MethodHash=f2385a7b) for method Microsoft.Diagnostics.Tracing.EventPipeEventHeader:ReadVarUInt64(byref):ulong (FullOpts)
 ; ============================================================
 
  
-44 (-9.57%) : 21285.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (FullOpts)
@@ -9,62 +9,63 @@
 ; 0 inlinees with PGO data; 6 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] ( 14, 15.50)     ref  ->  esi         this class-hnd single-def <System.Reflection.MethodBaseInvoker>
-;  V01 arg1         [V01,T07] (  4,  3   )     ref  ->  [ebp-0x38]  class-hnd single-def <System.Object>
-;  V02 arg2         [V02,T10] (  3,  2.50)     int  ->  [ebp+0x14]  EH-live single-def
-;  V03 arg3         [V03,T14] (  1,  2   )     ref  ->  [ebp+0x10]  class-hnd single-def <System.Reflection.Binder>
+;  V00 this         [V00,T02] ( 14,  9.50)     ref  ->  esi         this class-hnd single-def <System.Reflection.MethodBaseInvoker>
+;  V01 arg1         [V01,T09] (  4,  3   )     ref  ->  edi         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T10] (  3,  1   )     int  ->  [ebp+0x14]  EH-live single-def
+;  V03 arg3         [V03,T12] (  1,  0.50)     ref  ->  [ebp+0x10]  class-hnd single-def <System.Reflection.Binder>
 ;  V04 arg4         [V04    ] (  1,  1   )     ref  ->  [ebp+0x0C]  do-not-enreg[X] addr-exposed ld-addr-op class-hnd single-def <System.Object>
-;  V05 arg5         [V05,T15] (  1,  2   )     ref  ->  [ebp+0x08]  class-hnd single-def <System.Globalization.CultureInfo>
+;  V05 arg5         [V05,T13] (  1,  0.50)     ref  ->  [ebp+0x08]  class-hnd single-def <System.Globalization.CultureInfo>
 ;  V06 loc0         [V06    ] (  2,  2   )     ref  ->  [ebp-0x24]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Object>
 ;* V07 loc1         [V07    ] (  0,  0   )  struct ( 8) zero-ref    <System.Span`1[System.Object]>
 ;  V08 loc2         [V08    ] (  2,  2   )   ubyte  ->  [ebp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V09 loc3         [V09    ] (  0,  0   )  struct ( 8) zero-ref    <System.Span`1[ubyte]>
-;  V10 loc4         [V10,T28] (  2,  0   )     ref  ->  [ebp-0x3C]  must-init class-hnd EH-live single-def <<unknown class>>
+;  V10 loc4         [V10,T29] (  2,  0   )     ref  ->  [ebp-0x38]  must-init class-hnd EH-live single-def <<unknown class>>
 ;* V11 tmp0         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[System.Object]>
 ;* V12 tmp1         [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V13 tmp2         [V13    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
-;  V14 tmp3         [V14,T29] (  2,  0   )     ref  ->  ecx         class-hnd single-def "impSpillSpecialSideEff" <System.Object>
-;  V15 tmp4         [V15,T25] (  3,  0   )     ref  ->  eax         class-hnd single-def "dup spill" <System.Object>
+;  V14 tmp3         [V14,T30] (  2,  0   )     ref  ->  ecx         class-hnd single-def "impSpillSpecialSideEff" <System.Object>
+;  V15 tmp4         [V15,T26] (  3,  0   )     ref  ->  eax         class-hnd single-def "dup spill" <System.Object>
 ;* V16 tmp5         [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V17 tmp6         [V17,T27] (  3,  0   )     int  ->  eax        
+;  V17 tmp6         [V17,T28] (  3,  0   )     int  ->  eax        
 ;* V18 tmp7         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <System.Object>
-;  V19 tmp8         [V19,T26] (  3,  0   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V19 tmp8         [V19,T27] (  3,  0   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V20 tmp9         [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V21 tmp10        [V21,T00] ( 15, 43   )     int  ->  ebx         "Inline stloc first use temp"
+;* V21 tmp10        [V21,T00] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V22 tmp11        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.Object]>
-;  V23 tmp12        [V23    ] (  9, 25   )     ref  ->  [ebp-0x2C]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" <System.Object>
-;  V24 tmp13        [V24,T03] (  5, 12   )     ref  ->  edi         class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
+;  V23 tmp12        [V23    ] (  9,  7   )     ref  ->  [ebp-0x2C]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" <System.Object>
+;  V24 tmp13        [V24,T03] (  5,  3   )     ref  ->  [ebp-0x3C]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
 ;* V25 tmp14        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.Object]>
 ;* V26 tmp15        [V26    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V27 tmp16        [V27    ] (  0,  0   )   byref  ->  zero-ref    "non-inline candidate call"
 ;* V28 tmp17        [V28    ] (  0,  0   )   byref  ->  zero-ref    "non-inline candidate call"
-;  V29 tmp18        [V29    ] (  3,  6   )  struct ( 8) [ebp-0x34]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
-;  V30 tmp19        [V30,T05] (  4,  6   )   byref  ->  [ebp-0x40]  spill-single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V31 tmp20        [V31,T18] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x4)" P-INDEP
+;  V29 tmp18        [V29    ] (  3,  1.50)  struct ( 8) [ebp-0x34]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
+;  V30 tmp19        [V30,T06] (  4,  3   )   byref  ->  ebx         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V31 tmp20        [V31,T19] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x4)" P-INDEP
 ;* V32 tmp21        [V32    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V33 tmp22        [V33    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x4)" P-INDEP
-;  V34 tmp23        [V34,T11] (  2,  2   )   byref  ->  ecx         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
-;* V35 tmp24        [V35,T19] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x4)" P-INDEP
-;  V36 tmp25        [V36,T12] (  2,  2   )   byref  ->  eax         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V37 tmp26        [V37,T20] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x4)" P-INDEP
-;  V38 tmp27        [V38,T13] (  2,  2   )   byref  ->  edx         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
-;* V39 tmp28        [V39,T21] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x4)" P-INDEP
-;  V40 tmp29        [V40,T08] (  2,  5   )   byref  ->  [ebp-0x44]  spill-single-def "field V22._reference (fldOffset=0x0)" P-INDEP
-;* V41 tmp30        [V41,T22] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x4)" P-INDEP
-;* V42 tmp31        [V42,T17] (  0,  0   )   byref  ->  zero-ref    single-def "field V25._reference (fldOffset=0x0)" P-INDEP
-;* V43 tmp32        [V43,T23] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0x4)" P-INDEP
-;  V44 tmp33        [V44,T06] (  4,  7   )   byref  ->  [ebp-0x48]  spill-single-def "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V45 tmp34        [V45,T24] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0x4)" P-INDEP
-;  V46 tmp35        [V46    ] (  2,  4   )   byref  ->  [ebp-0x34]  do-not-enreg[X] addr-exposed "field V29._reference (fldOffset=0x0)" P-DEP
-;  V47 tmp36        [V47    ] (  2,  4   )     int  ->  [ebp-0x30]  do-not-enreg[X] addr-exposed "field V29._length (fldOffset=0x4)" P-DEP
-;  V48 tmp37        [V48,T01] (  3, 24   )     ref  ->  edi         "arr expr"
-;  V49 tmp38        [V49,T04] (  3, 12   )     ref  ->  ecx         "arr expr"
-;  V50 tmp39        [V50,T09] (  3,  3   )     ref  ->  eax         single-def "argument with side effect"
+;  V34 tmp23        [V34,T14] (  2,  2   )   byref  ->  ebx         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V35 tmp24        [V35,T20] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x4)" P-INDEP
+;  V36 tmp25        [V36,T15] (  2,  2   )   byref  ->  eax         single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+;* V37 tmp26        [V37,T21] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x4)" P-INDEP
+;  V38 tmp27        [V38,T16] (  2,  2   )   byref  ->  edx         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;* V39 tmp28        [V39,T22] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x4)" P-INDEP
+;  V40 tmp29        [V40,T07] (  2,  2   )   byref  ->  edx         single-def "field V22._reference (fldOffset=0x0)" P-INDEP
+;* V41 tmp30        [V41,T23] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x4)" P-INDEP
+;* V42 tmp31        [V42,T18] (  0,  0   )   byref  ->  zero-ref    single-def "field V25._reference (fldOffset=0x0)" P-INDEP
+;* V43 tmp32        [V43,T24] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0x4)" P-INDEP
+;  V44 tmp33        [V44,T05] (  4,  2.50)   byref  ->  [ebp-0x40]  spill-single-def "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V45 tmp34        [V45,T25] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0x4)" P-INDEP
+;  V46 tmp35        [V46    ] (  2,  1   )   byref  ->  [ebp-0x34]  do-not-enreg[X] addr-exposed "field V29._reference (fldOffset=0x0)" P-DEP
+;  V47 tmp36        [V47    ] (  2,  1   )     int  ->  [ebp-0x30]  do-not-enreg[X] addr-exposed "field V29._length (fldOffset=0x4)" P-DEP
+;  V48 tmp37        [V48,T01] (  3,  6   )     ref  ->  edx         "arr expr"
+;  V49 tmp38        [V49,T04] (  3,  3   )     ref  ->  ecx         "arr expr"
+;  V50 tmp39        [V50,T11] (  3,  3   )     ref  ->  eax         single-def "argument with side effect"
 ;  V51 EHSlots      [V51    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V52 cse0         [V52,T16] (  3,  1.50)     ref  ->  ecx         "CSE - conservative"
-;  TEMP_01                                     ref  ->  [ebp-0x4C]
+;  V52 cse0         [V52,T08] (  2,  2   )   byref  ->  eax         "CSE - moderate"
+;  V53 cse1         [V53,T17] (  3,  1.50)     ref  ->  edx         "CSE - conservative"
+;  TEMP_01                                     ref  ->  [ebp-0x44]
 ;
-; Lcl frame size = 64
+; Lcl frame size = 56
 
 G_M5060_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -72,84 +73,70 @@ G_M5060_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
        push     edi
        push     esi
        push     ebx
-       sub      esp, 64
+       sub      esp, 56
        xorps    xmm4, xmm4
-       movups   xmmword ptr [ebp-0x4C], xmm4
-       movups   xmmword ptr [ebp-0x3C], xmm4
+       movups   xmmword ptr [ebp-0x44], xmm4
+       movups   xmmword ptr [ebp-0x34], xmm4
        xor      eax, eax
-       mov      dword ptr [ebp-0x2C], eax
-       mov      dword ptr [ebp-0x28], eax
        mov      dword ptr [ebp-0x24], eax
        mov      dword ptr [ebp-0x18], eax
-       mov      gword ptr [ebp-0x38], edx
-       ; GC ptr vars +{V01}
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=39 bbWeight=1 PerfScore 14.33
-G_M5060_IG02:        ; bbWeight=1, gcVars=10000080 {V01 V10}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      edi, edx
+       ; gcrRegs +[edi]
+                       ;; size=32 bbWeight=1 PerfScore 11.58
+G_M5060_IG02:        ; bbWeight=1, gcVars=20000000 {V10}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; GC ptr vars +{V10}
        cmp      dword ptr [esi+0x24], 1
-       mov      edi, gword ptr [ebp-0x38]
-       ; gcrRegs +[edi]
        je       SHORT G_M5060_IG04
-                        ;; size=9 bbWeight=1 PerfScore 5.00
-G_M5060_IG03:        ; bbWeight=0.50, gcVars=10000000 {V10}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; GC ptr vars -{V01}
+                      ;; size=6 bbWeight=1 PerfScore 4.00
+G_M5060_IG03:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        mov      ecx, dword ptr [(reloc)]      ; const ptr
-       mov      ecx, gword ptr [ecx]
-       ; gcrRegs +[ecx]
-       mov      edx, ecx
+       mov      edx, gword ptr [ecx]
        ; gcrRegs +[edx]
+       mov      ecx, edx
+       ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=16 bbWeight=0.50 PerfScore 3.62
 G_M5060_IG04:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
-       xor      ecx, ecx
-       ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x24], ecx
-       lea      ecx, bword ptr [ebp-0x24]
-       ; gcrRegs -[ecx]
-       ; byrRegs +[ecx]
-       mov      bword ptr [ebp-0x40], ecx
-       ; GC ptr vars +{V30}
        xor      eax, eax
+       ; gcrRegs +[eax]
+       mov      gword ptr [ebp-0x24], eax
+       lea      ebx, bword ptr [ebp-0x24]
+       ; byrRegs +[ebx]
+                       ;; size=8 bbWeight=1 PerfScore 1.75
+G_M5060_IG05:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000008 {ebx}, byref, isz
+       ; gcrRegs -[eax]
        mov      dword ptr [ebp-0x28], eax
        lea      eax, bword ptr [ebp-0x28]
        ; byrRegs +[eax]
        lea      edx, bword ptr [ebp+0x0C]
        ; byrRegs +[edx]
-       mov      bword ptr [ebp-0x44], edx
-       ; GC ptr vars +{V40}
-       mov      bword ptr [ebp-0x48], eax
+       mov      bword ptr [ebp-0x40], eax
        ; GC ptr vars +{V44}
-       xor      ebx, ebx
-       mov      gword ptr [ebp-0x38], edi
-       ; GC ptr vars +{V01}
-                       ;; size=33 bbWeight=1 PerfScore 8.25
-G_M5060_IG05:        ; bbWeight=4, gcVars=100001E0 {V01 V10 V30 V40 V44}, gcrefRegs=00000040 {esi}, byrefRegs=00000004 {edx}, gcvars, byref, isz
-       ; gcrRegs -[edi]
-       ; byrRegs -[eax ecx]
-       mov      edi, gword ptr [edx+4*ebx]
-       ; gcrRegs +[edi]
-       mov      gword ptr [ebp-0x2C], edi
-       mov      edi, gword ptr [esi+0x14]
-       cmp      ebx, dword ptr [edi+0x04]
-       jae      G_M5060_IG21
-       mov      edi, gword ptr [edi+4*ebx+0x08]
-       mov      edx, gword ptr [ebp-0x2C]
+       mov      edx, gword ptr [edx]
        ; gcrRegs +[edx]
        ; byrRegs -[edx]
-       mov      gword ptr [ebp-0x4C], edx
+       mov      gword ptr [ebp-0x2C], edx
+       mov      edx, gword ptr [esi+0x14]
+       cmp      dword ptr [edx+0x04], 0
+       jbe      G_M5060_IG20
+       mov      edx, gword ptr [edx+0x08]
+       mov      gword ptr [ebp-0x3C], edx
+       ; GC ptr vars +{V24}
+       mov      ecx, gword ptr [ebp-0x2C]
+       ; gcrRegs +[ecx]
+       mov      gword ptr [ebp-0x44], ecx
        call     [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
-       ; gcrRegs -[edx]
-       ; byrRegs +[eax]
-       mov      edx, gword ptr [ebp-0x4C]
-       ; gcrRegs +[edx]
-       cmp      edx, gword ptr [eax+0x70]
+       ; gcrRegs -[ecx edx]
+       mov      ecx, gword ptr [ebp-0x44]
+       ; gcrRegs +[ecx]
+       cmp      ecx, gword ptr [eax+0x70]
        jne      SHORT G_M5060_IG07
-                      ;; size=42 bbWeight=4 PerfScore 84.00
-G_M5060_IG06:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[edx]
+                      ;; size=56 bbWeight=1 PerfScore 25.00
+G_M5060_IG06:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000008 {ebx}, byref
+       ; gcrRegs -[ecx]
        ; byrRegs -[eax]
        mov      ecx, gword ptr [esi+0x18]
        ; gcrRegs +[ecx]
@@ -157,155 +144,141 @@ G_M5060_IG06:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       cmp      ebx, dword ptr [ebp-0x30]
-       jae      G_M5060_IG21
+       cmp      dword ptr [ebp-0x30], 0
+       jbe      G_M5060_IG20
        mov      ecx, bword ptr [ebp-0x34]
        ; byrRegs +[ecx]
-       mov      ecx, gword ptr [ecx+4*ebx]
+       mov      ecx, gword ptr [ecx]
        ; gcrRegs +[ecx]
        ; byrRegs -[ecx]
-       mov      edx, edi
+       mov      edx, gword ptr [ebp-0x3C]
        ; gcrRegs +[edx]
        call     [System.Reflection.MethodBase:HandleTypeMissing(System.Reflection.ParameterInfo,System.RuntimeType):System.Object]
        ; gcrRegs -[ecx edx] +[eax]
        mov      gword ptr [ebp-0x2C], eax
-       mov      eax, bword ptr [ebp-0x48]
+       mov      eax, bword ptr [ebp-0x40]
        ; gcrRegs -[eax]
        ; byrRegs +[eax]
-       mov      byte  ptr [eax+ebx], 1
-                       ;; size=47 bbWeight=2 PerfScore 41.50
-G_M5060_IG07:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
...
  
-9 (-8.82%) : 109217.dasm - Roslyn.Utilities.PathUtilities:TrimTrailingSeparators(System.String):System.String (FullOpts)
@@ -9,14 +9,13 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] (  7,  9   )     ref  ->  esi         class-hnd <System.String>
-;  V01 loc0         [V01,T01] (  8, 15.50)     int  ->  ebx        
-;* V02 tmp0         [V02,T05] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V03 tmp1         [V03,T00] (  3, 24   )  ushort  ->  [ebp-0x10]  spill-single-def "Inlining Arg"
-;  V04 cse0         [V04,T04] (  4,  7   )     int  ->  edi         "CSE - aggressive"
-;  V05 cse1         [V05,T03] (  3, 10   )     int  ->  [ebp-0x14]  spill-single-def "CSE - aggressive"
+;  V00 arg0         [V00,T03] (  7,  5.50)     ref  ->  esi         class-hnd <System.String>
+;  V01 loc0         [V01,T02] (  9,  5.25)     int  ->  ebx        
+;* V02 tmp0         [V02,T01] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V03 tmp1         [V03,T00] (  3,  3   )  ushort  ->  [ebp-0x10]  spill-single-def "Inlining Arg"
+;  V04 cse0         [V04,T04] (  4,  3.50)     int  ->  edi         "CSE - aggressive"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 4
 
 G_M51277_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -24,10 +23,10 @@ G_M51277_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 8
+       push     eax
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=11 bbWeight=1 PerfScore 4.75
+                      ;; size=9 bbWeight=1 PerfScore 5.50
 G_M51277_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edi, dword ptr [esi+0x04]
        mov      ebx, edi
@@ -37,18 +36,17 @@ G_M51277_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
 G_M51277_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        jmp      SHORT G_M51277_IG05
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M51277_IG04:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      ebx, dword ptr [ebp-0x14]
+G_M51277_IG04:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       dec      ebx
        test     ebx, ebx
        jle      SHORT G_M51277_IG06
-                      ;; size=7 bbWeight=2 PerfScore 4.50
-G_M51277_IG05:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=5 bbWeight=0.25 PerfScore 0.38
+G_M51277_IG05:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        lea      eax, [ebx-0x01]
-       mov      dword ptr [ebp-0x14], eax
        cmp      eax, edi
        jae      SHORT G_M51277_IG10
-       movzx    edx, word  ptr [esi+2*ebx+0x06]
-       mov      dword ptr [ebp-0x10], edx
+       movzx    eax, word  ptr [esi+2*ebx+0x06]
+       mov      dword ptr [ebp-0x10], eax
        call     [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
        ; byrRegs +[eax]
        movzx    ecx, word  ptr [eax]
@@ -57,7 +55,7 @@ G_M51277_IG05:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        je       SHORT G_M51277_IG04
        cmp      edx, 47
        je       SHORT G_M51277_IG04
-                      ;; size=39 bbWeight=4 PerfScore 57.00
+                     ;; size=36 bbWeight=0.50 PerfScore 6.62
 G_M51277_IG06:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[eax]
        cmp      edi, ebx
@@ -79,19 +77,19 @@ G_M51277_IG08:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; gcrRegs +[eax]
                        ;; size=2 bbWeight=1 PerfScore 0.25
 G_M51277_IG09:        ; bbWeight=1, epilog, nogc, extend
-       lea      esp, [ebp-0x0C]
+       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      
-                     ;; size=8 bbWeight=1 PerfScore 3.50
+                       ;; size=6 bbWeight=1 PerfScore 3.50
 G_M51277_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax esi]
        call     [CORINFO_HELP_RNGCHKFAIL]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 102, prolog size 11, PerfScore 78.12, instruction count 44, allocated bytes for code 102 (MethodHash=ae9237b2) for method Roslyn.Utilities.PathUtilities:TrimTrailingSeparators(System.String):System.String (FullOpts)
+; Total bytes of code 93, prolog size 9, PerfScore 24.38, instruction count 43, allocated bytes for code 93 (MethodHash=ae9237b2) for method Roslyn.Utilities.PathUtilities:TrimTrailingSeparators(System.String):System.String (FullOpts)
 ; ============================================================
 
  
+45 (+80.36%) : 28801.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:g_getExplicitAccessibilitySymbol|3130(Microsoft.CodeAnalysis.CSharp.Symbol):Microsoft.CodeAnalysis.CSharp.Symbol (FullOpts)
@@ -8,20 +8,22 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  6, 19   )     ref  ->  esi         class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
-;  V01 loc0         [V01,T02] (  3, 20   )     int  ->  eax        
-;  V02 rat0         [V02,T00] (  3, 24   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
+;  V00 arg0         [V00,T00] (  9, 22   )     ref  ->  esi         class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
+;  V01 loc0         [V01,T02] (  6, 22.50)     int  ->  eax        
+;  V02 rat0         [V02,T03] (  3,  3   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
+;  V03 rat1         [V03,T01] (  3, 24   )     int  ->  edi         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
-G_M13466_IG01:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+G_M13466_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     edi
        push     esi
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=6 bbWeight=8 PerfScore 20.00
-G_M13466_IG02:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=7 bbWeight=1 PerfScore 3.50
+G_M13466_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, esi
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], ecx
@@ -29,35 +31,62 @@ G_M13466_IG02:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; gcrRegs -[ecx]
        cmp      eax, 5
        je       SHORT G_M13466_IG04
-                      ;; size=15 bbWeight=8 PerfScore 60.00
-G_M13466_IG03:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=15 bbWeight=1 PerfScore 7.50
+G_M13466_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        add      eax, -13
        cmp      eax, 4
-       ja       SHORT G_M13466_IG05
+       ja       SHORT G_M13466_IG08
        mov      edx, 21
        bt       edx, eax
-       jae      SHORT G_M13466_IG05
-                       ;; size=18 bbWeight=4 PerfScore 13.00
-G_M13466_IG04:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       jae      SHORT G_M13466_IG08
+                       ;; size=18 bbWeight=0.50 PerfScore 1.62
+G_M13466_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      ecx, esi
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx esi] +[eax]
        mov      esi, eax
        ; gcrRegs +[esi]
-       jmp      SHORT G_M13466_IG02
+                     ;; size=10 bbWeight=1 PerfScore 3.50
+G_M13466_IG05:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       cmp      dword ptr [ecx], ecx
+       call     [<unknown method>]
+       ; gcrRegs -[ecx]
+       cmp      eax, 5
+       je       SHORT G_M13466_IG07
+                       ;; size=15 bbWeight=8 PerfScore 60.00
+G_M13466_IG06:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       lea      edi, [eax-0x0D]
+       cmp      edi, 4
+       ja       SHORT G_M13466_IG08
+       mov      eax, 21
+       bt       eax, edi
+       jae      SHORT G_M13466_IG08
+                       ;; size=18 bbWeight=4 PerfScore 14.00
+G_M13466_IG07:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     [<unknown method>]
+       ; gcrRegs -[ecx esi] +[eax]
+       mov      esi, eax
+       ; gcrRegs +[esi]
+       jmp      SHORT G_M13466_IG05
                         ;; size=12 bbWeight=4 PerfScore 22.00
-G_M13466_IG05:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M13466_IG08:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        mov      eax, esi
        ; gcrRegs +[eax]
                        ;; size=2 bbWeight=1 PerfScore 0.25
-G_M13466_IG06:        ; bbWeight=1, epilog, nogc, extend
+G_M13466_IG09:        ; bbWeight=1, epilog, nogc, extend
        pop      esi
+       pop      edi
        pop      ebp
        ret      
-                     ;; size=3 bbWeight=1 PerfScore 2.00
+                       ;; size=4 bbWeight=1 PerfScore 2.50
 
-; Total bytes of code 56, prolog size 4, PerfScore 117.25, instruction count 23, allocated bytes for code 56 (MethodHash=3ab6cb65) for method Microsoft.CodeAnalysis.CSharp.CSharpCompilation:<ShouldEmitNullableAttributes>g__getExplicitAccessibilitySymbol|313_0(Microsoft.CodeAnalysis.CSharp.Symbol):Microsoft.CodeAnalysis.CSharp.Symbol (FullOpts)
+; Total bytes of code 101, prolog size 5, PerfScore 114.88, instruction count 39, allocated bytes for code 101 (MethodHash=3ab6cb65) for method Microsoft.CodeAnalysis.CSharp.CSharpCompilation:<ShouldEmitNullableAttributes>g__getExplicitAccessibilitySymbol|313_0(Microsoft.CodeAnalysis.CSharp.Symbol):Microsoft.CodeAnalysis.CSharp.Symbol (FullOpts)
 ; ============================================================
 
  
+43 (+82.69%) : 1519.dasm - System.AggregateException:GetBaseException():System.Exception: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,T02] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <System.AggregateException>
-;  V01 loc0         [V01,T01] (  6,  9   )     ref  ->  esi         class-hnd <System.Exception>
-;  V02 loc1         [V02,T00] (  4, 15   )     ref  ->  ecx         class-hnd <System.AggregateException>
+;  V00 this         [V00,T02] (  6,  4.75)     ref  ->  esi         this class-hnd single-def <System.AggregateException>
+;  V01 loc0         [V01,T01] (  7,  8.50)     ref  ->  edi         class-hnd <System.Exception>
+;  V02 loc1         [V02,T00] (  4, 14.25)     ref  ->  eax         class-hnd <System.AggregateException>
 ;* V03 tmp0         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]>
 ;
 ; Lcl frame size = 0
@@ -19,31 +19,34 @@
 G_M47186_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     edi
        push     esi
-                     ;; size=4 bbWeight=1 PerfScore 2.25
-G_M47186_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[ecx]
        mov      esi, ecx
        ; gcrRegs +[esi]
-       mov      ecx, esi
+                        ;; size=7 bbWeight=1 PerfScore 3.50
+G_M47186_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, esi
+       ; gcrRegs +[edi]
        jmp      SHORT G_M47186_IG04
-                       ;; size=6 bbWeight=1 PerfScore 2.50
-G_M47186_IG03:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[ecx]
-       mov      esi, gword ptr [esi+0x10]
-       mov      ecx, esi
+                     ;; size=4 bbWeight=1 PerfScore 2.25
+G_M47186_IG03:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       mov      edi, gword ptr [esi+0x10]
+       ; gcrRegs +[edi]
+       mov      ecx, edi
        ; gcrRegs +[ecx]
        call     [CORINFO_HELP_READYTORUN_ISINSTANCEOF]
-       ; gcrRegs -[ecx] +[eax]
-       mov      ecx, eax
+       ; gcrRegs -[ecx esi] +[eax]
+       jmp      SHORT G_M47186_IG08
+                       ;; size=13 bbWeight=0.25 PerfScore 1.81
+G_M47186_IG04:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax] +[esi]
+       test     esi, esi
+       je       SHORT G_M47186_IG10
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M47186_IG05:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, esi
        ; gcrRegs +[ecx]
-                      ;; size=13 bbWeight=2 PerfScore 11.00
-G_M47186_IG04:        ; bbWeight=8, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[eax]
-       test     ecx, ecx
-       je       SHORT G_M47186_IG06
-                       ;; size=4 bbWeight=8 PerfScore 10.00
-G_M47186_IG05:        ; bbWeight=4, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
        call     [System.AggregateException:get_InnerExceptions():System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]:this]
        ; gcrRegs -[ecx] +[eax]
        mov      ecx, gword ptr [eax+0x04]
@@ -52,17 +55,45 @@ G_M47186_IG05:        ; bbWeight=4, gcrefRegs=00000042 {ecx esi}, byrefRegs=0000
        ; gcrRegs -[eax ecx]
        cmp      eax, 1
        je       SHORT G_M47186_IG03
-                      ;; size=20 bbWeight=4 PerfScore 37.00
-G_M47186_IG06:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       mov      eax, esi
+                     ;; size=22 bbWeight=0.50 PerfScore 4.75
+G_M47186_IG06:        ; bbWeight=0.12, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[esi]
+       jmp      SHORT G_M47186_IG10
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M47186_IG07:        ; bbWeight=2, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+       mov      edi, gword ptr [edi+0x10]
+       mov      ecx, edi
+       ; gcrRegs +[ecx]
+       call     [CORINFO_HELP_READYTORUN_ISINSTANCEOF]
+       ; gcrRegs -[ecx] +[eax]
+                       ;; size=11 bbWeight=2 PerfScore 10.50
+G_M47186_IG08:        ; bbWeight=8, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref, isz
+       test     eax, eax
+       je       SHORT G_M47186_IG10
+                       ;; size=4 bbWeight=8 PerfScore 10.00
+G_M47186_IG09:        ; bbWeight=4, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, eax
+       ; gcrRegs +[ecx]
+       call     [System.AggregateException:get_InnerExceptions():System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]:this]
+       ; gcrRegs -[ecx]
+       mov      ecx, gword ptr [eax+0x04]
+       ; gcrRegs +[ecx]
+       call     [<unknown method>]
+       ; gcrRegs -[eax ecx]
+       cmp      eax, 1
+       je       SHORT G_M47186_IG07
+                       ;; size=22 bbWeight=4 PerfScore 38.00
+G_M47186_IG10:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+       mov      eax, edi
        ; gcrRegs +[eax]
                        ;; size=2 bbWeight=1 PerfScore 0.25
-G_M47186_IG07:        ; bbWeight=1, epilog, nogc, extend
+G_M47186_IG11:        ; bbWeight=1, epilog, nogc, extend
        pop      esi
+       pop      edi
        pop      ebp
        ret      
-                     ;; size=3 bbWeight=1 PerfScore 2.00
+                       ;; size=4 bbWeight=1 PerfScore 2.50
 
-; Total bytes of code 52, prolog size 4, PerfScore 65.00, instruction count 21, allocated bytes for code 52 (MethodHash=298447ad) for method System.AggregateException:GetBaseException():System.Exception:this (FullOpts)
+; Total bytes of code 95, prolog size 5, PerfScore 75.06, instruction count 36, allocated bytes for code 95 (MethodHash=298447ad) for method System.AggregateException:GetBaseException():System.Exception:this (FullOpts)
 ; ============================================================
 
  
+28 (+103.70%) : 179636.dasm - System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (FullOpts)
@@ -8,9 +8,9 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5, 11   )     int  ->  eax        
-;  V01 arg1         [V01,T00] (  7, 19   )     int  ->  esi        
-;  V02 loc0         [V02,T02] (  2,  8   )     int  ->  edx        
+;  V00 arg0         [V00,T01] (  7, 13   )     int  ->  registers  
+;  V01 arg1         [V01,T00] ( 11, 23   )     int  ->  registers  
+;  V02 loc0         [V02,T02] (  4, 10   )     int  ->  edx        
 ;
 ; Lcl frame size = 0
 
@@ -23,22 +23,44 @@ G_M22426_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=8 bbWeight=1 PerfScore 2.75
 G_M22426_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        test     esi, esi
-       je       SHORT G_M22426_IG04
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M22426_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       je       SHORT G_M22426_IG08
        xor      edx, edx
        div      edx:eax, esi
        mov      eax, esi
        mov      esi, edx
        test     esi, esi
-       jne      SHORT G_M22426_IG03
-                       ;; size=12 bbWeight=4 PerfScore 108.00
-G_M22426_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+       je       SHORT G_M22426_IG07
+                       ;; size=16 bbWeight=1 PerfScore 28.25
+G_M22426_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       xor      edx, edx
+       div      edx:eax, esi
+       mov      eax, edx
+       test     eax, eax
+       jne      SHORT G_M22426_IG06
+                       ;; size=10 bbWeight=4 PerfScore 107.00
+G_M22426_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       mov      eax, esi
+                       ;; size=2 bbWeight=1 PerfScore 0.25
+G_M22426_IG05:        ; bbWeight=1, epilog, nogc, extend
        pop      esi
        pop      ebp
        ret      
                        ;; size=3 bbWeight=1 PerfScore 2.00
+G_M22426_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      ecx, eax
+       mov      eax, esi
+       mov      esi, ecx
+       jmp      SHORT G_M22426_IG03
+                       ;; size=8 bbWeight=2 PerfScore 5.50
+G_M22426_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, eax
+       jmp      SHORT G_M22426_IG04
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
+G_M22426_IG08:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, eax
+       jmp      SHORT G_M22426_IG04
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 27, prolog size 8, PerfScore 114.00, instruction count 16, allocated bytes for code 27 (MethodHash=f186a865) for method System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (FullOpts)
+; Total bytes of code 55, prolog size 8, PerfScore 148.00, instruction count 30, allocated bytes for code 55 (MethodHash=f186a865) for method System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (FullOpts)
 ; ============================================================
 
  
  
libraries.pmi.windows.x86.checked.mch
-15 (-14.42%) : 196584.dasm - ILCompiler.LazyGenericsSupport+GenericCycleDetector:IsDeepPossiblyCyclicInstantiation(Internal.TypeSystem.Instantiation,byref,System.Collections.Generic.List`1[Internal.TypeSystem.TypeDesc]):ubyte:this (FullOpts)
@@ -8,23 +8,23 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  3,  4   )     ref  ->  esi         this class-hnd single-def <ILCompiler.LazyGenericsSupport+GenericCycleDetector>
+;  V00 this         [V00,T04] (  3,  2.25)     ref  ->  esi         this class-hnd single-def <ILCompiler.LazyGenericsSupport+GenericCycleDetector>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op single-def <Internal.TypeSystem.Instantiation>
-;  V02 arg2         [V02,T05] (  3,  4   )   byref  ->  edi         single-def
-;  V03 arg3         [V03,T07] (  1,  2   )     ref  ->  ebx         class-hnd single-def <System.Collections.Generic.List`1[Internal.TypeSystem.TypeDesc]>
+;  V02 arg2         [V02,T05] (  3,  2.25)   byref  ->  edi         single-def
+;  V03 arg3         [V03,T06] (  1,  0.25)     ref  ->  [ebp+0x08]  class-hnd single-def <System.Collections.Generic.List`1[Internal.TypeSystem.TypeDesc]>
 ;* V04 loc0         [V04    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <Internal.TypeSystem.Instantiation+Enumerator>
 ;* V05 loc1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Internal.TypeSystem.TypeDesc>
 ;* V06 tmp0         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <Internal.TypeSystem.Instantiation+Enumerator>
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Internal.TypeSystem.TypeDesc[]>
-;* V08 tmp2         [V08,T03] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V08 tmp2         [V08,T01] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V09 tmp3         [V09,T08] (  1,  1   )     ref  ->  [ebp+0x0C]  single-def "field V01._genericParameters (fldOffset=0x0)" P-INDEP
-;  V10 tmp4         [V10,T01] (  4, 13   )     ref  ->  [ebp-0x14]  spill-single-def "field V04._collection (fldOffset=0x0)" P-INDEP
-;  V11 tmp5         [V11,T00] (  6, 29   )     int  ->  [ebp-0x10]  "field V04._currentIndex (fldOffset=0x4)" P-INDEP
-;  V12 tmp6         [V12,T06] (  2,  2   )     ref  ->  eax         single-def "field V06._collection (fldOffset=0x0)" P-INDEP
+;  V10 tmp4         [V10,T02] (  4,  2.50)     ref  ->  ebx         single-def "field V04._collection (fldOffset=0x0)" P-INDEP
+;  V11 tmp5         [V11,T00] (  6,  4.50)     int  ->  [ebp-0x10]  "field V04._currentIndex (fldOffset=0x4)" P-INDEP
+;  V12 tmp6         [V12,T07] (  2,  2   )     ref  ->  ebx         single-def "field V06._collection (fldOffset=0x0)" P-INDEP
 ;* V13 tmp7         [V13,T09] (  0,  0   )     int  ->  zero-ref    single-def "field V06._currentIndex (fldOffset=0x4)" P-INDEP
-;  V14 tmp8         [V14,T02] (  2,  8   )     ref  ->  ecx         "argument with side effect"
+;  V14 tmp8         [V14,T03] (  2,  1   )     ref  ->  ecx         "argument with side effect"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 4
 
 G_M26842_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -32,79 +32,69 @@ G_M26842_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 8
+       push     eax
        mov      esi, ecx
        ; gcrRegs +[esi]
        mov      edi, edx
        ; byrRegs +[edi]
-       mov      ebx, gword ptr [ebp+0x08]
+                       ;; size=11 bbWeight=1 PerfScore 5.75
+G_M26842_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       mov      ebx, gword ptr [ebp+0x0C]
        ; gcrRegs +[ebx]
-                     ;; size=16 bbWeight=1 PerfScore 6.00
-G_M26842_IG02:        ; bbWeight=1, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000080 {edi}, byref, isz
-       mov      eax, gword ptr [ebp+0x0C]
-       ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x14], eax
-       ; GC ptr vars +{V10}
        mov      edx, -1
        jmp      SHORT G_M26842_IG04
-                      ;; size=13 bbWeight=1 PerfScore 4.25
-G_M26842_IG03:        ; bbWeight=2, gcVars=00000002 {V10}, gcrefRegs=00000049 {eax ebx esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
-       cmp      edx, dword ptr [eax+0x04]
-       jae      SHORT G_M26842_IG10
+                      ;; size=10 bbWeight=1 PerfScore 3.25
+G_M26842_IG03:        ; bbWeight=0.25, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000080 {edi}, byref, isz
+       cmp      edx, dword ptr [ebx+0x04]
+       jae      SHORT G_M26842_IG09
        mov      dword ptr [ebp-0x10], edx
-       mov      ecx, gword ptr [eax+4*edx+0x08]
+       mov      ecx, gword ptr [ebx+4*edx+0x08]
        ; gcrRegs +[ecx]
        push     edi
-       push     ebx
+       push     gword ptr [ebp+0x08]
        mov      edx, ecx
        ; gcrRegs +[edx]
        mov      ecx, esi
        call     [<unknown method>]
-       ; gcrRegs -[eax ecx edx]
+       ; gcrRegs -[ecx edx]
        test     eax, eax
-       mov      eax, gword ptr [ebp-0x14]
-       ; gcrRegs +[eax]
        mov      edx, dword ptr [ebp-0x10]
-       jne      SHORT G_M26842_IG06
-                       ;; size=34 bbWeight=2 PerfScore 31.50
-G_M26842_IG04:        ; bbWeight=8, gcrefRegs=00000049 {eax ebx esi}, byrefRegs=00000080 {edi}, byref, isz
+       jne      SHORT G_M26842_IG07
+                       ;; size=33 bbWeight=0.25 PerfScore 3.69
+G_M26842_IG04:        ; bbWeight=1, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000080 {edi}, byref, isz
        inc      edx
-       cmp      dword ptr [eax+0x04], edx
+       cmp      dword ptr [ebx+0x04], edx
        jg       SHORT G_M26842_IG03
-                       ;; size=6 bbWeight=8 PerfScore 34.00
-G_M26842_IG05:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[eax ebx esi]
+                      ;; size=6 bbWeight=1 PerfScore 4.25
+G_M26842_IG05:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[ebx esi]
        ; byrRegs -[edi]
-       ; GC ptr vars -{V10}
-       jmp      SHORT G_M26842_IG08
-                       ;; size=2 bbWeight=4 PerfScore 8.00
-G_M26842_IG06:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      eax, 1
-                       ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M26842_IG07:        ; bbWeight=0.50, epilog, nogc, extend
-       lea      esp, [ebp-0x0C]
-       pop      ebx
-       pop      esi
-       pop      edi
-       pop      ebp
-       ret      8
-                       ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M26842_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M26842_IG09:        ; bbWeight=0.50, epilog, nogc, extend
-       lea      esp, [ebp-0x0C]
+G_M26842_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      8
-                        ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M26842_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+                      ;; size=8 bbWeight=0.50 PerfScore 2.25
+G_M26842_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       mov      eax, 1
+                       ;; size=5 bbWeight=0.50 PerfScore 0.12
+G_M26842_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+       pop      ecx
+       pop      ebx
+       pop      esi
+       pop      edi
+       pop      ebp
+       ret      8
+                       ;; size=8 bbWeight=0.50 PerfScore 2.25
+G_M26842_IG09:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 104, prolog size 9, PerfScore 88.50, instruction count 46, allocated bytes for code 104 (MethodHash=3d949725) for method ILCompiler.LazyGenericsSupport+GenericCycleDetector:IsDeepPossiblyCyclicInstantiation(Internal.TypeSystem.Instantiation,byref,System.Collections.Generic.List`1[Internal.TypeSystem.TypeDesc]):ubyte:this (FullOpts)
+; Total bytes of code 89, prolog size 7, PerfScore 21.69, instruction count 42, allocated bytes for code 89 (MethodHash=3d949725) for method ILCompiler.LazyGenericsSupport+GenericCycleDetector:IsDeepPossiblyCyclicInstantiation(Internal.TypeSystem.Instantiation,byref,System.Collections.Generic.List`1[Internal.TypeSystem.TypeDesc]):ubyte:this (FullOpts)
 ; ============================================================
 
  
-21 (-12.65%) : 108334.dasm - Roslyn.Utilities.OneOrMany1[ubyte]:Any[ubyte](System.Func3[ubyte,ubyte,ubyte],ubyte):ubyte:this (FullOpts)
@@ -8,28 +8,28 @@
 ; 0 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  4,  4   )   byref  ->  ecx         this single-def
-;  V01 arg1         [V01,T03] (  4,  6   )     ref  ->  esi         class-hnd single-def <System.Func`3[ubyte,ubyte,ubyte]>
-;  V02 arg2         [V02,T09] (  1,  2   )   ubyte  ->  [ebp+0x08]  single-def
+;  V00 this         [V00,T05] (  4,  4   )   byref  ->  ecx         this single-def
+;  V01 arg1         [V01,T03] (  4,  2.50)     ref  ->  esi         class-hnd single-def <System.Func`3[ubyte,ubyte,ubyte]>
+;  V02 arg2         [V02,T07] (  1,  0.25)   ubyte  ->  [ebp+0x08]  single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct (12) zero-ref    do-not-enreg[SF] ld-addr-op <Roslyn.Utilities.OneOrMany`1+Enumerator[ubyte]>
 ;* V04 loc1         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V05 tmp0         [V05    ] (  0,  0   )  struct (12) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <Roslyn.Utilities.OneOrMany`1+Enumerator[ubyte]>
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <Roslyn.Utilities.OneOrMany`1[ubyte]>
-;  V07 tmp2         [V07,T05] (  3,  6   )   ubyte  ->  edx         "Inline return value spill temp"
+;  V07 tmp2         [V07,T04] (  3,  0.75)   ubyte  ->  ecx         "Inline return value spill temp"
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V09 tmp4         [V09,T10] (  3,  0   )     ref  ->  esi         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V11 tmp6         [V11,T02] (  3, 12   )     int  ->  edx         "Inline return value spill temp"
+;  V11 tmp6         [V11,T02] (  3,  1.50)     int  ->  ecx         "Inline return value spill temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "field V06._one (fldOffset=0x0)" P-INDEP
 ;* V13 tmp8         [V13    ] (  0,  0   )     ref  ->  zero-ref    "field V06._many (fldOffset=0x4)" P-INDEP
-;  V14 tmp9         [V14,T00] (  7, 31   )     int  ->  [ebp-0x10]  "V03.[000..004)"
-;  V15 tmp10        [V15,T06] (  2,  3   )   ubyte  ->  [ebp-0x14]  spill-single-def "V03.[004..005)"
-;  V16 tmp11        [V16,T01] (  6, 17   )     ref  ->  edi         single-def "V03.[008..012)"
+;  V14 tmp9         [V14,T00] (  7,  4.75)     int  ->  [ebp-0x10]  "V03.[000..004)"
+;  V15 tmp10        [V15,T06] (  2,  1.25)   ubyte  ->  ebx         single-def "V03.[004..005)"
+;  V16 tmp11        [V16,T01] (  6,  3   )     ref  ->  edi         single-def "V03.[008..012)"
 ;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    "V05.[000..004)"
-;  V18 tmp13        [V18,T08] (  2,  2   )   ubyte  ->  edx         single-def "V05.[004..005)"
-;  V19 tmp14        [V19,T07] (  2,  2   )     ref  ->  edi         single-def "V05.[008..012)"
+;  V18 tmp13        [V18,T09] (  2,  2   )   ubyte  ->  ebx         single-def "V05.[004..005)"
+;  V19 tmp14        [V19,T08] (  2,  2   )     ref  ->  edi         single-def "V05.[008..012)"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 4
 
 G_M28386_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -37,90 +37,85 @@ G_M28386_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 8
+       push     eax
        mov      esi, edx
        ; gcrRegs +[esi]
-       mov      ebx, dword ptr [ebp+0x08]
-                       ;; size=14 bbWeight=1 PerfScore 5.75
+                      ;; size=9 bbWeight=1 PerfScore 5.50
 G_M28386_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000002 {ecx}, byref, isz
        ; byrRegs +[ecx]
-       movzx    edx, byte  ptr [ecx]
+       movzx    ebx, byte  ptr [ecx]
        mov      edi, gword ptr [ecx+0x04]
        ; gcrRegs +[edi]
-       mov      ecx, -1
-       ; byrRegs -[ecx]
-       mov      eax, edx
-       mov      dword ptr [ebp-0x14], eax
+       mov      edx, -1
        jmp      SHORT G_M28386_IG06
-                        ;; size=18 bbWeight=1 PerfScore 7.50
-G_M28386_IG03:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=13 bbWeight=1 PerfScore 6.25
+G_M28386_IG03:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       ; byrRegs -[ecx]
        test     edi, edi
        jne      SHORT G_M28386_IG04
-       test     ecx, ecx
+       test     edx, edx
        jne      SHORT G_M28386_IG15
-       mov      edx, eax
-       mov      dword ptr [ebp-0x10], ecx
+       mov      ecx, ebx
+       mov      dword ptr [ebp-0x10], edx
        jmp      SHORT G_M28386_IG05
-                     ;; size=15 bbWeight=2 PerfScore 11.50
-G_M28386_IG04:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ecx, dword ptr [edi+0x04]
+                        ;; size=15 bbWeight=0.25 PerfScore 1.44
+G_M28386_IG04:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       cmp      edx, dword ptr [edi+0x04]
        jae      SHORT G_M28386_IG14
-       mov      dword ptr [ebp-0x10], ecx
-       movzx    edx, byte  ptr [edi+ecx+0x08]
-                       ;; size=13 bbWeight=2 PerfScore 14.00
-G_M28386_IG05:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      dword ptr [ebp+0x08], ebx
-       movzx    ebx, bl
-       push     ebx
+       mov      dword ptr [ebp-0x10], edx
+       movzx    ecx, byte  ptr [edi+edx+0x08]
+                       ;; size=13 bbWeight=0.25 PerfScore 1.75
+G_M28386_IG05:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       movzx    eax, byte  ptr [ebp+0x08]
+       push     eax
+       mov      edx, ecx
        mov      ecx, gword ptr [esi+0x04]
        ; gcrRegs +[ecx]
        call     [esi+0x0C]<unknown method>
        ; gcrRegs -[ecx]
        test     eax, eax
-       mov      eax, dword ptr [ebp-0x14]
-       mov      ecx, dword ptr [ebp-0x10]
-       movzx    ebx, byte  ptr [ebp+0x08]
+       mov      edx, dword ptr [ebp-0x10]
        jne      SHORT G_M28386_IG12
-                      ;; size=27 bbWeight=2 PerfScore 23.00
-G_M28386_IG06:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       inc      ecx
+                      ;; size=20 bbWeight=0.25 PerfScore 2.38
+G_M28386_IG06:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       inc      edx
        test     edi, edi
        je       SHORT G_M28386_IG08
-                      ;; size=5 bbWeight=8 PerfScore 12.00
-G_M28386_IG07:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, dword ptr [edi+0x04]
+                        ;; size=5 bbWeight=1 PerfScore 1.50
+G_M28386_IG07:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, dword ptr [edi+0x04]
        jmp      SHORT G_M28386_IG09
-                     ;; size=5 bbWeight=2 PerfScore 8.00
-G_M28386_IG08:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
-       mov      edx, 1
-                       ;; size=5 bbWeight=2 PerfScore 0.50
-G_M28386_IG09:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ecx, edx
+                     ;; size=5 bbWeight=0.25 PerfScore 1.00
+G_M28386_IG08:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       mov      ecx, 1
+                       ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M28386_IG09:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       cmp      edx, ecx
        jl       SHORT G_M28386_IG03
-                      ;; size=4 bbWeight=8 PerfScore 10.00
-G_M28386_IG10:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M28386_IG10:        ; bbWeight=0.06, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi edi]
        xor      eax, eax
-                     ;; size=2 bbWeight=0.50 PerfScore 0.12
+                        ;; size=2 bbWeight=0.06 PerfScore 0.02
 G_M28386_IG11:        ; bbWeight=0.50, epilog, nogc, extend
-       lea      esp, [ebp-0x0C]
+       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      4
-                        ;; size=10 bbWeight=0.50 PerfScore 2.25
+                       ;; size=8 bbWeight=0.50 PerfScore 2.25
 G_M28386_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M28386_IG13:        ; bbWeight=0.50, epilog, nogc, extend
-       lea      esp, [ebp-0x0C]
+       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      4
-                        ;; size=10 bbWeight=0.50 PerfScore 2.25
+                       ;; size=8 bbWeight=0.50 PerfScore 2.25
 G_M28386_IG14:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
@@ -141,6 +136,6 @@ G_M28386_IG15:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 166, prolog size 9, PerfScore 97.00, instruction count 66, allocated bytes for code 166 (MethodHash=5f88911d) for method Roslyn.Utilities.OneOrMany`1[ubyte]:Any[ubyte](System.Func`3[ubyte,ubyte,ubyte],ubyte):ubyte:this (FullOpts)
+; Total bytes of code 145, prolog size 7, PerfScore 25.77, instruction count 61, allocated bytes for code 145 (MethodHash=5f88911d) for method Roslyn.Utilities.OneOrMany`1[ubyte]:Any[ubyte](System.Func`3[ubyte,ubyte,ubyte],ubyte):ubyte:this (FullOpts)
 ; ============================================================
 
  
-21 (-12.65%) : 108335.dasm - Roslyn.Utilities.OneOrMany1[ubyte]:Any[short](System.Func3[ubyte,short,ubyte],short):ubyte:this (FullOpts)
@@ -8,28 +8,28 @@
 ; 0 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  4,  4   )   byref  ->  ecx         this single-def
-;  V01 arg1         [V01,T03] (  4,  6   )     ref  ->  esi         class-hnd single-def <System.Func`3[ubyte,short,ubyte]>
-;  V02 arg2         [V02,T09] (  1,  2   )   short  ->  [ebp+0x08]  single-def
+;  V00 this         [V00,T05] (  4,  4   )   byref  ->  ecx         this single-def
+;  V01 arg1         [V01,T03] (  4,  2.50)     ref  ->  esi         class-hnd single-def <System.Func`3[ubyte,short,ubyte]>
+;  V02 arg2         [V02,T07] (  1,  0.25)   short  ->  [ebp+0x08]  single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct (12) zero-ref    do-not-enreg[SF] ld-addr-op <Roslyn.Utilities.OneOrMany`1+Enumerator[ubyte]>
 ;* V04 loc1         [V04    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V05 tmp0         [V05    ] (  0,  0   )  struct (12) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <Roslyn.Utilities.OneOrMany`1+Enumerator[ubyte]>
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <Roslyn.Utilities.OneOrMany`1[ubyte]>
-;  V07 tmp2         [V07,T05] (  3,  6   )   ubyte  ->  ecx         "Inline return value spill temp"
+;  V07 tmp2         [V07,T04] (  3,  0.75)   ubyte  ->  ecx         "Inline return value spill temp"
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V09 tmp4         [V09,T10] (  3,  0   )     ref  ->  esi         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V11 tmp6         [V11,T02] (  3, 12   )     int  ->  ecx         "Inline return value spill temp"
+;  V11 tmp6         [V11,T02] (  3,  1.50)     int  ->  ecx         "Inline return value spill temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "field V06._one (fldOffset=0x0)" P-INDEP
 ;* V13 tmp8         [V13    ] (  0,  0   )     ref  ->  zero-ref    "field V06._many (fldOffset=0x4)" P-INDEP
-;  V14 tmp9         [V14,T00] (  7, 31   )     int  ->  [ebp-0x10]  "V03.[000..004)"
-;  V15 tmp10        [V15,T06] (  2,  3   )   ubyte  ->  ebx         single-def "V03.[004..005)"
-;  V16 tmp11        [V16,T01] (  6, 17   )     ref  ->  [ebp-0x14]  spill-single-def "V03.[008..012)"
+;  V14 tmp9         [V14,T00] (  7,  4.75)     int  ->  [ebp-0x10]  "V03.[000..004)"
+;  V15 tmp10        [V15,T06] (  2,  1.25)   ubyte  ->  ebx         single-def "V03.[004..005)"
+;  V16 tmp11        [V16,T01] (  6,  3   )     ref  ->  edi         single-def "V03.[008..012)"
 ;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    "V05.[000..004)"
-;  V18 tmp13        [V18,T08] (  2,  2   )   ubyte  ->  ebx         single-def "V05.[004..005)"
-;  V19 tmp14        [V19,T07] (  2,  2   )     ref  ->  eax         single-def "V05.[008..012)"
+;  V18 tmp13        [V18,T09] (  2,  2   )   ubyte  ->  ebx         single-def "V05.[004..005)"
+;  V19 tmp14        [V19,T08] (  2,  2   )     ref  ->  edi         single-def "V05.[008..012)"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 4
 
 G_M12303_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -37,94 +37,85 @@ G_M12303_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 8
+       push     eax
        mov      esi, edx
        ; gcrRegs +[esi]
-       mov      edi, dword ptr [ebp+0x08]
-                       ;; size=14 bbWeight=1 PerfScore 5.75
+                      ;; size=9 bbWeight=1 PerfScore 5.50
 G_M12303_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000002 {ecx}, byref, isz
        ; byrRegs +[ecx]
        movzx    ebx, byte  ptr [ecx]
-       mov      eax, gword ptr [ecx+0x04]
-       ; gcrRegs +[eax]
+       mov      edi, gword ptr [ecx+0x04]
+       ; gcrRegs +[edi]
        mov      edx, -1
-       mov      gword ptr [ebp-0x14], eax
-       ; GC ptr vars +{V16}
        jmp      SHORT G_M12303_IG06
-                       ;; size=16 bbWeight=1 PerfScore 7.25
-G_M12303_IG03:        ; bbWeight=2, gcVars=00000002 {V16}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+                       ;; size=13 bbWeight=1 PerfScore 6.25
+G_M12303_IG03:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[ecx]
-       test     eax, eax
+       test     edi, edi
        jne      SHORT G_M12303_IG04
        test     edx, edx
        jne      SHORT G_M12303_IG15
        mov      ecx, ebx
        mov      dword ptr [ebp-0x10], edx
        jmp      SHORT G_M12303_IG05
-                      ;; size=15 bbWeight=2 PerfScore 11.50
-G_M12303_IG04:        ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
-       cmp      edx, dword ptr [eax+0x04]
+                        ;; size=15 bbWeight=0.25 PerfScore 1.44
+G_M12303_IG04:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       cmp      edx, dword ptr [edi+0x04]
        jae      SHORT G_M12303_IG14
        mov      dword ptr [ebp-0x10], edx
-       movzx    ecx, byte  ptr [eax+edx+0x08]
-                       ;; size=13 bbWeight=2 PerfScore 14.00
-G_M12303_IG05:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[eax]
-       mov      dword ptr [ebp+0x08], edi
-       movsx    edi, di
-       push     edi
+       movzx    ecx, byte  ptr [edi+edx+0x08]
+                       ;; size=13 bbWeight=0.25 PerfScore 1.75
+G_M12303_IG05:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       movsx    eax, word  ptr [ebp+0x08]
+       push     eax
        mov      edx, ecx
        mov      ecx, gword ptr [esi+0x04]
        ; gcrRegs +[ecx]
        call     [esi+0x0C]<unknown method>
        ; gcrRegs -[ecx]
        test     eax, eax
-       mov      eax, gword ptr [ebp-0x14]
-       ; gcrRegs +[eax]
        mov      edx, dword ptr [ebp-0x10]
-       movsx    edi, word  ptr [ebp+0x08]
        jne      SHORT G_M12303_IG12
-                       ;; size=29 bbWeight=2 PerfScore 27.50
-G_M12303_IG06:        ; bbWeight=8, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=20 bbWeight=0.25 PerfScore 2.88
+G_M12303_IG06:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        inc      edx
-       test     eax, eax
+       test     edi, edi
        je       SHORT G_M12303_IG08
-                        ;; size=5 bbWeight=8 PerfScore 12.00
-G_M12303_IG07:        ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, dword ptr [eax+0x04]
+                        ;; size=5 bbWeight=1 PerfScore 1.50
+G_M12303_IG07:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, dword ptr [edi+0x04]
        jmp      SHORT G_M12303_IG09
-                     ;; size=5 bbWeight=2 PerfScore 8.00
-G_M12303_IG08:        ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref
+                       ;; size=5 bbWeight=0.25 PerfScore 1.00
+G_M12303_IG08:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        mov      ecx, 1
-                      ;; size=5 bbWeight=2 PerfScore 0.50
-G_M12303_IG09:        ; bbWeight=8, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M12303_IG09:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        cmp      edx, ecx
        jl       SHORT G_M12303_IG03
-                      ;; size=4 bbWeight=8 PerfScore 10.00
-G_M12303_IG10:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[eax esi]
-       ; GC ptr vars -{V16}
+                      ;; size=4 bbWeight=1 PerfScore 1.25
+G_M12303_IG10:        ; bbWeight=0.06, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[esi edi]
        xor      eax, eax
-                      ;; size=2 bbWeight=0.50 PerfScore 0.12
+                        ;; size=2 bbWeight=0.06 PerfScore 0.02
 G_M12303_IG11:        ; bbWeight=0.50, epilog, nogc, extend
-       lea      esp, [ebp-0x0C]
+       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      4
-                        ;; size=10 bbWeight=0.50 PerfScore 2.25
+                       ;; size=8 bbWeight=0.50 PerfScore 2.25
 G_M12303_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M12303_IG13:        ; bbWeight=0.50, epilog, nogc, extend
-       lea      esp, [ebp-0x0C]
+       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      4
-                        ;; size=10 bbWeight=0.50 PerfScore 2.25
+                       ;; size=8 bbWeight=0.50 PerfScore 2.25
 G_M12303_IG14:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
@@ -145,6 +136,6 @@ G_M12303_IG15:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 166, prolog size 9, PerfScore 101.25, instruction count 66, allocated bytes for code 166 (MethodHash=26cacff0) for method Roslyn.Utilities.OneOrMany`1[ubyte]:Any[short](System.Func`3[ubyte,short,ubyte],short):ubyte:this (FullOpts)
+; Total bytes of code 145, prolog size 7, PerfScore 26.27, instruction count 61, allocated bytes for code 145 (MethodHash=26cacff0) for method Roslyn.Utilities.OneOrMany`1[ubyte]:Any[short](System.Func`3[ubyte,short,ubyte],short):ubyte:this (FullOpts)
 ; ============================================================
 
  
+44 (+88.00%) : 208523.dasm - Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
@@ -8,67 +8,113 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  6, 22   )     ref  ->  esi         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
-;  V01 tmp0         [V01,T00] (  3, 36   )     ref  ->  ecx         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
+;  V00 this         [V00,T01] (  9, 22.50)     ref  ->  esi         this class-hnd single-def <Newtonsoft.Json.JsonWriter>
+;  V01 tmp0         [V01,T00] (  6, 40.50)     ref  ->  edi         class-hnd "dup spill" <System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]>
 ;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref   
-;  V03 tmp2         [V03,T03] (  4, 14   )     int  ->  eax        
-;  V04 tmp3         [V04,T02] (  3, 18   )     int  ->  ecx         "Inline stloc first use temp"
+;  V03 tmp2         [V03,T03] (  8, 15.75)     int  ->  registers  
+;  V04 tmp3         [V04,T02] (  6, 20.25)     int  ->  registers   "Inline stloc first use temp"
+;  V05 cse0         [V05,T04] (  3,  2.50)     int  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
 G_M16914_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     edi
        push     esi
+       push     ebx
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=6 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 4.50
 G_M16914_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        jmp      SHORT G_M16914_IG04
                        ;; size=2 bbWeight=1 PerfScore 2.00
-G_M16914_IG03:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M16914_IG03:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      eax, dword ptr [esi]
-       mov      eax, dword ptr [eax+0x50]
-       call     [eax+0x10]<unknown method>
+       mov      ebx, dword ptr [eax+0x50]
+       call     [ebx+0x10]<unknown method>
        ; gcrRegs -[ecx]
-                      ;; size=10 bbWeight=2 PerfScore 14.50
-G_M16914_IG04:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, gword ptr [esi+0x04]
-       ; gcrRegs +[ecx]
-       test     ecx, ecx
+       jmp      SHORT G_M16914_IG12
+                       ;; size=12 bbWeight=0.25 PerfScore 2.31
+G_M16914_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [esi+0x04]
+       ; gcrRegs +[edi]
+       test     edi, edi
        jne      SHORT G_M16914_IG06
-                      ;; size=7 bbWeight=8 PerfScore 26.00
-G_M16914_IG05:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
-       xor      eax, eax
+                     ;; size=7 bbWeight=1 PerfScore 3.25
+G_M16914_IG05:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       xor      ebx, ebx
        jmp      SHORT G_M16914_IG07
-                      ;; size=4 bbWeight=2 PerfScore 4.50
-G_M16914_IG06:        ; bbWeight=2, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs +[ecx]
-       mov      eax, dword ptr [ecx+0x08]
-                       ;; size=3 bbWeight=2 PerfScore 4.00
-G_M16914_IG07:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
-       mov      ecx, eax
+                     ;; size=4 bbWeight=0.25 PerfScore 0.56
+G_M16914_IG06:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[edi]
+       mov      ebx, dword ptr [edi+0x08]
+                       ;; size=3 bbWeight=0.25 PerfScore 0.50
+G_M16914_IG07:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       mov      eax, ebx
        cmp      dword ptr [esi+0x30], 0
        je       SHORT G_M16914_IG09
+                      ;; size=8 bbWeight=1 PerfScore 4.25
+G_M16914_IG08:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       lea      eax, [ebx+0x01]
+                       ;; size=3 bbWeight=0.25 PerfScore 0.12
+G_M16914_IG09:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       test     eax, eax
+       jg       SHORT G_M16914_IG03
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M16914_IG10:        ; bbWeight=0.12, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[esi]
+       jmp      SHORT G_M16914_IG18
+                       ;; size=2 bbWeight=0.12 PerfScore 0.25
+G_M16914_IG11:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[esi]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     [ebx+0x10]<unknown method>
+       ; gcrRegs -[ecx]
+                       ;; size=5 bbWeight=2 PerfScore 6.50
+G_M16914_IG12:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [esi+0x04]
+       ; gcrRegs +[edi]
+       test     edi, edi
+       jne      SHORT G_M16914_IG14
+                       ;; size=7 bbWeight=8 PerfScore 26.00
+G_M16914_IG13:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       xor      ecx, ecx
+       xor      eax, eax
+       jmp      SHORT G_M16914_IG15
+                       ;; size=6 bbWeight=2 PerfScore 5.00
+G_M16914_IG14:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[edi]
+       mov      eax, dword ptr [edi+0x08]
+                       ;; size=3 bbWeight=2 PerfScore 4.00
+G_M16914_IG15:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
+       mov      ecx, eax
+       cmp      dword ptr [esi+0x30], 0
+       je       SHORT G_M16914_IG17
                         ;; size=8 bbWeight=8 PerfScore 34.00
-G_M16914_IG08:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M16914_IG16:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        lea      ecx, [eax+0x01]
                        ;; size=3 bbWeight=2 PerfScore 1.00
-G_M16914_IG09:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M16914_IG17:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        test     ecx, ecx
-       jg       SHORT G_M16914_IG03
+       jg       SHORT G_M16914_IG11
                      ;; size=4 bbWeight=8 PerfScore 10.00
-G_M16914_IG10:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M16914_IG18:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[esi]
+       pop      ebx
        pop      esi
+       pop      edi
        pop      ebp
        ret      
-                     ;; size=3 bbWeight=1 PerfScore 2.00
+                       ;; size=5 bbWeight=1 PerfScore 3.00
 
-; Total bytes of code 50, prolog size 4, PerfScore 100.50, instruction count 24, allocated bytes for code 50 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
+; Total bytes of code 94, prolog size 6, PerfScore 108.50, instruction count 45, allocated bytes for code 94 (MethodHash=c8c0bded) for method Newtonsoft.Json.JsonWriter:AutoCompleteAll():this (FullOpts)
 ; ============================================================
 
  
+49 (+94.23%) : 178533.dasm - MS.Internal.Xml.XPath.XPathScanner:SkipKnownSpace():this (FullOpts)
@@ -8,11 +8,11 @@
 ; 1 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  8, 28   )   byref  ->  ecx         this single-def
+;  V00 this         [V00,T00] ( 14, 31.25)   byref  ->  ecx         this single-def
 ;* V01 tmp0         [V01,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V02 tmp1         [V02,T02] (  3, 18   )     ref  ->  eax         class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;  V03 tmp2         [V03,T01] (  4, 20   )     int  ->  edx         "Inline stloc first use temp"
-;  V04 tmp3         [V04,T03] (  2, 16   )  ushort  ->  eax         "Inlining Arg"
+;  V02 tmp1         [V02,T02] (  6, 20.25)     ref  ->  eax         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V03 tmp2         [V03,T01] (  8, 22.50)     int  ->  edx         "Inline stloc first use temp"
+;  V04 tmp3         [V04,T03] (  4, 18   )  ushort  ->  eax         "Inlining Arg"
 ;* V05 tmp4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V06 tmp5         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V07 tmp6         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
@@ -25,41 +25,65 @@
 ;
 ; Lcl frame size = 0
 
-G_M10765_IG01:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+G_M10765_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
-                     ;; size=3 bbWeight=8 PerfScore 10.00
-G_M10765_IG02:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+                      ;; size=3 bbWeight=1 PerfScore 1.25
+G_M10765_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
        ; byrRegs +[ecx]
        mov      eax, gword ptr [ecx+0x08]
        ; gcrRegs +[eax]
        mov      edx, dword ptr [ecx+0x18]
        cmp      dword ptr [eax+0x04], edx
        jbe      SHORT G_M10765_IG04
-                      ;; size=11 bbWeight=8 PerfScore 64.00
-G_M10765_IG03:        ; bbWeight=2, gcrefRegs=00000001 {eax}, byrefRegs=00000002 {ecx}, byref, isz
+                       ;; size=11 bbWeight=1 PerfScore 8.00
+G_M10765_IG03:        ; bbWeight=0.25, gcrefRegs=00000001 {eax}, byrefRegs=00000002 {ecx}, byref, isz
        movzx    eax, word  ptr [eax+2*edx+0x08]
        ; gcrRegs -[eax]
        mov      word  ptr [ecx+0x20], ax
        inc      edx
        mov      dword ptr [ecx+0x18], edx
        jmp      SHORT G_M10765_IG05
-                      ;; size=15 bbWeight=2 PerfScore 12.50
-G_M10765_IG04:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+                      ;; size=15 bbWeight=0.25 PerfScore 1.56
+G_M10765_IG04:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
        mov      word  ptr [ecx+0x20], 0
-       jmp      SHORT G_M10765_IG06
-                       ;; size=8 bbWeight=2 PerfScore 6.00
-G_M10765_IG05:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       jmp      SHORT G_M10765_IG10
+                       ;; size=8 bbWeight=0.25 PerfScore 0.75
+G_M10765_IG05:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
        movzx    eax, word  ptr [ecx+0x20]
        test     byte  ptr [eax+D1FFAB1EH], 1
-       jne      SHORT G_M10765_IG02
+       je       SHORT G_M10765_IG10
+                       ;; size=13 bbWeight=0.50 PerfScore 3.00
+G_M10765_IG06:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       mov      eax, gword ptr [ecx+0x08]
+       ; gcrRegs +[eax]
+       mov      edx, dword ptr [ecx+0x18]
+       cmp      dword ptr [eax+0x04], edx
+       jbe      SHORT G_M10765_IG08
+                       ;; size=11 bbWeight=8 PerfScore 64.00
+G_M10765_IG07:        ; bbWeight=2, gcrefRegs=00000001 {eax}, byrefRegs=00000002 {ecx}, byref, isz
+       movzx    eax, word  ptr [eax+2*edx+0x08]
+       ; gcrRegs -[eax]
+       mov      word  ptr [ecx+0x20], ax
+       lea      eax, [edx+0x01]
+       mov      dword ptr [ecx+0x18], eax
+       jmp      SHORT G_M10765_IG09
+                       ;; size=17 bbWeight=2 PerfScore 13.00
+G_M10765_IG08:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       mov      word  ptr [ecx+0x20], 0
+       jmp      SHORT G_M10765_IG10
+                       ;; size=8 bbWeight=2 PerfScore 6.00
+G_M10765_IG09:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       movzx    eax, word  ptr [ecx+0x20]
+       test     byte  ptr [eax+D1FFAB1EH], 1
+       jne      SHORT G_M10765_IG06
                         ;; size=13 bbWeight=4 PerfScore 24.00
-G_M10765_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M10765_IG10:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; byrRegs -[ecx]
        pop      ebp
        ret      
                        ;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 52, prolog size 3, PerfScore 118.00, instruction count 18, allocated bytes for code 52 (MethodHash=7fdad5f2) for method MS.Internal.Xml.XPath.XPathScanner:SkipKnownSpace():this (FullOpts)
+; Total bytes of code 101, prolog size 3, PerfScore 123.06, instruction count 32, allocated bytes for code 101 (MethodHash=7fdad5f2) for method MS.Internal.Xml.XPath.XPathScanner:SkipKnownSpace():this (FullOpts)
 ; ============================================================
 
  
+28 (+103.70%) : 279022.dasm - System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (FullOpts)
@@ -7,9 +7,9 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5, 11   )     int  ->  eax        
-;  V01 arg1         [V01,T00] (  7, 19   )     int  ->  esi        
-;  V02 loc0         [V02,T02] (  2,  8   )     int  ->  edx        
+;  V00 arg0         [V00,T01] (  7, 13   )     int  ->  registers  
+;  V01 arg1         [V01,T00] ( 11, 23   )     int  ->  registers  
+;  V02 loc0         [V02,T02] (  4, 10   )     int  ->  edx        
 ;
 ; Lcl frame size = 0
 
@@ -22,22 +22,44 @@ G_M22426_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=8 bbWeight=1 PerfScore 2.75
 G_M22426_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        test     esi, esi
-       je       SHORT G_M22426_IG04
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M22426_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       je       SHORT G_M22426_IG08
        xor      edx, edx
        div      edx:eax, esi
        mov      eax, esi
        mov      esi, edx
        test     esi, esi
-       jne      SHORT G_M22426_IG03
-                       ;; size=12 bbWeight=4 PerfScore 108.00
-G_M22426_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+       je       SHORT G_M22426_IG07
+                       ;; size=16 bbWeight=1 PerfScore 28.25
+G_M22426_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       xor      edx, edx
+       div      edx:eax, esi
+       mov      eax, edx
+       test     eax, eax
+       jne      SHORT G_M22426_IG06
+                       ;; size=10 bbWeight=4 PerfScore 107.00
+G_M22426_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       mov      eax, esi
+                       ;; size=2 bbWeight=1 PerfScore 0.25
+G_M22426_IG05:        ; bbWeight=1, epilog, nogc, extend
        pop      esi
        pop      ebp
        ret      
                        ;; size=3 bbWeight=1 PerfScore 2.00
+G_M22426_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      ecx, eax
+       mov      eax, esi
+       mov      esi, ecx
+       jmp      SHORT G_M22426_IG03
+                       ;; size=8 bbWeight=2 PerfScore 5.50
+G_M22426_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, eax
+       jmp      SHORT G_M22426_IG04
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
+G_M22426_IG08:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, eax
+       jmp      SHORT G_M22426_IG04
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 27, prolog size 8, PerfScore 114.00, instruction count 16, allocated bytes for code 27 (MethodHash=f186a865) for method System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (FullOpts)
+; Total bytes of code 55, prolog size 8, PerfScore 148.00, instruction count 30, allocated bytes for code 55 (MethodHash=f186a865) for method System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (FullOpts)
 ; ============================================================
 
  
  
libraries_tests.run.windows.x86.Release.mch
-48 (-11.79%) : 605674.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32827_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -8,44 +8,45 @@
 ; 4 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T04] ( 15, 26.50)     ref  ->  esi         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
-;  V01 arg1         [V01,T19] (  2,  2   )  struct ( 8) [ebp+0x08]  do-not-enreg[S] single-def <System.ReadOnlySpan`1[ushort]>
+;  V00 arg0         [V00,T02] ( 16,  9.50)     ref  ->  esi         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
+;  V01 arg1         [V01,T20] (  2,  2   )  struct ( 8) [ebp+0x08]  do-not-enreg[S] single-def <System.ReadOnlySpan`1[ushort]>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
-;  V03 loc1         [V03,T03] (  9, 29.50)     int  ->  [ebp-0x10]  spill-single-def
-;  V04 loc2         [V04,T10] (  8,  4.50)     int  ->  [ebp-0x14] 
+;  V03 loc1         [V03,T04] (  8,  5.75)     int  ->  [ebp-0x10]  spill-single-def
+;  V04 loc2         [V04,T08] (  8,  4.50)     int  ->  [ebp-0x14] 
 ;* V05 loc3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    <System.ReadOnlySpan`1[ushort]>
-;  V06 loc4         [V06,T00] ( 15, 75.50)     int  ->  [ebp-0x18] 
+;  V06 loc4         [V06,T00] (  6,  3.50)     int  ->  [ebp-0x18] 
 ;* V07 loc5         [V07    ] (  0,  0   )     int  ->  zero-ref   
-;  V08 loc6         [V08,T07] (  8, 23   )     int  ->  [ebp-0x1C] 
-;  V09 loc7         [V09,T08] (  3, 17   )     int  ->  [ebp-0x20] 
+;  V08 loc6         [V08,T05] (  5,  3   )     int  ->  [ebp-0x1C] 
+;* V09 loc7         [V09,T06] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp0         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V11 tmp1         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp2         [V12    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp3         [V13    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V14 tmp4         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp5         [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V16 tmp6         [V16,T12] (  4,  3.00)     int  ->  [ebp-0x24]  "Inlining Arg"
-;  V17 tmp7         [V17,T11] (  5,  4.00)     int  ->  [ebp-0x28]  "Inlining Arg"
+;  V16 tmp6         [V16,T11] (  4,  3.00)     int  ->  [ebp-0x20]  "Inlining Arg"
+;  V17 tmp7         [V17,T09] (  5,  4.00)     int  ->  [ebp-0x24]  "Inlining Arg"
 ;* V18 tmp8         [V18    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V19 tmp9         [V19,T15] (  4,  2.00)     int  ->  edi         single-def "Inline stloc first use temp"
-;  V20 tmp10        [V20,T13] (  3,  3.00)     ref  ->  ecx         class-hnd single-def "impAppendStmt" <<unknown class>>
-;  V21 tmp11        [V21,T14] (  2,  3   )   byref  ->  [ebp-0x30]  spill-single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V22 tmp12        [V22,T09] (  6, 12   )     int  ->  [ebp-0x2C]  spill-single-def "field V02._length (fldOffset=0x4)" P-INDEP
+;  V19 tmp9         [V19,T17] (  4,  2.00)     int  ->  edi         single-def "Inline stloc first use temp"
+;  V20 tmp10        [V20,T12] (  3,  3.00)     ref  ->  ecx         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V21 tmp11        [V21,T10] (  2,  1.25)   byref  ->  [ebp-0x28]  spill-single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V22 tmp12        [V22,T07] (  6,  5   )     int  ->  ebx         single-def "field V02._length (fldOffset=0x4)" P-INDEP
 ;* V23 tmp13        [V23    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V24 tmp14        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x4)" P-INDEP
 ;* V25 tmp15        [V25    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V26 tmp16        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x4)" P-INDEP
 ;* V27 tmp17        [V27    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V28 tmp18        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x4)" P-INDEP
-;  V29 tmp19        [V29,T01] (  3, 48   )     ref  ->  ebx         "arr expr"
-;  V30 tmp20        [V30,T02] (  2, 32   )     ref  ->  edi         "arr expr"
-;  V31 tmp21        [V31,T16] (  2,  2   )     ref  ->  edx         single-def "arr expr"
-;  V32 tmp22        [V32,T17] (  2,  2   )     ref  ->  ecx         single-def "arr expr"
-;  V33 tmp23        [V33,T18] (  2,  2.00)     ref  ->  ecx         single-def "argument with side effect"
-;  V34 cse0         [V34,T05] (  4, 24.50)     ref  ->  edx         "CSE - moderate"
-;  V35 cse1         [V35,T06] (  4, 24.50)     int  ->  eax         "CSE - moderate"
+;  V29 tmp19        [V29,T01] (  3,  6   )     ref  ->  eax         "arr expr"
+;  V30 tmp20        [V30,T03] (  2,  4   )     ref  ->  ecx         "arr expr"
+;  V31 tmp21        [V31,T13] (  3,  3   )     ref  ->  edx         single-def "arr expr"
+;  V32 tmp22        [V32,T18] (  2,  2   )     ref  ->  ecx         single-def "arr expr"
+;  V33 tmp23        [V33,T19] (  2,  2.00)     ref  ->  ecx         single-def "argument with side effect"
+;  V34 cse0         [V34,T14] (  3,  3   )     ref  ->  ecx         "CSE - moderate"
+;  V35 cse1         [V35,T16] (  2,  0.50)   byref  ->  ecx         "CSE - conservative"
+;  V36 cse2         [V36,T15] (  3,  3   )     int  ->  edx         "CSE - moderate"
 ;
-; Lcl frame size = 36
+; Lcl frame size = 28
 
 G_M7339_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -53,47 +54,37 @@ G_M7339_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
        push     edi
        push     esi
        push     ebx
-       sub      esp, 36
+       sub      esp, 28
        mov      esi, ecx
        ; gcrRegs +[esi]
                        ;; size=11 bbWeight=1 PerfScore 4.75
-G_M7339_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M7339_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edi, bword ptr [ebp+0x08]
        ; byrRegs +[edi]
-       mov      bword ptr [ebp-0x30], edi
+       mov      bword ptr [ebp-0x28], edi
        ; GC ptr vars +{V21}
        mov      ebx, dword ptr [ebp+0x0C]
-       mov      dword ptr [ebp-0x2C], ebx
        mov      eax, dword ptr [esi+0x30]
        mov      dword ptr [ebp-0x14], eax
        mov      edx, eax
        mov      dword ptr [ebp-0x10], edx
-       xor      ecx, ecx
-       mov      dword ptr [ebp-0x18], ecx
        cmp      edx, ebx
-       ja       G_M7339_IG19
-       mov      edi, ebx
-       ; byrRegs -[edi]
-       sub      edi, edx
-       mov      ecx, edi
+       ja       G_M7339_IG17
+       mov      ecx, ebx
+       sub      ecx, edx
        not      ecx
        shr      ecx, 31
        call     [<unknown method>]
-       xor      edi, edi
-       mov      dword ptr [ebp-0x1C], edi
-       xor      eax, eax
-       mov      dword ptr [ebp-0x20], eax
-                       ;; size=63 bbWeight=1 PerfScore 17.75
-G_M7339_IG03:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; byrRegs -[edi]
        mov      edx, gword ptr [esi+0x14]
        ; gcrRegs +[edx]
        mov      edx, dword ptr [edx+0x04]
        ; gcrRegs -[edx]
        dec      edx
-       cmp      edx, dword ptr [ebp-0x18]
-       jg       SHORT G_M7339_IG05
-                       ;; size=12 bbWeight=8 PerfScore 58.00
-G_M7339_IG04:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       test     edx, edx
+       jg       SHORT G_M7339_IG04
+                       ;; size=54 bbWeight=1 PerfScore 18.25
+G_M7339_IG03:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      edx, gword ptr [esi+0x14]
        ; gcrRegs +[edx]
        mov      edx, dword ptr [edx+0x04]
@@ -103,107 +94,90 @@ G_M7339_IG04:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; byrRegs +[ecx]
        call     [System.Array:Resize[int](byref,int)]
        ; byrRegs -[ecx]
-                      ;; size=17 bbWeight=2 PerfScore 15.50
-G_M7339_IG05:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+                       ;; size=17 bbWeight=0.25 PerfScore 1.94
+G_M7339_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, gword ptr [esi+0x14]
+       ; gcrRegs +[ecx]
+       mov      eax, ecx
+       ; gcrRegs +[eax]
+       mov      edx, dword ptr [eax+0x04]
+       test     edx, edx
+       je       G_M7339_IG16
+       xor      edi, edi
+       mov      dword ptr [eax+0x08], edi
+       cmp      edx, 1
+       jbe      G_M7339_IG16
+       mov      edi, dword ptr [ebp-0x10]
+       mov      dword ptr [ecx+0x0C], edi
+       mov      ecx, 2
+       ; gcrRegs -[ecx]
+       mov      eax, 1
+       ; gcrRegs -[eax]
+       cmp      edi, ebx
+       jae      SHORT G_M7339_IG08
+                       ;; size=50 bbWeight=1 PerfScore 11.75
+G_M7339_IG05:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edx, bword ptr [ebp-0x28]
+       ; byrRegs +[edx]
+       cmp      word  ptr [edx+2*edi], 10
+       jne      SHORT G_M7339_IG07
+                       ;; size=10 bbWeight=0.25 PerfScore 1.25
+G_M7339_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; byrRegs -[edx]
+       ; GC ptr vars -{V21}
+       jmp      SHORT G_M7339_IG08
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M7339_IG07:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       dec      eax
+       mov      dword ptr [ebp-0x1C], eax
+       test     eax, eax
+       jl       G_M7339_IG12
+       dec      ecx
        mov      edx, gword ptr [esi+0x14]
        ; gcrRegs +[edx]
-       mov      ebx, edx
-       ; gcrRegs +[ebx]
-       mov      eax, dword ptr [ebx+0x04]
-       mov      ecx, dword ptr [ebp-0x18]
-       cmp      ecx, eax
-       jae      G_M7339_IG18
-       mov      edi, dword ptr [ebp-0x20]
-       mov      dword ptr [ebx+4*ecx+0x08], edi
-       inc      ecx
-       mov      edi, edx
-       ; gcrRegs +[edi]
-       cmp      ecx, eax
-       jae      G_M7339_IG18
-       mov      ebx, dword ptr [ebp-0x10]
-       ; gcrRegs -[ebx]
-       mov      dword ptr [edi+4*ecx+0x08], ebx
-       inc      ecx
-       mov      dword ptr [ebp-0x20], ebx
-       mov      ebx, dword ptr [ebp-0x1C]
-       inc      ebx
-       mov      dword ptr [ebp-0x1C], ebx
-       mov      edi, dword ptr [ebp-0x2C]
-       ; gcrRegs -[edi]
-       cmp      dword ptr [ebp-0x10], edi
-       jae      SHORT G_M7339_IG07
-                       ;; size=63 bbWeight=8 PerfScore 158.00
-G_M7339_IG06:        ; bbWeight=2, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
-       mov      edi, bword ptr [ebp-0x30]
-       ; byrRegs +[edi]
-       mov      ebx, dword ptr [ebp-0x10]
-       cmp      word  ptr [edi+2*ebx], 10
-       jne      SHORT G_M7339_IG09
-                       ;; size=13 bbWeight=2 PerfScore 12.00
-G_M7339_IG07:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       cmp      ecx, dword ptr [edx+0x04]
+       jae      G_M7339_IG16
+       mov      dword ptr [ebp-0x18], ecx
+       mov      edx, dword ptr [edx+4*ecx+0x08]
        ; gcrRegs -[edx]
-       ; byrRegs -[edi]
-       mov      ebx, dword ptr [ebp-0x1C]
-       test     ebx, ebx
-       mov      dword ptr [ebp-0x18], ecx
-       mov      dword ptr [ebp-0x1C], ebx
-       jle      SHORT G_M7339_IG03
-                       ;; size=13 bbWeight=4 PerfScore 17.00
-G_M7339_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V21}
-       jmp      SHORT G_M7339_IG10
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M7339_IG09:        ; bbWeight=0.50, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[edx]
-       mov      ebx, dword ptr [ebp-0x1C]
-       dec      ebx
-       js       G_M7339_IG14
-       dec      ecx
-       cmp      ecx, eax
-       jae      G_M7339_IG18
-       mov      dword ptr [ebp-0x18], ecx
-       mov      eax, dword ptr [edx+4*ecx+0x08]
-       mov      edi, dword ptr [ebp-0x2C]
-       cmp      eax, edi
-       ja       G_M7339_IG19
-       mov      dword ptr [ebp-0x14], eax
-       sub      edi, eax
-       mov      ecx, edi
+       cmp      edx, ebx
+       ja       G_M7339_IG17
+       mov      dword ptr [ebp-0x14], edx
+       sub      ebx, edx
+       mov      ecx, ebx
        not      ecx
        shr      ecx, 31
        call     [<unknown method>]
-       ; gcrRegs -[edx]
        mov      ecx, gword ptr [esi+0x14]
        ; gcrRegs +[ecx]
...
  
-12 (-11.21%) : 367530.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:NextRandom():ubyte:this (Tier1)
@@ -7,10 +7,10 @@
 ; 2 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]>
-;  V01 loc0         [V01    ] (  2,  2   )   ubyte  ->  [ebp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op
+;  V00 this         [V00,T01] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]>
+;  V01 loc0         [V01    ] (  2,  2   )   ubyte  ->  [ebp-0x0C]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;* V02 tmp0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;  V03 tmp1         [V03,T02] (  5,  5   )     ref  ->  esi         class-hnd single-def "impAppendStmt" <System.Random>
+;  V03 tmp1         [V03,T00] (  5,  5   )     ref  ->  esi         class-hnd single-def "impAppendStmt" <System.Random>
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V05 tmp3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Random>
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
@@ -18,23 +18,23 @@
 ;* V08 tmp6         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp8         [V10    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V11 tmp9         [V11,T05] (  5,  3   )     ref  ->  ecx         single-def "guarded devirt arg temp"
+;  V11 tmp9         [V11,T02] (  5,  3   )     ref  ->  ecx         single-def "guarded devirt arg temp"
 ;* V12 tmp10        [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Random+Net5CompatSeedImpl>
-;  V13 tmp11        [V13,T00] (  5, 16.50)     int  ->  ebx         "Inline stloc first use temp"
+;* V13 tmp11        [V13,T07] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V14 tmp12        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;  V15 tmp13        [V15,T01] (  2,  9   )   byref  ->  esi         single-def "Inlining Arg"
+;  V15 tmp13        [V15,T03] (  2,  2   )   byref  ->  ecx         single-def "Inlining Arg"
 ;* V16 tmp14        [V16    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V17 tmp15        [V17,T06] (  2,  2   )   byref  ->  edi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V17 tmp15        [V17,T04] (  2,  2   )   byref  ->  edi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;* V18 tmp16        [V18    ] (  0,  0   )     int  ->  zero-ref    single-def "field V02._length (fldOffset=0x4)" P-INDEP
 ;* V19 tmp17        [V19    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V20 tmp18        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "field V04._length (fldOffset=0x4)" P-INDEP
 ;* V21 tmp19        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp20        [V22    ] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0x4)" P-INDEP
-;  V23 tmp21        [V23,T07] (  4,  1.50)   byref  ->  edi         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;  V23 tmp21        [V23,T05] (  4,  1.50)   byref  ->  edi         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V24 tmp22        [V24,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V07._length (fldOffset=0x4)" 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=0x4)" P-INDEP
-;  V27 tmp25        [V27,T04] (  2,  4.50)   byref  ->  edi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V27 tmp25        [V27,T06] (  2,  1   )   byref  ->  edi         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V28 tmp26        [V28,T09] (  0,  0   )     int  ->  zero-ref    single-def "field V14._length (fldOffset=0x4)" P-INDEP
 ;
 ; Lcl frame size = 4
@@ -44,57 +44,47 @@ G_M4386_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
        mov      ebp, esp
        push     edi
        push     esi
-       push     ebx
        push     eax
        xor      eax, eax
-       mov      dword ptr [ebp-0x10], eax
-                       ;; size=12 bbWeight=1 PerfScore 6.50
+       mov      dword ptr [ebp-0x0C], eax
+                       ;; size=11 bbWeight=1 PerfScore 5.50
 G_M4386_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx]
        mov      esi, gword ptr [ecx+0x04]
        ; gcrRegs +[esi]
-       lea      edi, bword ptr [ebp-0x10]
+       lea      edi, bword ptr [ebp-0x0C]
        ; byrRegs +[edi]
        mov      ecx, 1
        ; gcrRegs -[ecx]
        call     [<unknown method>]
        cmp      dword ptr [esi], 0xD1FFAB1E
-       jne      SHORT G_M4386_IG08
+       jne      SHORT G_M4386_IG07
                         ;; size=25 bbWeight=1 PerfScore 9.75
 G_M4386_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        mov      ecx, gword ptr [esi+0x04]
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], 0xD1FFAB1E
-       jne      SHORT G_M4386_IG07
-       lea      esi, bword ptr [ecx+0x04]
-       ; gcrRegs -[esi]
-       ; byrRegs +[esi]
-       xor      ebx, ebx
-                       ;; size=16 bbWeight=0.50 PerfScore 3.38
-G_M4386_IG04:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
+       jne      SHORT G_M4386_IG06
+       add      ecx, 4
        ; gcrRegs -[ecx]
-       mov      ecx, esi
        ; byrRegs +[ecx]
        call     [System.Random+CompatPrng:InternalSample():int:this]
+       ; gcrRegs -[esi]
        ; byrRegs -[ecx]
-       mov      byte  ptr [edi+ebx], al
-       inc      ebx
-       test     ebx, ebx
-       jle      SHORT G_M4386_IG04
-                       ;; size=16 bbWeight=4 PerfScore 23.00
-G_M4386_IG05:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       ; byrRegs -[esi edi]
-       movzx    eax, byte  ptr [ebp-0x10]
+       mov      byte  ptr [edi], al
+                       ;; size=22 bbWeight=0.50 PerfScore 5.12
+G_M4386_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; byrRegs -[edi]
+       movzx    eax, byte  ptr [ebp-0x0C]
                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M4386_IG06:        ; bbWeight=1, epilog, nogc, extend
+G_M4386_IG05:        ; bbWeight=1, epilog, nogc, extend
        pop      ecx
-       pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      
-                     ;; size=6 bbWeight=1 PerfScore 3.50
-G_M4386_IG07:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000002 {ecx}, byrefRegs=00000080 {edi}, gcvars, byref, isz
+                        ;; size=5 bbWeight=1 PerfScore 3.00
+G_M4386_IG06:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000002 {ecx}, byrefRegs=00000080 {edi}, gcvars, byref, isz
        ; gcrRegs +[ecx]
        ; byrRegs +[edi]
        push     1
@@ -104,9 +94,9 @@ G_M4386_IG07:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000002 {ecx},
        call     [eax+0x18]<unknown method>
        ; gcrRegs -[ecx]
        ; byrRegs -[edi]
-       jmp      SHORT G_M4386_IG05
+       jmp      SHORT G_M4386_IG04
                         ;; size=13 bbWeight=0 PerfScore 0.00
-G_M4386_IG08:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+G_M4386_IG07:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        ; gcrRegs +[esi]
        ; byrRegs +[edi]
        push     1
@@ -118,9 +108,9 @@ G_M4386_IG08:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000080
        call     [eax+0x14]System.Random:NextBytes(System.Span`1[ubyte]):this
        ; gcrRegs -[ecx esi]
        ; byrRegs -[edi]
-       jmp      SHORT G_M4386_IG05
+       jmp      SHORT G_M4386_IG04
                         ;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 107, prolog size 12, PerfScore 47.12, instruction count 45, allocated bytes for code 107 (MethodHash=e971eedd) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:NextRandom():ubyte:this (Tier1)
+; Total bytes of code 95, prolog size 11, PerfScore 24.38, instruction count 38, allocated bytes for code 95 (MethodHash=e971eedd) for method System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1[ubyte]:NextRandom():ubyte:this (Tier1)
 ; ============================================================
 
  
-37 (-10.66%) : 82677.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.StructDeclarationSyntax:get_Modifiers():Microsoft.CodeAnalysis.SyntaxTokenList:this (Tier1)
@@ -9,36 +9,38 @@
 ; 2 inlinees with PGO data; 9 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  9,  9.39)     ref  ->  esi         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.StructDeclarationSyntax>
-;  V01 RetBuf       [V01,T05] (  7,  4.47)   byref  ->  edi         single-def
-;  V02 loc0         [V02,T10] (  3,  2.49)     ref  ->  [ebp-0x20]  class-hnd spill-single-def <Microsoft.CodeAnalysis.GreenNode>
+;  V00 this         [V00,T00] (  9,  5.95)     ref  ->  esi         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.StructDeclarationSyntax>
+;  V01 RetBuf       [V01,T01] (  7,  4.47)   byref  ->  edi         single-def
+;  V02 loc0         [V02,T05] (  3,  2.49)     ref  ->  [ebp-0x1C]  class-hnd spill-single-def <Microsoft.CodeAnalysis.GreenNode>
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op <Microsoft.CodeAnalysis.SyntaxTokenList>
-;  V04 loc2         [V04,T06] (  5,  6   )     ref  ->  ecx         class-hnd single-def "spilling ret_expr" <Microsoft.CodeAnalysis.GreenNode>
-;  V05 tmp1         [V05,T08] (  4,  3.93)     int  ->  [ebp-0x10]  "impAppendStmt"
+;  V04 loc2         [V04,T02] (  5,  6   )     ref  ->  ecx         class-hnd single-def "spilling ret_expr" <Microsoft.CodeAnalysis.GreenNode>
+;  V05 tmp1         [V05,T03] (  4,  3.93)     int  ->  [ebp-0x10]  "impAppendStmt"
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.SyntaxTokenList>
-;  V07 tmp3         [V07,T11] (  3,  2   )     ref  ->  ebx         "guarded devirt return temp"
+;  V07 tmp3         [V07,T06] (  3,  2   )     ref  ->  ebx         "guarded devirt return temp"
 ;* V08 tmp4         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.StructDeclarationSyntax>
 ;* V09 tmp5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V10 tmp6         [V10,T00] (  6, 40.31)     int  ->  [ebp-0x14]  "Inlining Arg"
-;  V11 tmp7         [V11,T13] (  3,  1.47)     ref  ->  eax         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V12 tmp8         [V12,T07] (  5,  5.41)     int  ->  [ebp-0x18]  "Inline stloc first use temp"
-;  V13 tmp9         [V13,T03] (  3,  8.36)     ref  ->  [ebp-0x24]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V14 tmp10        [V14,T04] (  3,  8.36)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V15 tmp11        [V15,T02] (  3,  9.83)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;* V10 tmp6         [V10,T07] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V11 tmp7         [V11,T10] (  3,  1.47)     ref  ->  eax         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V12 tmp8         [V12,T08] (  4,  1.72)     int  ->  [ebp-0x14]  "Inline stloc first use temp"
+;  V13 tmp9         [V13,T11] (  3,  1.47)     ref  ->  [ebp-0x20]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V14 tmp10        [V14,T12] (  3,  1.47)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V15 tmp11        [V15,T14] (  3,  1.23)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
 ;* V16 tmp12        [V16    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline return value spill temp"
-;  V17 tmp13        [V17,T12] (  4,  1.54)     int  ->  [ebp-0x1C]  "Inline stloc first use temp"
-;* V18 tmp14        [V18,T19] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V19 tmp15        [V19,T14] (  6,  1.29)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-;  V20 tmp16        [V20,T20] (  4,  0.18)     int  ->  ecx         "Inline stloc first use temp"
-;* V21 tmp17        [V21,T18] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._parent (fldOffset=0x0)" P-INDEP
+;  V17 tmp13        [V17,T09] (  4,  1.54)     int  ->  [ebp-0x18]  "Inline stloc first use temp"
+;* V18 tmp14        [V18,T21] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V19 tmp15        [V19,T13] (  6,  1.29)     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
+;  V20 tmp16        [V20,T22] (  4,  0.18)     int  ->  ecx         "Inline stloc first use temp"
+;* V21 tmp17        [V21,T20] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._parent (fldOffset=0x0)" P-INDEP
 ;  V22 tmp18        [V22,T15] (  2,  0.98)     ref  ->  ecx         single-def "field V06.<Node>k__BackingField (fldOffset=0x4)" P-INDEP
 ;  V23 tmp19        [V23,T16] (  2,  0.98)     int  ->  ebx         single-def "field V06._index (fldOffset=0x8)" P-INDEP
 ;  V24 tmp20        [V24,T17] (  2,  0.98)     int  ->  eax         single-def "field V06.<Position>k__BackingField (fldOffset=0xc)" P-INDEP
-;  V25 tmp21        [V25,T09] (  3,  2.95)     ref  ->  [ebp-0x28]  spill-single-def "argument with side effect"
-;  TEMP_02                                     ref  ->  [ebp-0x2C]
-;  TEMP_01                                     int  ->  [ebp-0x30]
+;  V25 tmp21        [V25,T04] (  3,  2.95)     ref  ->  [ebp-0x24]  spill-single-def "argument with side effect"
+;  V26 cse0         [V26,T18] (  2,  0.98)     int  ->  eax         "CSE - moderate"
+;  V27 cse1         [V27,T19] (  2,  0.49)     int  ->  eax         "CSE - conservative"
+;  TEMP_02                                     ref  ->  [ebp-0x28]
+;  TEMP_01                                     int  ->  [ebp-0x2C]
 ;
-; Lcl frame size = 36
+; Lcl frame size = 32
 
 G_M61590_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -46,9 +48,9 @@ G_M61590_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 36
+       sub      esp, 32
        xor      eax, eax
-       mov      dword ptr [ebp-0x2C], eax
+       mov      dword ptr [ebp-0x28], eax
        mov      esi, ecx
        ; gcrRegs +[esi]
        mov      edi, edx
@@ -58,17 +60,17 @@ G_M61590_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000080
        mov      ecx, gword ptr [esi+0x0C]
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], 0xD1FFAB1E
-       jne      G_M61590_IG20
+       jne      G_M61590_IG18
        mov      ebx, gword ptr [ecx+0x10]
        ; gcrRegs +[ebx]
                        ;; size=18 bbWeight=1 PerfScore 8.00
-G_M61590_IG03:        ; bbWeight=1, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000080 {edi}, byref
+G_M61590_IG03:        ; bbWeight=1, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000080 {edi}, byref, isz
        ; gcrRegs -[ecx]
-       mov      gword ptr [ebp-0x20], ebx
+       mov      gword ptr [ebp-0x1C], ebx
        ; GC ptr vars +{V02}
        test     ebx, ebx
-       jne      G_M61590_IG16
-                       ;; size=11 bbWeight=1 PerfScore 2.25
+       jne      SHORT G_M61590_IG06
+                       ;; size=7 bbWeight=1 PerfScore 2.25
 G_M61590_IG04:        ; bbWeight=0.51, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
        ; gcrRegs -[ebx esi]
        ; GC ptr vars -{V02}
@@ -86,132 +88,119 @@ G_M61590_IG05:        ; bbWeight=0.51, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.51 PerfScore 1.78
-G_M61590_IG06:        ; bbWeight=0.49, gcVars=00000400 {V02}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref
+G_M61590_IG06:        ; bbWeight=0.49, gcVars=00000020 {V02}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
        ; gcrRegs +[esi]
-       ; GC ptr vars +{V02 V10}
-       xor      eax, eax
-       mov      dword ptr [ebp-0x18], eax
-       mov      edx, gword ptr [esi+0x0C]
-       ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x24], edx
-       ; GC ptr vars +{V13}
-                       ;; size=11 bbWeight=0.49 PerfScore 2.09
-G_M61590_IG07:        ; bbWeight=3.93, gcVars=00000408 {V02 V13}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
-       ; gcrRegs -[edx]
-       ; GC ptr vars -{V10}
-       mov      ecx, dword ptr [ebp-0x14]
-       dec      ecx
-       mov      dword ptr [ebp-0x14], ecx
-       mov      ecx, esi
-       ; gcrRegs +[ecx]
-       mov      edx, dword ptr [ebp-0x14]
-       call     [Microsoft.CodeAnalysis.CSharp.Syntax.StructDeclarationSyntax:GetCachedSlot(int):Microsoft.CodeAnalysis.SyntaxNode:this]
-       ; gcrRegs -[ecx] +[eax]
-       test     eax, eax
-       jne      SHORT G_M61590_IG11
-       mov      ecx, gword ptr [ebp-0x24]
-       ; gcrRegs +[ecx]
-       mov      edx, dword ptr [ebp-0x14]
-       mov      eax, dword ptr [ecx]
-       ; gcrRegs -[eax]
-       mov      eax, dword ptr [eax+0x30]
-       call     [eax+0x10]<unknown method>
-       ; gcrRegs -[ecx] +[eax]
-       test     eax, eax
-       je       SHORT G_M61590_IG09
-                       ;; size=40 bbWeight=3.93 PerfScore 70.79
-G_M61590_IG08:        ; bbWeight=1.97, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref
-       mov      ecx, dword ptr [ebp-0x18]
-       add      ecx, dword ptr [eax+0x04]
-       mov      dword ptr [ebp-0x18], ecx
-                       ;; size=9 bbWeight=1.97 PerfScore 9.83
-G_M61590_IG09:        ; bbWeight=3.93, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
-       ; gcrRegs -[eax]
-       mov      edx, dword ptr [ebp-0x14]
-       test     edx, edx
-       mov      dword ptr [ebp-0x14], edx
-       jg       SHORT G_M61590_IG07
-                       ;; size=10 bbWeight=3.93 PerfScore 12.78
-G_M61590_IG10:        ; bbWeight=0.49, gcVars=00000400 {V02}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
-       ; GC ptr vars -{V13}
-       mov      eax, dword ptr [ebp-0x18]
-       add      eax, dword ptr [esi+0x10]
-       mov      dword ptr [ebp-0x10], eax
-       jmp      SHORT G_M61590_IG12
-                       ;; size=11 bbWeight=0.49 PerfScore 3.44
-G_M61590_IG11:        ; bbWeight=0.49, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref
-       ; gcrRegs +[eax]
-       mov      ecx, eax
-       ; gcrRegs +[ecx]
-       call     [Microsoft.CodeAnalysis.SyntaxNode:get_EndPosition():int:this]
-       ; gcrRegs -[eax ecx]
-       add      eax, dword ptr [ebp-0x18]
-       mov      dword ptr [ebp-0x10], eax
-                       ;; size=14 bbWeight=0.49 PerfScore 3.07
-G_M61590_IG12:        ; bbWeight=0.49, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
-       xor      edx, edx
-       mov      dword ptr [ebp-0x1C], edx
-       mov      edx, gword ptr [esi+0x0C]
-       ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x28], edx
-       ; GC ptr vars +{V25}
-       mov      ecx, edx
-       ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x2C], ecx
-       xor      edx, edx
-       ; gcrRegs -[edx]
-       mov      ecx, gword ptr [ebp-0x28]
-       mov      ecx, dword ptr [ecx]
-       ; gcrRegs -[ecx]
-       mov      ecx, dword ptr [ecx+0x30]
-       mov      dword ptr [ebp-0x30], ecx
-       mov      ecx, gword ptr [ebp-0x2C]
-       ; gcrRegs +[ecx]
-       mov      ebx, dword ptr [ebp-0x30]
-       ; GC ptr vars -{V25}
-       call     [ebx+0x10]<unknown method>
-       ; gcrRegs -[ecx] +[eax]
-       test     eax, eax
-       je       SHORT G_M61590_IG18
-                       ;; size=42 bbWeight=0.49 PerfScore 8.85
-G_M61590_IG13:        ; bbWeight=0.25, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref, isz
-       cmp      word  ptr [eax+0x08], 1
-       jne      SHORT G_M61590_IG17
-                       ;; size=7 bbWeight=0.25 PerfScore 0.98
-G_M61590_IG14:        ; bbWeight=0.06, gcrefRegs=00000041 {eax esi}, byrefRegs=00000080 {edi}, byref, isz
-       movzx    ecx, byte  ptr [eax+0x0B]
-       cmp      ecx, 255
-       je       SHORT G_M61590_IG21
-                       ;; size=12 bbWeight=0.06 PerfScore 0.20
-G_M61590_IG15:        ; bbWeight=0.06, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
-       ; gcrRegs -[eax]
-       mov      ebx, ecx
-       mov      dword ptr [ebp-0x1C], ebx
-       jmp      SHORT G_M61590_IG18
-                       ;; size=7 bbWeight=0.06 PerfScore 0.20
-G_M61590_IG16:        ; bbWeight=0.49, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
-       mov      dword ptr [ebp-0x14], 1
+       ; GC ptr vars +{V02 V05}
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      edx, 1
        call     [Microsoft.CodeAnalysis.CSharp.Syntax.StructDeclarationSyntax:GetCachedSlot(int):Microsoft.CodeAnalysis.SyntaxNode:this]
        ; gcrRegs -[ecx] +[eax]
        test     eax, eax
-       je       G_M61590_IG06
+       je       SHORT G_M61590_IG07
        mov      eax, dword ptr [eax+0x10]
        ; gcrRegs -[eax]
        mov      dword ptr [ebp-0x10], eax
-       jmp      SHORT G_M61590_IG12
-                       ;; size=36 bbWeight=0.49 PerfScore 5.28
-G_M61590_IG17:        ; bbWeight=0.49, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
-       mov      ebx, 1
-       mov      dword ptr [ebp-0x1C], ebx
-                       ;; size=8 bbWeight=0.49 PerfScore 0.61
-G_M61590_IG18:        ; bbWeight=0.49, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
+       jmp      SHORT G_M61590_IG11
+                       ;; size=25 bbWeight=0.49 PerfScore 4.79
+G_M61590_IG07:        ; bbWeight=0.49, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+       xor      eax, eax
+       mov      dword ptr [ebp-0x14], eax
+       mov      edx, gword ptr [esi+0x0C]
+       ; gcrRegs +[edx]
+       mov      gword ptr [ebp-0x20], edx
+       ; GC ptr vars +{V13}
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       xor      edx, edx
+       ; gcrRegs -[edx]
+       ; GC ptr vars -{V05}
+       call     [Microsoft.CodeAnalysis.CSharp.Syntax.StructDeclarationSyntax:GetCachedSlot(int):Microsoft.CodeAnalysis.SyntaxNode:this]
+       ; gcrRegs -[ecx] +[eax]
+       test     eax, eax
+       jne      SHORT G_M61590_IG10
        mov      ecx, gword ptr [ebp-0x20]
        ; gcrRegs +[ecx]
+       xor      edx, edx
+       mov      eax, dword ptr [ecx]
+       ; gcrRegs -[eax]
+       mov      eax, dword ptr [eax+0x30]
+       ; GC ptr vars -{V13}
+       call     [eax+0x10]<unknown method>
...
  
+47 (+90.38%) : 492175.dasm - System.Security.Cryptography.Tests.Sum32Hash:HashCore(ubyte[],int,int):this (Tier0-FullOpts)
@@ -7,14 +7,17 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4, 10   )     ref  ->  ecx         this class-hnd single-def <System.Security.Cryptography.Tests.Sum32Hash>
-;  V01 arg1         [V01,T02] (  4, 10   )     ref  ->  edx         class-hnd single-def <ubyte[]>
-;  V02 arg2         [V02,T05] (  1,  4   )     int  ->  esi         single-def
-;  V03 arg3         [V03,T04] (  2,  5   )     int  ->  eax         single-def
+;  V00 this         [V00,T01] (  6, 12   )     ref  ->  ecx         this class-hnd single-def <System.Security.Cryptography.Tests.Sum32Hash>
+;  V01 arg1         [V01,T03] (  5,  8   )     ref  ->  edx         class-hnd single-def <ubyte[]>
+;  V02 arg2         [V02,T06] (  2,  5   )     int  ->  esi         single-def
+;  V03 arg3         [V03,T04] (  3,  6   )     int  ->  eax         single-def
 ;  V04 loc0         [V04,T00] (  5, 17   )     int  ->  edi        
-;  V05 cse0         [V05,T03] (  3, 12   )     int  ->  ebx         "CSE - aggressive"
+;  V05 cse0         [V05,T05] (  3,  6   )     int  ->  [ebp-0x10]  spill-single-def "CSE - moderate"
+;  V06 cse1         [V06,T02] (  3, 12   )     int  ->  ebx         "CSE - aggressive"
+;  V07 cse2         [V07,T07] (  3,  3   )     int  ->  [ebp-0x14]  spill-single-def "CSE - moderate"
+;  TEMP_01                                     int  ->  [ebp-0x18]
 ;
-; Lcl frame size = 0
+; Lcl frame size = 12
 
 G_M9589_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -22,38 +25,53 @@ G_M9589_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
        push     edi
        push     esi
        push     ebx
+       sub      esp, 12
        mov      esi, dword ptr [ebp+0x0C]
        mov      eax, dword ptr [ebp+0x08]
-                        ;; size=12 bbWeight=1 PerfScore 6.25
+                      ;; size=15 bbWeight=1 PerfScore 6.50
 G_M9589_IG02:        ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx edx]
-       xor      edi, edi
        test     eax, eax
        jle      SHORT G_M9589_IG04
-                       ;; size=6 bbWeight=1 PerfScore 1.50
+       mov      edi, dword ptr [ecx+0x14]
+       mov      dword ptr [ebp-0x18], edi
+       mov      dword ptr [ebp-0x14], esi
+       mov      ebx, dword ptr [edx+0x04]
+       mov      dword ptr [ebp-0x10], ebx
+       mov      edi, dword ptr [ebp-0x14]
+       cmp      edi, ebx
+       jae      SHORT G_M9589_IG05
+       movzx    ebx, byte  ptr [edx+edi+0x08]
+       add      ebx, dword ptr [ebp-0x18]
+       mov      dword ptr [ecx+0x14], ebx
+       mov      edi, 1
+       cmp      eax, 1
+       jle      SHORT G_M9589_IG04
+                       ;; size=47 bbWeight=1 PerfScore 17.00
 G_M9589_IG03:        ; bbWeight=4, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref, isz
        lea      ebx, [esi+edi]
-       cmp      ebx, dword ptr [edx+0x04]
+       cmp      ebx, dword ptr [ebp-0x10]
        jae      SHORT G_M9589_IG05
        movzx    ebx, byte  ptr [edx+ebx+0x08]
        add      dword ptr [ecx+0x14], ebx
        inc      edi
        cmp      edi, eax
        jl       SHORT G_M9589_IG03
-                       ;; size=21 bbWeight=4 PerfScore 44.00
+                     ;; size=21 bbWeight=4 PerfScore 40.00
 G_M9589_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[ecx edx]
+       lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      8
-                        ;; size=7 bbWeight=1 PerfScore 4.00
+                       ;; size=10 bbWeight=1 PerfScore 4.50
 G_M9589_IG05:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 52, prolog size 12, PerfScore 55.75, instruction count 25, allocated bytes for code 52 (MethodHash=73fbda8a) for method System.Security.Cryptography.Tests.Sum32Hash:HashCore(ubyte[],int,int):this (Tier0-FullOpts)
+; Total bytes of code 99, prolog size 15, PerfScore 68.00, instruction count 40, allocated bytes for code 99 (MethodHash=73fbda8a) for method System.Security.Cryptography.Tests.Sum32Hash:HashCore(ubyte[],int,int):this (Tier0-FullOpts)
 ; ============================================================
 
  
+49 (+94.23%) : 380658.dasm - MS.Internal.Xml.XPath.XPathScanner:SkipKnownSpace():this (Tier0-FullOpts)
@@ -8,11 +8,11 @@
 ; 1 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  8, 28   )   byref  ->  ecx         this single-def
+;  V00 this         [V00,T00] ( 14, 31.25)   byref  ->  ecx         this single-def
 ;* V01 tmp0         [V01,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V02 tmp1         [V02,T02] (  3, 18   )     ref  ->  eax         class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;  V03 tmp2         [V03,T01] (  4, 20   )     int  ->  edx         "Inline stloc first use temp"
-;  V04 tmp3         [V04,T03] (  2, 16   )  ushort  ->  eax         "Inlining Arg"
+;  V02 tmp1         [V02,T02] (  6, 20.25)     ref  ->  eax         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V03 tmp2         [V03,T01] (  8, 22.50)     int  ->  edx         "Inline stloc first use temp"
+;  V04 tmp3         [V04,T03] (  4, 18   )  ushort  ->  eax         "Inlining Arg"
 ;* V05 tmp4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V06 tmp5         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V07 tmp6         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
@@ -25,41 +25,65 @@
 ;
 ; Lcl frame size = 0
 
-G_M10765_IG01:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+G_M10765_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
-                     ;; size=3 bbWeight=8 PerfScore 10.00
-G_M10765_IG02:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+                      ;; size=3 bbWeight=1 PerfScore 1.25
+G_M10765_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
        ; byrRegs +[ecx]
        mov      eax, gword ptr [ecx+0x08]
        ; gcrRegs +[eax]
        mov      edx, dword ptr [ecx+0x18]
        cmp      dword ptr [eax+0x04], edx
        jbe      SHORT G_M10765_IG04
-                      ;; size=11 bbWeight=8 PerfScore 64.00
-G_M10765_IG03:        ; bbWeight=2, gcrefRegs=00000001 {eax}, byrefRegs=00000002 {ecx}, byref, isz
+                       ;; size=11 bbWeight=1 PerfScore 8.00
+G_M10765_IG03:        ; bbWeight=0.25, gcrefRegs=00000001 {eax}, byrefRegs=00000002 {ecx}, byref, isz
        movzx    eax, word  ptr [eax+2*edx+0x08]
        ; gcrRegs -[eax]
        mov      word  ptr [ecx+0x20], ax
        inc      edx
        mov      dword ptr [ecx+0x18], edx
        jmp      SHORT G_M10765_IG05
-                      ;; size=15 bbWeight=2 PerfScore 12.50
-G_M10765_IG04:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+                      ;; size=15 bbWeight=0.25 PerfScore 1.56
+G_M10765_IG04:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
        mov      word  ptr [ecx+0x20], 0
-       jmp      SHORT G_M10765_IG06
-                       ;; size=8 bbWeight=2 PerfScore 6.00
-G_M10765_IG05:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       jmp      SHORT G_M10765_IG10
+                       ;; size=8 bbWeight=0.25 PerfScore 0.75
+G_M10765_IG05:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
        movzx    eax, word  ptr [ecx+0x20]
        test     byte  ptr [eax+D1FFAB1EH], 1
-       jne      SHORT G_M10765_IG02
+       je       SHORT G_M10765_IG10
+                       ;; size=13 bbWeight=0.50 PerfScore 3.00
+G_M10765_IG06:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       mov      eax, gword ptr [ecx+0x08]
+       ; gcrRegs +[eax]
+       mov      edx, dword ptr [ecx+0x18]
+       cmp      dword ptr [eax+0x04], edx
+       jbe      SHORT G_M10765_IG08
+                       ;; size=11 bbWeight=8 PerfScore 64.00
+G_M10765_IG07:        ; bbWeight=2, gcrefRegs=00000001 {eax}, byrefRegs=00000002 {ecx}, byref, isz
+       movzx    eax, word  ptr [eax+2*edx+0x08]
+       ; gcrRegs -[eax]
+       mov      word  ptr [ecx+0x20], ax
+       lea      eax, [edx+0x01]
+       mov      dword ptr [ecx+0x18], eax
+       jmp      SHORT G_M10765_IG09
+                       ;; size=17 bbWeight=2 PerfScore 13.00
+G_M10765_IG08:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       mov      word  ptr [ecx+0x20], 0
+       jmp      SHORT G_M10765_IG10
+                       ;; size=8 bbWeight=2 PerfScore 6.00
+G_M10765_IG09:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       movzx    eax, word  ptr [ecx+0x20]
+       test     byte  ptr [eax+D1FFAB1EH], 1
+       jne      SHORT G_M10765_IG06
                         ;; size=13 bbWeight=4 PerfScore 24.00
-G_M10765_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M10765_IG10:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; byrRegs -[ecx]
        pop      ebp
        ret      
                        ;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 52, prolog size 3, PerfScore 118.00, instruction count 18, allocated bytes for code 52 (MethodHash=7fdad5f2) for method MS.Internal.Xml.XPath.XPathScanner:SkipKnownSpace():this (Tier0-FullOpts)
+; Total bytes of code 101, prolog size 3, PerfScore 123.06, instruction count 32, allocated bytes for code 101 (MethodHash=7fdad5f2) for method MS.Internal.Xml.XPath.XPathScanner:SkipKnownSpace():this (Tier0-FullOpts)
 ; ============================================================
 
  
+28 (+103.70%) : 432144.dasm - System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (Tier0-FullOpts)
@@ -7,9 +7,9 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5, 11   )     int  ->  eax        
-;  V01 arg1         [V01,T00] (  7, 19   )     int  ->  esi        
-;  V02 loc0         [V02,T02] (  2,  8   )     int  ->  edx        
+;  V00 arg0         [V00,T01] (  7, 13   )     int  ->  registers  
+;  V01 arg1         [V01,T00] ( 11, 23   )     int  ->  registers  
+;  V02 loc0         [V02,T02] (  4, 10   )     int  ->  edx        
 ;
 ; Lcl frame size = 0
 
@@ -22,22 +22,44 @@ G_M22426_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=8 bbWeight=1 PerfScore 2.75
 G_M22426_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        test     esi, esi
-       je       SHORT G_M22426_IG04
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M22426_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       je       SHORT G_M22426_IG08
        xor      edx, edx
        div      edx:eax, esi
        mov      eax, esi
        mov      esi, edx
        test     esi, esi
-       jne      SHORT G_M22426_IG03
-                       ;; size=12 bbWeight=4 PerfScore 108.00
-G_M22426_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+       je       SHORT G_M22426_IG07
+                       ;; size=16 bbWeight=1 PerfScore 28.25
+G_M22426_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       xor      edx, edx
+       div      edx:eax, esi
+       mov      eax, edx
+       test     eax, eax
+       jne      SHORT G_M22426_IG06
+                       ;; size=10 bbWeight=4 PerfScore 107.00
+G_M22426_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       mov      eax, esi
+                       ;; size=2 bbWeight=1 PerfScore 0.25
+G_M22426_IG05:        ; bbWeight=1, epilog, nogc, extend
        pop      esi
        pop      ebp
        ret      
                        ;; size=3 bbWeight=1 PerfScore 2.00
+G_M22426_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      ecx, eax
+       mov      eax, esi
+       mov      esi, ecx
+       jmp      SHORT G_M22426_IG03
+                       ;; size=8 bbWeight=2 PerfScore 5.50
+G_M22426_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, eax
+       jmp      SHORT G_M22426_IG04
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
+G_M22426_IG08:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, eax
+       jmp      SHORT G_M22426_IG04
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 27, prolog size 8, PerfScore 114.00, instruction count 16, allocated bytes for code 27 (MethodHash=f186a865) for method System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (Tier0-FullOpts)
+; Total bytes of code 55, prolog size 8, PerfScore 148.00, instruction count 30, allocated bytes for code 55 (MethodHash=f186a865) for method System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (Tier0-FullOpts)
 ; ============================================================
 
  
  
librariestestsnotieredcompilation.run.windows.x86.Release.mch
-43 (-10.75%) : 285462.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex27417_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -8,16 +8,16 @@
 ; 2 inlinees with PGO data; 4 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T04] ( 15, 27   )     ref  ->  esi         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
-;  V01 arg1         [V01,T19] (  2,  2   )  struct ( 8) [ebp+0x08]  do-not-enreg[S] single-def <System.ReadOnlySpan`1[ushort]>
+;  V00 arg0         [V00,T01] ( 16, 10   )     ref  ->  esi         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
+;  V01 arg1         [V01,T20] (  2,  2   )  struct ( 8) [ebp+0x08]  do-not-enreg[S] single-def <System.ReadOnlySpan`1[ushort]>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
-;  V03 loc1         [V03,T03] (  9, 30   )     int  ->  [ebp-0x10]  spill-single-def
-;  V04 loc2         [V04,T10] (  8,  5   )     int  ->  [ebp-0x14] 
+;  V03 loc1         [V03,T04] (  8,  6.25)     int  ->  [ebp-0x10]  spill-single-def
+;  V04 loc2         [V04,T08] (  8,  5   )     int  ->  [ebp-0x14] 
 ;* V05 loc3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    <System.ReadOnlySpan`1[ushort]>
-;  V06 loc4         [V06,T00] ( 15, 75.50)     int  ->  [ebp-0x18] 
+;  V06 loc4         [V06,T00] (  6,  3.50)     int  ->  edi        
 ;* V07 loc5         [V07    ] (  0,  0   )     int  ->  zero-ref   
-;  V08 loc6         [V08,T07] (  8, 23   )     int  ->  [ebp-0x1C] 
-;  V09 loc7         [V09,T08] (  3, 17   )     int  ->  [ebp-0x20] 
+;  V08 loc6         [V08,T05] (  5,  3   )     int  ->  [ebp-0x18] 
+;* V09 loc7         [V09,T06] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp0         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V11 tmp1         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp2         [V12    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -28,28 +28,29 @@
 ;* V17 tmp7         [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp8         [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp9         [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V20 tmp10        [V20,T12] (  4,  4   )     int  ->  [ebp-0x24]  "Inlining Arg"
-;  V21 tmp11        [V21,T11] (  5,  5   )     int  ->  edi         "Inlining Arg"
+;  V20 tmp10        [V20,T10] (  4,  4   )     int  ->  ebx         "Inlining Arg"
+;  V21 tmp11        [V21,T09] (  5,  5   )     int  ->  edi         "Inlining Arg"
 ;* V22 tmp12        [V22    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V23 tmp13        [V23,T15] (  4,  2   )     int  ->  edx         single-def "Inline stloc first use temp"
-;  V24 tmp14        [V24,T13] (  3,  3   )     ref  ->  ecx         class-hnd single-def "impAppendStmt" <<unknown class>>
-;  V25 tmp15        [V25,T14] (  2,  3   )   byref  ->  [ebp-0x2C]  spill-single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V26 tmp16        [V26,T09] (  6, 12   )     int  ->  [ebp-0x28]  spill-single-def "field V02._length (fldOffset=0x4)" P-INDEP
+;  V23 tmp13        [V23,T17] (  4,  2   )     int  ->  edx         single-def "Inline stloc first use temp"
+;  V24 tmp14        [V24,T12] (  3,  3   )     ref  ->  ecx         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V25 tmp15        [V25,T11] (  2,  1.25)   byref  ->  [ebp-0x20]  spill-single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V26 tmp16        [V26,T07] (  6,  5   )     int  ->  ebx         single-def "field V02._length (fldOffset=0x4)" P-INDEP
 ;* V27 tmp17        [V27    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V28 tmp18        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x4)" P-INDEP
 ;* V29 tmp19        [V29    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp20        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x4)" P-INDEP
 ;* V31 tmp21        [V31    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V32 tmp22        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x4)" P-INDEP
-;  V33 tmp23        [V33,T01] (  3, 48   )     ref  ->  edx         "arr expr"
-;  V34 tmp24        [V34,T02] (  2, 32   )     ref  ->  edx         "arr expr"
-;  V35 tmp25        [V35,T16] (  2,  2   )     ref  ->  ebx         single-def "arr expr"
-;  V36 tmp26        [V36,T17] (  2,  2   )     ref  ->  eax         single-def "arr expr"
-;  V37 tmp27        [V37,T18] (  2,  2   )     ref  ->  ecx         single-def "argument with side effect"
-;  V38 cse0         [V38,T05] (  4, 24.50)     ref  ->  ebx         "CSE - moderate"
-;  V39 cse1         [V39,T06] (  4, 24.50)     int  ->  eax         "CSE - moderate"
+;  V33 tmp23        [V33,T02] (  3,  6   )     ref  ->  edi         "arr expr"
+;  V34 tmp24        [V34,T03] (  2,  4   )     ref  ->  ecx         "arr expr"
+;  V35 tmp25        [V35,T13] (  3,  3   )     ref  ->  eax         single-def "arr expr"
+;  V36 tmp26        [V36,T18] (  2,  2   )     ref  ->  ebx         single-def "arr expr"
+;  V37 tmp27        [V37,T19] (  2,  2   )     ref  ->  ecx         single-def "argument with side effect"
+;  V38 cse0         [V38,T14] (  3,  3   )     ref  ->  [ebp-0x24]  spill-single-def "CSE - moderate"
+;  V39 cse1         [V39,T16] (  2,  0.50)   byref  ->  ecx         "CSE - moderate"
+;  V40 cse2         [V40,T15] (  3,  3   )     int  ->  [ebp-0x1C]  spill-single-def "CSE - moderate"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 24
 
 G_M49824_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -57,31 +58,28 @@ G_M49824_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 32
+       sub      esp, 24
        mov      esi, ecx
        ; gcrRegs +[esi]
                        ;; size=11 bbWeight=1 PerfScore 4.75
 G_M49824_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edi, bword ptr [ebp+0x08]
        ; byrRegs +[edi]
-       mov      bword ptr [ebp-0x2C], edi
+       mov      bword ptr [ebp-0x20], edi
        ; GC ptr vars +{V25}
        mov      ebx, dword ptr [ebp+0x0C]
-       mov      dword ptr [ebp-0x28], ebx
        mov      eax, dword ptr [esi+0x30]
        mov      dword ptr [ebp-0x14], eax
        mov      edx, eax
        mov      dword ptr [ebp-0x10], edx
-       xor      ecx, ecx
-       mov      dword ptr [ebp-0x18], ecx
        cmp      edx, ebx
-       ja       G_M49824_IG20
-       mov      edi, ebx
-       ; byrRegs -[edi]
-       sub      edi, edx
+       ja       G_M49824_IG18
+       mov      ecx, ebx
+       sub      ecx, edx
        jns      SHORT G_M49824_IG04
-                      ;; size=42 bbWeight=1 PerfScore 12.25
-G_M49824_IG03:        ; bbWeight=0.50, gcVars=00004000 {V25}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+                     ;; size=34 bbWeight=1 PerfScore 10.00
+G_M49824_IG03:        ; bbWeight=0.50, gcVars=00000800 {V25}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+       ; byrRegs -[edi]
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
@@ -89,157 +87,151 @@ G_M49824_IG03:        ; bbWeight=0.50, gcVars=00004000 {V25}, gcrefRegs=00000040
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M49824_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       xor      edi, edi
-       mov      dword ptr [ebp-0x1C], edi
-       xor      eax, eax
-       mov      dword ptr [ebp-0x20], eax
-                       ;; size=10 bbWeight=1 PerfScore 2.50
-G_M49824_IG05:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      ebx, gword ptr [esi+0x14]
-       ; gcrRegs +[ebx]
-       mov      ebx, dword ptr [ebx+0x04]
-       ; gcrRegs -[ebx]
-       dec      ebx
-       cmp      ebx, dword ptr [ebp-0x18]
-       jg       SHORT G_M49824_IG07
-                       ;; size=12 bbWeight=8 PerfScore 58.00
-G_M49824_IG06:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       mov      ebx, gword ptr [esi+0x14]
-       ; gcrRegs +[ebx]
-       mov      ebx, dword ptr [ebx+0x04]
-       ; gcrRegs -[ebx]
-       lea      edx, [ebx+ebx]
+G_M49824_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, gword ptr [esi+0x14]
+       ; gcrRegs +[ecx]
+       mov      ecx, dword ptr [ecx+0x04]
+       ; gcrRegs -[ecx]
+       dec      ecx
+       test     ecx, ecx
+       jg       SHORT G_M49824_IG06
+                       ;; size=11 bbWeight=1 PerfScore 5.50
+G_M49824_IG05:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       mov      ecx, gword ptr [esi+0x14]
+       ; gcrRegs +[ecx]
+       mov      ecx, dword ptr [ecx+0x04]
+       ; gcrRegs -[ecx]
+       lea      edx, [ecx+ecx]
        lea      ecx, bword ptr [esi+0x14]
        ; byrRegs +[ecx]
        call     [System.Array:Resize[int](byref,int)]
        ; byrRegs -[ecx]
-                      ;; size=18 bbWeight=2 PerfScore 16.00
-G_M49824_IG07:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      ebx, gword ptr [esi+0x14]
-       ; gcrRegs +[ebx]
-       mov      edx, ebx
-       ; gcrRegs +[edx]
-       mov      eax, dword ptr [edx+0x04]
-       mov      ecx, dword ptr [ebp-0x18]
-       cmp      ecx, eax
-       jae      G_M49824_IG19
-       mov      edi, dword ptr [ebp-0x20]
-       mov      dword ptr [edx+4*ecx+0x08], edi
-       inc      ecx
-       mov      edx, ebx
-       cmp      ecx, eax
-       jae      G_M49824_IG19
-       mov      edi, dword ptr [ebp-0x10]
-       mov      dword ptr [edx+4*ecx+0x08], edi
-       inc      ecx
-       mov      dword ptr [ebp-0x20], edi
-       mov      edi, dword ptr [ebp-0x1C]
-       inc      edi
-       mov      dword ptr [ebp-0x1C], edi
-       mov      edx, dword ptr [ebp-0x28]
-       ; gcrRegs -[edx]
-       cmp      dword ptr [ebp-0x10], edx
-       jae      SHORT G_M49824_IG09
-                       ;; size=63 bbWeight=8 PerfScore 158.00
-G_M49824_IG08:        ; bbWeight=2, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, bword ptr [ebp-0x2C]
-       ; byrRegs +[edx]
-       mov      edi, dword ptr [ebp-0x10]
-       cmp      word  ptr [edx+2*edi], 10
-       jne      SHORT G_M49824_IG11
-                       ;; size=13 bbWeight=2 PerfScore 12.00
-G_M49824_IG09:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ebx]
-       ; byrRegs -[edx]
-       mov      edi, dword ptr [ebp-0x1C]
-       test     edi, edi
-       mov      dword ptr [ebp-0x18], ecx
-       mov      dword ptr [ebp-0x1C], edi
-       jle      SHORT G_M49824_IG05
-                       ;; size=13 bbWeight=4 PerfScore 17.00
-G_M49824_IG10:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+                       ;; size=18 bbWeight=0.25 PerfScore 2.00
+G_M49824_IG06:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, gword ptr [esi+0x14]
+       ; gcrRegs +[ecx]
+       mov      gword ptr [ebp-0x24], ecx
+       ; GC ptr vars +{V38}
+       mov      edi, ecx
+       ; gcrRegs +[edi]
+       mov      ecx, dword ptr [edi+0x04]
+       ; gcrRegs -[ecx]
+       mov      dword ptr [ebp-0x1C], ecx
+       test     ecx, ecx
+       je       G_M49824_IG17
+       xor      ecx, ecx
+       mov      dword ptr [edi+0x08], ecx
+       mov      ecx, gword ptr [ebp-0x24]
+       ; gcrRegs +[ecx]
+       cmp      dword ptr [ebp-0x1C], 1
+       jbe      G_M49824_IG17
+       mov      edx, dword ptr [ebp-0x10]
+       mov      dword ptr [ecx+0x0C], edx
+       mov      edi, 2
+       ; gcrRegs -[edi]
+       mov      dword ptr [ebp-0x18], 1
+       cmp      edx, ebx
+       jae      SHORT G_M49824_IG11
+                       ;; size=62 bbWeight=1 PerfScore 17.25
+G_M49824_IG07:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[ecx]
+       ; GC ptr vars -{V38}
+       mov      ecx, bword ptr [ebp-0x20]
+       ; byrRegs +[ecx]
+       cmp      word  ptr [ecx+2*edx], 10
+       jne      SHORT G_M49824_IG09
+                       ;; size=10 bbWeight=0.25 PerfScore 1.25
+G_M49824_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; byrRegs -[ecx]
        ; GC ptr vars -{V25}
-       jmp      SHORT G_M49824_IG13
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M49824_IG11:        ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[ebx]
-       mov      edi, dword ptr [ebp-0x1C]
-       dec      edi
-       js       G_M49824_IG17
+       mov      edx, dword ptr [ebp-0x10]
+       jmp      SHORT G_M49824_IG11
+                       ;; size=5 bbWeight=0.50 PerfScore 1.50
+G_M49824_IG09:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, dword ptr [ebp-0x18]
        dec      ecx
-       cmp      ecx, eax
-       jae      G_M49824_IG19
...
  
-40 (-10.13%) : 110348.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.operate008a.operate008a.Test:Test3a():ubyte (FullOpts)
@@ -9,31 +9,31 @@
 ; Final local variable assignments
 ;
 ;* V00 loc0         [V00    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
-;  V01 loc1         [V01,T09] (  2,  5   )     ref  ->  ebx         class-hnd exact single-def <<unknown class>>
-;  V02 loc2         [V02,T02] (  5, 17   )     int  ->  [ebp-0x10] 
-;  V03 loc3         [V03    ] (  2,  8   )  struct ( 4) [ebp-0x14]  do-not-enreg[XS] must-init addr-exposed <System.Nullable`1[ubyte]>
-;  V04 loc4         [V04,T07] (  2,  8   )     ref  ->  [ebp-0x20]  class-hnd exact spill-single-def <<unknown class>>
+;  V01 loc1         [V01,T08] (  2,  2   )     ref  ->  eax         class-hnd exact single-def <<unknown class>>
+;* V02 loc2         [V02,T05] (  0,  0   )     int  ->  zero-ref   
+;  V03 loc3         [V03    ] (  2,  2   )  struct ( 4) [ebp-0x10]  do-not-enreg[XS] must-init addr-exposed <System.Nullable`1[ubyte]>
+;  V04 loc4         [V04,T06] (  2,  2   )     ref  ->  ebx         class-hnd exact <<unknown class>>
 ;* V05 loc5         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Object>
-;  V06 tmp0         [V06,T03] (  4, 16   )     ref  ->  [ebp-0x24]  class-hnd exact spill-single-def "dup spill" <<unknown class>>
-;* V07 tmp1         [V07,T11] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <<unknown class>>
+;  V06 tmp0         [V06,T02] (  4,  4   )     ref  ->  esi         class-hnd exact "dup spill" <<unknown class>>
+;* V07 tmp1         [V07,T10] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <<unknown class>>
 ;* V08 tmp2         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Strict ordering of exceptions for Array store" <Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo>
 ;* V09 tmp3         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Strict ordering of exceptions for Array store" <Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo>
-;  V10 tmp4         [V10,T04] (  4, 16   )     ref  ->  eax         class-hnd exact "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo>
-;  V11 tmp5         [V11,T05] (  4, 16   )     ref  ->  eax         class-hnd exact "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo>
+;  V10 tmp4         [V10,T03] (  4,  4   )     ref  ->  eax         class-hnd exact "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo>
+;  V11 tmp5         [V11,T04] (  4,  4   )     ref  ->  eax         class-hnd exact "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo>
 ;* V12 tmp6         [V12,T12] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V13 tmp7         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V14 tmp8         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V15 tmp9         [V15,T00] (  7, 28   )     ref  ->  [ebp-0x28]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.CSharpBinaryOperationBinder>
-;  V16 tmp10        [V16    ] (  3, 12   )  struct ( 8) [ebp-0x1C]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.RuntimeBinder>
+;  V15 tmp9         [V15,T00] (  7,  7   )     ref  ->  [ebp-0x1C]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.CSharpBinaryOperationBinder>
+;  V16 tmp10        [V16    ] (  3,  3   )  struct ( 8) [ebp-0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.RuntimeBinder>
 ;* V17 tmp11        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V18 tmp12        [V18,T10] (  2,  4   )     ref  ->  eax         class-hnd "Inline return value spill temp" <<unknown class>>
-;  V19 tmp13        [V19    ] (  2,  8   )   ubyte  ->  [ebp-0x14]  do-not-enreg[X] addr-exposed "field V03.hasValue (fldOffset=0x0)" P-DEP
-;  V20 tmp14        [V20    ] (  2,  8   )   ubyte  ->  [ebp-0x13]  do-not-enreg[X] addr-exposed "field V03.value (fldOffset=0x1)" P-DEP
-;  V21 tmp15        [V21,T08] (  2,  8   )     ref  ->  ecx         "argument with side effect"
-;  V22 tmp16        [V22,T01] (  3, 24   )     ref  ->  eax         "argument with side effect"
-;  V23 cse0         [V23,T06] (  3, 12   )     ref  ->  edx         "CSE - moderate"
+;  V18 tmp12        [V18,T09] (  2,  1   )     ref  ->  eax         class-hnd "Inline return value spill temp" <<unknown class>>
+;  V19 tmp13        [V19    ] (  2,  2   )   ubyte  ->  [ebp-0x10]  do-not-enreg[X] addr-exposed "field V03.hasValue (fldOffset=0x0)" P-DEP
+;  V20 tmp14        [V20    ] (  2,  2   )   ubyte  ->  [ebp-0x0F]  do-not-enreg[X] addr-exposed "field V03.value (fldOffset=0x1)" P-DEP
+;  V21 tmp15        [V21,T07] (  2,  2   )     ref  ->  ecx         "argument with side effect"
+;  V22 tmp16        [V22,T01] (  3,  6   )     ref  ->  eax         "argument with side effect"
+;  V23 cse0         [V23,T11] (  3,  3   )     ref  ->  edx         "CSE - moderate"
 ;
-; Lcl frame size = 28
+; Lcl frame size = 16
 
 G_M46503_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -41,120 +41,102 @@ G_M46503_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 28
+       sub      esp, 16
        xor      eax, eax
-       mov      dword ptr [ebp-0x14], eax
-       mov      dword ptr [ebp-0x1C], eax
+       mov      dword ptr [ebp-0x10], eax
        mov      dword ptr [ebp-0x18], eax
+       mov      dword ptr [ebp-0x14], eax
                        ;; size=20 bbWeight=1 PerfScore 7.75
 G_M46503_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, 0xD1FFAB1E      ; <unknown class>
        mov      edx, 1
        call     CORINFO_HELP_NEWARR_1_VC
        ; gcrRegs +[eax]
-       mov      ebx, eax
-       ; gcrRegs +[ebx]
-       xor      eax, eax
-       ; gcrRegs -[eax]
-       xor      esi, esi
-                       ;; size=21 bbWeight=1 PerfScore 2.25
-G_M46503_IG03:        ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
-       mov      dword ptr [ebp-0x10], esi
-       mov      dx, word  ptr [ebx+2*esi+0x08]
-       mov      word  ptr [ebp-0x14], dx
-       lea      edx, [ebp-0x14]
+       mov      dx, word  ptr [eax+0x08]
+       mov      word  ptr [ebp-0x10], dx
+       lea      edx, [ebp-0x10]
        mov      ecx, 0xD1FFAB1E      ; System.Nullable`1[ubyte]
        call     CORINFO_HELP_BOX_NULLABLE
-       ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x20], eax
-       ; GC ptr vars +{V04}
-       cmp      gword ptr [D1FFAB1EH], 0      ; data for <unknown class>:<unknown field>
-       jne      G_M46503_IG06
-                       ;; size=41 bbWeight=4 PerfScore 43.00
-G_M46503_IG04:        ; bbWeight=2, gcVars=00000080 {V04}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref
+       mov      ebx, eax
+       ; gcrRegs +[ebx]
+       cmp      gword ptr [D1FFAB1EH], 0
+       jne      G_M46503_IG05
+                       ;; size=51 bbWeight=1 PerfScore 10.50
+G_M46503_IG03:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        mov      ecx, 0xD1FFAB1E      ; <unknown class>
        mov      edx, 2
        call     CORINFO_HELP_NEWARR_1_OBJ
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x24], eax
-       ; GC ptr vars +{V06}
+       mov      esi, eax
+       ; gcrRegs +[esi]
        mov      ecx, 0xD1FFAB1E      ; Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo
        call     CORINFO_HELP_NEWSFAST
        mov      dword ptr [eax+0x08], 3
        xor      edx, edx
        ; gcrRegs +[edx]
        mov      gword ptr [eax+0x04], edx
-       mov      ecx, gword ptr [ebp-0x24]
-       ; gcrRegs +[ecx]
-       lea      edx, bword ptr [ecx+0x08]
+       lea      edx, bword ptr [esi+0x08]
        ; gcrRegs -[edx]
        ; byrRegs +[edx]
        call     CORINFO_HELP_ASSIGN_REF_EAX
-       ; gcrRegs -[eax ecx]
+       ; gcrRegs -[eax]
        ; byrRegs -[edx]
        mov      ecx, 0xD1FFAB1E      ; Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[eax]
        xor      edx, edx
        mov      dword ptr [eax+0x08], edx
-                        ;; size=66 bbWeight=2 PerfScore 22.00
-G_M46503_IG05:        ; bbWeight=2, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, byref
+                       ;; size=62 bbWeight=0.50 PerfScore 4.62
+G_M46503_IG04:        ; bbWeight=0.50, gcrefRegs=00000049 {eax ebx esi}, byrefRegs=00000000 {}, byref
        mov      gword ptr [eax+0x04], edx
-       mov      ecx, gword ptr [ebp-0x24]
-       ; gcrRegs +[ecx]
-       lea      edx, bword ptr [ecx+0x0C]
+       lea      edx, bword ptr [esi+0x0C]
        ; byrRegs +[edx]
        call     CORINFO_HELP_ASSIGN_REF_EAX
-       ; gcrRegs -[eax ecx]
+       ; gcrRegs -[eax]
        ; byrRegs -[edx]
        mov      ecx, 0xD1FFAB1E      ; Microsoft.CSharp.RuntimeBinder.CSharpBinaryOperationBinder
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x28], eax
+       mov      edi, eax
+       ; gcrRegs +[edi]
+       mov      gword ptr [ebp-0x1C], edi
        ; GC ptr vars +{V15}
        mov      ecx, 36
        call     [<unknown method>]
        ; gcrRegs -[eax]
        test     eax, eax
-       je       G_M46503_IG09
-       mov      eax, gword ptr [ebp-0x28]
-       ; gcrRegs +[eax]
-       mov      dword ptr [eax+0x08], 36
-       mov      dword ptr [eax+0x14], 2
-       mov      gword ptr [eax+0x10], 0xD1FFAB1E
-       mov      ecx, gword ptr [ebp-0x24]
+       je       G_M46503_IG07
+       mov      dword ptr [edi+0x08], 36
+       mov      dword ptr [edi+0x14], 2
+       mov      gword ptr [edi+0x10], 0xD1FFAB1E
+       mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E      ; <unknown method>
-       ; GC ptr vars -{V06}
        call     [<unknown method>]
-       ; gcrRegs -[ecx]
-       mov      ecx, gword ptr [ebp-0x28]
-       ; gcrRegs +[ecx]
-       lea      edx, bword ptr [ecx+0x0C]
+       ; gcrRegs -[ecx esi] +[eax]
+       lea      edx, bword ptr [edi+0x0C]
        ; byrRegs +[edx]
        call     CORINFO_HELP_ASSIGN_REF_EAX
-       ; gcrRegs -[eax ecx]
+       ; gcrRegs -[eax]
        ; byrRegs -[edx]
-       xor      edx, edx
-       mov      dword ptr [ebp-0x1C], edx
-       mov      dword ptr [ebp-0x18], edx
+       xor      ecx, ecx
+       mov      dword ptr [ebp-0x18], ecx
+       mov      dword ptr [ebp-0x14], ecx
        push     0
-       lea      ecx, [ebp-0x1C]
+       lea      ecx, [ebp-0x18]
        mov      edx, 0xD1FFAB1E
        call     [<unknown method>]
-       mov      edx, gword ptr [ebp-0x28]
-       ; gcrRegs +[edx]
-       lea      edi, bword ptr [edx+0x18]
+       add      edi, 24
+       ; gcrRegs -[edi]
        ; byrRegs +[edi]
-       lea      esi, bword ptr [ebp-0x1C]
+       lea      esi, bword ptr [ebp-0x18]
        ; byrRegs +[esi]
        call     CORINFO_HELP_ASSIGN_BYREF
        movsd    
-       mov      ecx, edx
+       mov      ecx, gword ptr [ebp-0x1C]
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E      ; <unknown method>
-       ; gcrRegs -[edx]
        ; GC ptr vars -{V15}
        call     [Microsoft.CSharp.RuntimeBinder.BinderEquivalence:TryGetExisting[System.__Canon](System.__Canon):System.__Canon]
        ; gcrRegs -[ecx] +[eax]
@@ -164,32 +146,25 @@ G_M46503_IG05:        ; bbWeight=2, gcrefRegs=00000009 {eax ebx}, byrefRegs=0000
        mov      edx, 0xD1FFAB1E      ; <unknown class>
        call     [System.Runtime.CompilerServices.CallSite`1[System.__Canon]:Create(System.Runtime.CompilerServices.CallSiteBinder):System.Runtime.CompilerServices.CallSite`1[System.__Canon]]
        ; gcrRegs -[ecx]
-       mov      edx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
+       mov      edx, 0xD1FFAB1E      ; static handle
        call     CORINFO_HELP_ASSIGN_REF_EAX
        ; gcrRegs -[eax]
-                      ;; size=170 bbWeight=2 PerfScore 80.50
-G_M46503_IG06:        ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
-       mov      edx, gword ptr [D1FFAB1EH]      ; static handle
+                      ;; size=160 bbWeight=0.50 PerfScore 18.12
+G_M46503_IG05:        ; bbWeight=1, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
+       mov      edx, gword ptr [D1FFAB1EH]
        ; gcrRegs +[edx]
        mov      eax, gword ptr [edx+0x0C]
        ; gcrRegs +[eax]
        push     0
-       push     gword ptr [ebp-0x20]
+       push     ebx
        mov      ecx, gword ptr [eax+0x04]
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V04}
        call     [eax+0x0C]<unknown method>
-       ; gcrRegs -[ecx edx]
-       mov      esi, dword ptr [ebp-0x10]
-       inc      esi
-       cmp      esi, 1
-       jl       G_M46503_IG03
-                       ;; size=33 bbWeight=4 PerfScore 54.00
-G_M46503_IG07:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[eax ebx]
+       ; gcrRegs -[ecx edx ebx]
        mov      eax, 1
-                       ;; size=5 bbWeight=1 PerfScore 0.25
-G_M46503_IG08:        ; bbWeight=1, epilog, nogc, extend
+       ; gcrRegs -[eax]
+                       ;; size=23 bbWeight=1 PerfScore 11.25
+G_M46503_IG06:        ; bbWeight=1, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
...
  
-42 (-9.88%) : 294265.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29187_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -8,59 +8,59 @@
 ; 1 inlinees with PGO data; 4 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] ( 28,131.50)     ref  ->  esi         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
+;  V00 arg0         [V00,T00] ( 28, 23   )     ref  ->  esi         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
 ;  V01 arg1         [V01,T31] (  1,  1   )  struct ( 8) [ebp+0x08]  do-not-enreg[S] single-def <System.ReadOnlySpan`1[ushort]>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
-;  V03 loc1         [V03,T02] (  9, 51   )     int  ->  edi         single-def
-;  V04 loc2         [V04,T30] (  2,  2   )     int  ->  edi         single-def
+;  V03 loc1         [V03,T01] (  9,  9   )     int  ->  edi         single-def
+;  V04 loc2         [V04,T24] (  2,  2   )     int  ->  edi         single-def
 ;* V05 loc3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ushort]>
-;  V06 loc4         [V06,T00] ( 26,201   )     int  ->  ebx        
+;* V06 loc4         [V06,T02] (  0,  0   )     int  ->  zero-ref   
 ;* V07 loc5         [V07    ] (  0,  0   )     int  ->  zero-ref   
 ;* V08 loc6         [V08    ] (  0,  0   )     int  ->  zero-ref   
-;* V09 loc7         [V09,T19] (  0,  0   )     int  ->  zero-ref   
-;  V10 loc8         [V10,T09] (  4, 32   )     int  ->  [ebp-0x10] 
-;* V11 loc9         [V11,T25] (  0,  0   )     int  ->  zero-ref   
-;  V12 loc10        [V12,T22] (  2, 16   )     int  ->  [ebp-0x14]  spill-single-def
+;* V09 loc7         [V09,T25] (  0,  0   )     int  ->  zero-ref   
+;* V10 loc8         [V10,T26] (  0,  0   )     int  ->  zero-ref   
+;* V11 loc9         [V11,T32] (  0,  0   )     int  ->  zero-ref   
+;  V12 loc10        [V12,T27] (  2,  2   )     int  ->  ebx        
 ;* V13 loc11        [V13    ] (  0,  0   )     int  ->  zero-ref   
 ;* V14 loc12        [V14    ] (  0,  0   )     int  ->  zero-ref   
-;  V15 tmp0         [V15,T03] (  3, 48   )     ref  ->  ecx         class-hnd "impAppendStmt" <<unknown class>>
-;  V16 tmp1         [V16,T15] (  2, 32   )     int  ->  [ebp-0x18]  spill-single-def "Strict ordering of exceptions for Array store"
+;  V15 tmp0         [V15,T03] (  3,  6   )     ref  ->  ecx         class-hnd "impAppendStmt" <<unknown class>>
+;  V16 tmp1         [V16,T17] (  2,  4   )     int  ->  ebx         "Strict ordering of exceptions for Array store"
 ;* V17 tmp2         [V17    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V18 tmp3         [V18    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp4         [V19    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp5         [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp6         [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V22 tmp7         [V22,T23] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V23 tmp8         [V23,T16] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V22 tmp7         [V22,T28] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V23 tmp8         [V23,T18] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp9         [V24    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V25 tmp10        [V25,T10] (  4, 32   )     int  ->  edx         "Inline stloc first use temp"
-;  V26 tmp11        [V26,T04] (  3, 48   )     ref  ->  ecx         class-hnd "impAppendStmt" <<unknown class>>
-;* V27 tmp12        [V27,T24] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V28 tmp13        [V28,T21] (  2, 18   )     int  ->  edi         "Inlining Arg"
+;  V25 tmp10        [V25,T10] (  4,  4   )     int  ->  edx         "Inline stloc first use temp"
+;  V26 tmp11        [V26,T04] (  3,  6   )     ref  ->  ecx         class-hnd "impAppendStmt" <<unknown class>>
+;* V27 tmp12        [V27,T29] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V28 tmp13        [V28,T19] (  2,  4   )     int  ->  edi         "Inlining Arg"
 ;* V29 tmp14        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V30 tmp15        [V30,T27] (  4,  4   )     int  ->  edx         single-def "Inline stloc first use temp"
-;  V31 tmp16        [V31,T26] (  3,  6   )     ref  ->  ecx         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V30 tmp15        [V30,T11] (  4,  4   )     int  ->  edx         single-def "Inline stloc first use temp"
+;  V31 tmp16        [V31,T05] (  3,  6   )     ref  ->  ecx         class-hnd single-def "impAppendStmt" <<unknown class>>
 ;* V32 tmp17        [V32    ] (  0,  0   )   byref  ->  zero-ref    "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V33 tmp18        [V33,T29] (  3,  3   )     int  ->  ecx         single-def "field V02._length (fldOffset=0x4)" P-INDEP
+;  V33 tmp18        [V33,T22] (  3,  3   )     int  ->  ecx         single-def "field V02._length (fldOffset=0x4)" P-INDEP
 ;* V34 tmp19        [V34    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V35 tmp20        [V35    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x4)" P-INDEP
 ;* V36 tmp21        [V36    ] (  0,  0   )   byref  ->  zero-ref    "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V37 tmp22        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x4)" P-INDEP
-;  V38 tmp23        [V38,T12] (  2, 32   )     ref  ->  ecx         "arr expr"
-;  V39 tmp24        [V39,T13] (  2, 32   )     ref  ->  eax         "arr expr"
-;  V40 tmp25        [V40,T05] (  3, 48   )     ref  ->  edx         "arr expr"
-;  V41 tmp26        [V41,T06] (  3, 48   )     ref  ->  ecx         "arr expr"
-;  V42 tmp27        [V42,T14] (  2, 32   )     ref  ->  ecx         "argument with side effect"
-;  V43 tmp28        [V43,T07] (  3, 48   )     ref  ->  ecx         "arr expr"
-;  V44 tmp29        [V44,T28] (  2,  4   )     ref  ->  ecx         single-def "argument with side effect"
-;  V45 cse0         [V45,T08] (  6, 42   )     ref  ->  edx         "CSE - moderate"
-;  V46 cse1         [V46,T17] (  3, 24   )     ref  ->  [ebp-0x24]  spill-single-def "CSE - conservative"
-;  V47 cse2         [V47,T20] (  3, 24   )     int  ->  [ebp-0x1C]  spill-single-def "CSE - conservative"
-;  V48 cse3         [V48,T18] (  3, 24   )     ref  ->  ecx         "CSE - conservative"
-;  V49 cse4         [V49,T11] (  4, 32   )     int  ->  [ebp-0x20]  spill-single-def "CSE - moderate"
-;  TEMP_01                                     int  ->  [ebp-0x28]
+;  V38 tmp23        [V38,T13] (  2,  4   )     ref  ->  ecx         "arr expr"
+;  V39 tmp24        [V39,T14] (  2,  4   )     ref  ->  ecx         "arr expr"
+;  V40 tmp25        [V40,T06] (  3,  6   )     ref  ->  eax         "arr expr"
+;  V41 tmp26        [V41,T07] (  3,  6   )     ref  ->  ecx         "arr expr"
+;  V42 tmp27        [V42,T15] (  2,  4   )     ref  ->  ecx         "argument with side effect"
+;  V43 tmp28        [V43,T08] (  3,  6   )     ref  ->  ecx         "arr expr"
+;  V44 tmp29        [V44,T16] (  2,  4   )     ref  ->  ecx         single-def "argument with side effect"
+;  V45 cse0         [V45,T09] (  6,  5.25)     ref  ->  edx         "CSE - conservative"
+;  V46 cse1         [V46,T20] (  3,  3   )     ref  ->  [ebp-0x14]  spill-single-def "CSE - conservative"
+;  V47 cse2         [V47,T23] (  3,  3   )     int  ->  [ebp-0x10]  spill-single-def "CSE - conservative"
+;  V48 cse3         [V48,T21] (  3,  3   )     ref  ->  ecx         "CSE - conservative"
+;  V49 cse4         [V49,T30] (  6,  1.50)   byref  ->  ecx         multi-def "CSE - conservative"
+;  V50 cse5         [V50,T12] (  4,  4   )     int  ->  eax         "CSE - conservative"
 ;
-; Lcl frame size = 28
+; Lcl frame size = 8
 
 G_M39362_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -68,19 +68,18 @@ G_M39362_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 28
+       sub      esp, 8
        mov      esi, ecx
        ; gcrRegs +[esi]
                        ;; size=11 bbWeight=1 PerfScore 4.75
 G_M39362_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, dword ptr [ebp+0x0C]
        mov      edi, dword ptr [esi+0x30]
-       xor      ebx, ebx
        cmp      edi, ecx
        ja       G_M39362_IG17
        sub      ecx, edi
        jns      SHORT G_M39362_IG04
-                      ;; size=20 bbWeight=1 PerfScore 5.75
+                      ;; size=18 bbWeight=1 PerfScore 5.50
 G_M39362_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
@@ -89,18 +88,16 @@ G_M39362_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M39362_IG04:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       xor      eax, eax
-       mov      dword ptr [ebp-0x10], eax
+G_M39362_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [esi+0x14]
        ; gcrRegs +[edx]
        mov      edx, dword ptr [edx+0x04]
        ; gcrRegs -[edx]
        add      edx, -2
-       cmp      edx, ebx
+       test     edx, edx
        jg       SHORT G_M39362_IG06
-                       ;; size=18 bbWeight=8 PerfScore 54.00
-G_M39362_IG05:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+                       ;; size=13 bbWeight=1 PerfScore 5.50
+G_M39362_IG05:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      edx, gword ptr [esi+0x14]
        ; gcrRegs +[edx]
        mov      edx, dword ptr [edx+0x04]
@@ -110,55 +107,45 @@ G_M39362_IG05:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; byrRegs +[ecx]
        call     [System.Array:Resize[int](byref,int)]
        ; byrRegs -[ecx]
-                      ;; size=17 bbWeight=2 PerfScore 15.50
-G_M39362_IG06:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=17 bbWeight=0.25 PerfScore 1.94
+G_M39362_IG06:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [esi+0x14]
        ; gcrRegs +[edx]
        mov      ecx, edx
        ; gcrRegs +[ecx]
        mov      eax, gword ptr [esi+0x18]
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x24], eax
+       mov      gword ptr [ebp-0x14], eax
        ; GC ptr vars +{V46}
-       mov      eax, dword ptr [eax+0x04]
-       ; gcrRegs -[eax]
-       mov      dword ptr [ebp-0x28], eax
+       mov      ebx, dword ptr [eax+0x04]
        mov      eax, dword ptr [esi+0x3C]
-       mov      dword ptr [ebp-0x1C], eax
-       mov      eax, dword ptr [ebp-0x28]
-       sub      eax, dword ptr [ebp-0x1C]
-       mov      dword ptr [ebp-0x18], eax
+       ; gcrRegs -[eax]
+       mov      dword ptr [ebp-0x10], eax
+       sub      ebx, eax
        mov      eax, dword ptr [ecx+0x04]
-       mov      dword ptr [ebp-0x20], eax
-       cmp      ebx, eax
-       jae      G_M39362_IG16
-       mov      eax, dword ptr [ebp-0x18]
-       mov      dword ptr [ecx+4*ebx+0x08], eax
-       inc      ebx
+       test     eax, eax
+       je       G_M39362_IG16
+       mov      dword ptr [ecx+0x08], ebx
        mov      ecx, edx
-       cmp      ebx, dword ptr [ebp-0x20]
-       jae      G_M39362_IG16
-       mov      eax, dword ptr [ebp-0x10]
-       mov      dword ptr [ecx+4*ebx+0x08], eax
-       inc      ebx
-       mov      eax, edx
+       cmp      eax, 1
+       jbe      G_M39362_IG16
+       xor      ebx, ebx
+       mov      dword ptr [ecx+0x0C], ebx
+       mov      ecx, edx
+       cmp      eax, 2
+       jbe      G_M39362_IG16
+       mov      dword ptr [ecx+0x10], edi
+       mov      eax, gword ptr [ebp-0x14]
        ; gcrRegs +[eax]
-       cmp      ebx, dword ptr [ebp-0x20]
-       jae      G_M39362_IG16
-       mov      dword ptr [eax+4*ebx+0x08], edi
-       inc      ebx
-       mov      dword ptr [ebp-0x10], edi
-       mov      ecx, gword ptr [ebp-0x24]
-       mov      ecx, dword ptr [ecx+0x04]
-       ; gcrRegs -[ecx]
-       sub      ecx, dword ptr [ebp-0x1C]
-       mov      dword ptr [ebp-0x14], ecx
+       mov      ebx, dword ptr [eax+0x04]
+       sub      ebx, dword ptr [ebp-0x10]
        mov      ecx, dword ptr [edx+0x04]
+       ; gcrRegs -[ecx]
        dec      ecx
-       cmp      ecx, ebx
+       cmp      ecx, 3
        jg       SHORT G_M39362_IG08
-                      ;; size=112 bbWeight=8 PerfScore 338.00
-G_M39362_IG07:        ; bbWeight=2, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
+                       ;; size=84 bbWeight=1 PerfScore 28.50
+G_M39362_IG07:        ; bbWeight=0.25, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        ; GC ptr vars -{V46}
        mov      edx, dword ptr [edx+0x04]
@@ -168,33 +155,29 @@ G_M39362_IG07:        ; bbWeight=2, gcrefRegs=00000044 {edx esi}, byrefRegs=0000
        ; byrRegs +[ecx]
        call     [System.Array:Resize[int](byref,int)]
        ; byrRegs -[ecx]
-                      ;; size=14 bbWeight=2 PerfScore 11.50
-G_M39362_IG08:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=14 bbWeight=0.25 PerfScore 1.44
+G_M39362_IG08:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [esi+0x14]
        ; gcrRegs +[ecx]
-       mov      edx, ecx
-       ; gcrRegs +[edx]
-       cmp      ebx, dword ptr [edx+0x04]
-       jae      G_M39362_IG16
-       mov      dword ptr [edx+4*ebx+0x08], edi
-       inc      ebx
-       cmp      ebx, dword ptr [ecx+0x04]
-       jae      G_M39362_IG16
-       mov      edx, dword ptr [ebp-0x14]
-       ; gcrRegs -[edx]
-       mov      dword ptr [ecx+4*ebx+0x08], edx
-       inc      ebx
+       mov      eax, ecx
+       ; gcrRegs +[eax]
+       cmp      dword ptr [eax+0x04], 3
+       jbe      G_M39362_IG16
+       mov      dword ptr [eax+0x14], edi
+       cmp      dword ptr [ecx+0x04], 4
+       jbe      G_M39362_IG16
+       mov      dword ptr [ecx+0x18], ebx
        cmp      dword ptr [esi+0x3C], 0
...
  
+45 (+91.84%) : 5083.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList1Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive
@@ -9,51 +9,85 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T02] (  3,  3   )     ref  ->  ecx         class-hnd single-def <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
-;  V01 loc0         [V01,T00] (  7, 20   )     ref  ->  ecx         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
-;  V02 loc1         [V02,T01] (  3,  6   )  ushort  ->  eax        
+;  V01 loc0         [V01,T00] ( 12, 22.25)     ref  ->  ecx         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
+;  V02 loc1         [V02,T01] (  6,  6.75)  ushort  ->  esi        
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive>
 ;* V04 tmp0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <<unknown class>>
-;  V05 tmp1         [V05,T03] (  2,  4   )     ref  ->  eax         "field V03._node (fldOffset=0x0)" P-INDEP
+;  V05 tmp1         [V05,T04] (  4,  4.50)     ref  ->  edx         "field V03._node (fldOffset=0x0)" P-INDEP
+;  V06 cse0         [V06,T03] (  3,  5   )     ref  ->  eax         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
 G_M207_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
-                     ;; size=3 bbWeight=1 PerfScore 1.25
+       push     esi
+                       ;; size=4 bbWeight=1 PerfScore 2.25
 G_M207_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx]
        jmp      SHORT G_M207_IG04
                        ;; size=2 bbWeight=1 PerfScore 2.00
-G_M207_IG03:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, gword ptr [ecx+0x08]
+G_M207_IG03:        ; bbWeight=0.25, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[eax]
-       movzx    eax, word  ptr [eax+0x08]
-       ; gcrRegs -[eax]
-       lea      edx, [eax-0x2164]
+       mov      edx, gword ptr [ecx+0x08]
+       ; gcrRegs +[edx]
+       movzx    esi, word  ptr [edx+0x08]
+       lea      edx, [esi-0x2164]
+       ; gcrRegs -[edx]
        cmp      edx, 2
-       jbe      SHORT G_M207_IG06
-       cmp      eax, 0x2168
-       je       SHORT G_M207_IG06
+       jbe      SHORT G_M207_IG10
+       cmp      esi, 0x2168
+       je       SHORT G_M207_IG10
        mov      ecx, gword ptr [ecx+0x04]
-                       ;; size=28 bbWeight=2 PerfScore 18.00
-G_M207_IG04:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M207_IG08
+                       ;; size=31 bbWeight=0.25 PerfScore 2.75
+G_M207_IG04:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax]
        test     ecx, ecx
-       je       SHORT G_M207_IG06
-                       ;; size=4 bbWeight=8 PerfScore 10.00
-G_M207_IG05:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-       cmp      ecx, gword ptr [D1FFAB1EH]      ; static handle
+       je       SHORT G_M207_IG10
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M207_IG05:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, gword ptr [D1FFAB1EH]
+       ; gcrRegs +[eax]
+       cmp      ecx, eax
        jne      SHORT G_M207_IG03
-                        ;; size=8 bbWeight=4 PerfScore 16.00
-G_M207_IG06:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+                     ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M207_IG06:        ; bbWeight=0.06, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax]
+       jmp      SHORT G_M207_IG10
+                       ;; size=2 bbWeight=0.06 PerfScore 0.12
+G_M207_IG07:        ; bbWeight=2, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[eax]
+       mov      edx, gword ptr [ecx+0x08]
+       ; gcrRegs +[edx]
+       movzx    esi, word  ptr [edx+0x08]
+       lea      edx, [esi-0x2164]
+       ; gcrRegs -[edx]
+       cmp      edx, 2
+       jbe      SHORT G_M207_IG10
+       cmp      esi, 0x2168
+       je       SHORT G_M207_IG10
+       mov      ecx, gword ptr [ecx+0x04]
+                       ;; size=29 bbWeight=2 PerfScore 18.00
+G_M207_IG08:        ; bbWeight=8, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref, isz
+       test     ecx, ecx
+       je       SHORT G_M207_IG10
+                       ;; size=4 bbWeight=8 PerfScore 10.00
+G_M207_IG09:        ; bbWeight=4, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref, isz
+       cmp      ecx, eax
+       jne      SHORT G_M207_IG07
+                       ;; size=4 bbWeight=4 PerfScore 5.00
+G_M207_IG10:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[eax]
        mov      eax, ecx
        ; gcrRegs +[eax]
                        ;; size=2 bbWeight=1 PerfScore 0.25
-G_M207_IG07:        ; bbWeight=1, epilog, nogc, extend
+G_M207_IG11:        ; bbWeight=1, epilog, nogc, extend
+       pop      esi
        pop      ebp
        ret      
-                     ;; size=2 bbWeight=1 PerfScore 1.50
+                       ;; size=3 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 49, prolog size 3, PerfScore 49.00, instruction count 18, allocated bytes for code 49 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (FullOpts)
+; Total bytes of code 94, prolog size 4, PerfScore 45.25, instruction count 35, allocated bytes for code 94 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (FullOpts)
 ; ============================================================
 
  
+49 (+94.23%) : 173473.dasm - MS.Internal.Xml.XPath.XPathScanner:SkipKnownSpace():this (FullOpts)
@@ -8,11 +8,11 @@
 ; 1 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  8, 28   )   byref  ->  ecx         this single-def
+;  V00 this         [V00,T00] ( 14, 31.25)   byref  ->  ecx         this single-def
 ;* V01 tmp0         [V01,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V02 tmp1         [V02,T02] (  3, 18   )     ref  ->  eax         class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;  V03 tmp2         [V03,T01] (  4, 20   )     int  ->  edx         "Inline stloc first use temp"
-;  V04 tmp3         [V04,T03] (  2, 16   )  ushort  ->  eax         "Inlining Arg"
+;  V02 tmp1         [V02,T02] (  6, 20.25)     ref  ->  eax         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V03 tmp2         [V03,T01] (  8, 22.50)     int  ->  edx         "Inline stloc first use temp"
+;  V04 tmp3         [V04,T03] (  4, 18   )  ushort  ->  eax         "Inlining Arg"
 ;* V05 tmp4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V06 tmp5         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V07 tmp6         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
@@ -25,41 +25,65 @@
 ;
 ; Lcl frame size = 0
 
-G_M10765_IG01:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+G_M10765_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
-                     ;; size=3 bbWeight=8 PerfScore 10.00
-G_M10765_IG02:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+                      ;; size=3 bbWeight=1 PerfScore 1.25
+G_M10765_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
        ; byrRegs +[ecx]
        mov      eax, gword ptr [ecx+0x08]
        ; gcrRegs +[eax]
        mov      edx, dword ptr [ecx+0x18]
        cmp      dword ptr [eax+0x04], edx
        jbe      SHORT G_M10765_IG04
-                      ;; size=11 bbWeight=8 PerfScore 64.00
-G_M10765_IG03:        ; bbWeight=2, gcrefRegs=00000001 {eax}, byrefRegs=00000002 {ecx}, byref, isz
+                       ;; size=11 bbWeight=1 PerfScore 8.00
+G_M10765_IG03:        ; bbWeight=0.25, gcrefRegs=00000001 {eax}, byrefRegs=00000002 {ecx}, byref, isz
        movzx    eax, word  ptr [eax+2*edx+0x08]
        ; gcrRegs -[eax]
        mov      word  ptr [ecx+0x20], ax
        inc      edx
        mov      dword ptr [ecx+0x18], edx
        jmp      SHORT G_M10765_IG05
-                      ;; size=15 bbWeight=2 PerfScore 12.50
-G_M10765_IG04:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+                      ;; size=15 bbWeight=0.25 PerfScore 1.56
+G_M10765_IG04:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
        mov      word  ptr [ecx+0x20], 0
-       jmp      SHORT G_M10765_IG06
-                       ;; size=8 bbWeight=2 PerfScore 6.00
-G_M10765_IG05:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       jmp      SHORT G_M10765_IG10
+                       ;; size=8 bbWeight=0.25 PerfScore 0.75
+G_M10765_IG05:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
        movzx    eax, word  ptr [ecx+0x20]
        test     byte  ptr [eax+D1FFAB1EH], 1
-       jne      SHORT G_M10765_IG02
+       je       SHORT G_M10765_IG10
+                       ;; size=13 bbWeight=0.50 PerfScore 3.00
+G_M10765_IG06:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       mov      eax, gword ptr [ecx+0x08]
+       ; gcrRegs +[eax]
+       mov      edx, dword ptr [ecx+0x18]
+       cmp      dword ptr [eax+0x04], edx
+       jbe      SHORT G_M10765_IG08
+                       ;; size=11 bbWeight=8 PerfScore 64.00
+G_M10765_IG07:        ; bbWeight=2, gcrefRegs=00000001 {eax}, byrefRegs=00000002 {ecx}, byref, isz
+       movzx    eax, word  ptr [eax+2*edx+0x08]
+       ; gcrRegs -[eax]
+       mov      word  ptr [ecx+0x20], ax
+       lea      eax, [edx+0x01]
+       mov      dword ptr [ecx+0x18], eax
+       jmp      SHORT G_M10765_IG09
+                       ;; size=17 bbWeight=2 PerfScore 13.00
+G_M10765_IG08:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       mov      word  ptr [ecx+0x20], 0
+       jmp      SHORT G_M10765_IG10
+                       ;; size=8 bbWeight=2 PerfScore 6.00
+G_M10765_IG09:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       movzx    eax, word  ptr [ecx+0x20]
+       test     byte  ptr [eax+D1FFAB1EH], 1
+       jne      SHORT G_M10765_IG06
                         ;; size=13 bbWeight=4 PerfScore 24.00
-G_M10765_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M10765_IG10:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; byrRegs -[ecx]
        pop      ebp
        ret      
                        ;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 52, prolog size 3, PerfScore 118.00, instruction count 18, allocated bytes for code 52 (MethodHash=7fdad5f2) for method MS.Internal.Xml.XPath.XPathScanner:SkipKnownSpace():this (FullOpts)
+; Total bytes of code 101, prolog size 3, PerfScore 123.06, instruction count 32, allocated bytes for code 101 (MethodHash=7fdad5f2) for method MS.Internal.Xml.XPath.XPathScanner:SkipKnownSpace():this (FullOpts)
 ; ============================================================
 
  
+28 (+103.70%) : 201645.dasm - System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (FullOpts)
@@ -7,9 +7,9 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  5, 11   )     int  ->  eax        
-;  V01 arg1         [V01,T00] (  7, 19   )     int  ->  esi        
-;  V02 loc0         [V02,T02] (  2,  8   )     int  ->  edx        
+;  V00 arg0         [V00,T01] (  7, 13   )     int  ->  registers  
+;  V01 arg1         [V01,T00] ( 11, 23   )     int  ->  registers  
+;  V02 loc0         [V02,T02] (  4, 10   )     int  ->  edx        
 ;
 ; Lcl frame size = 0
 
@@ -22,22 +22,44 @@ G_M22426_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=8 bbWeight=1 PerfScore 2.75
 G_M22426_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        test     esi, esi
-       je       SHORT G_M22426_IG04
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M22426_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       je       SHORT G_M22426_IG08
        xor      edx, edx
        div      edx:eax, esi
        mov      eax, esi
        mov      esi, edx
        test     esi, esi
-       jne      SHORT G_M22426_IG03
-                       ;; size=12 bbWeight=4 PerfScore 108.00
-G_M22426_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+       je       SHORT G_M22426_IG07
+                       ;; size=16 bbWeight=1 PerfScore 28.25
+G_M22426_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       xor      edx, edx
+       div      edx:eax, esi
+       mov      eax, edx
+       test     eax, eax
+       jne      SHORT G_M22426_IG06
+                       ;; size=10 bbWeight=4 PerfScore 107.00
+G_M22426_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       mov      eax, esi
+                       ;; size=2 bbWeight=1 PerfScore 0.25
+G_M22426_IG05:        ; bbWeight=1, epilog, nogc, extend
        pop      esi
        pop      ebp
        ret      
                        ;; size=3 bbWeight=1 PerfScore 2.00
+G_M22426_IG06:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      ecx, eax
+       mov      eax, esi
+       mov      esi, ecx
+       jmp      SHORT G_M22426_IG03
+                       ;; size=8 bbWeight=2 PerfScore 5.50
+G_M22426_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, eax
+       jmp      SHORT G_M22426_IG04
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
+G_M22426_IG08:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, eax
+       jmp      SHORT G_M22426_IG04
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 27, prolog size 8, PerfScore 114.00, instruction count 16, allocated bytes for code 27 (MethodHash=f186a865) for method System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (FullOpts)
+; Total bytes of code 55, prolog size 8, PerfScore 148.00, instruction count 30, allocated bytes for code 55 (MethodHash=f186a865) for method System.Numerics.BigIntegerCalculator:Gcd(uint,uint):uint (FullOpts)
 ; ============================================================
 
  
  
realworld.run.windows.x86.checked.mch
-29 (-26.61%) : 1327.dasm - BepuPhysics.CollisionDetection.ContactConstraintAccessor`6[BepuPhysics.Constraints.Contact.Contact1,BepuPhysics.CollisionDetection.TwoBodyHandles,BepuPhysics.Constraints.Contact.Contact1PrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.CollisionDetection.ContactImpulses1,BepuPhysics.CollisionDetection.ConstraintCache1]:CopyContactData(byref,byref,byref) (FullOpts)
@@ -8,29 +8,27 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] (  4, 10   )   byref  ->  ecx         single-def
-;  V01 arg1         [V01,T04] (  4,  4   )   byref  ->  edx         single-def
-;  V02 arg2         [V02,T07] (  2,  2   )   byref  ->  eax         single-def
-;* V03 loc0         [V03,T08] (  0,  0   )     int  ->  zero-ref   
-;  V04 loc1         [V04,T05] (  2,  5   )   byref  ->  [ebp-0x10]  spill-single-def
-;  V05 loc2         [V05,T06] (  2,  5   )   byref  ->  edx         single-def
-;  V06 loc3         [V06,T00] (  7, 25   )     int  ->  esi        
-;  V07 loc4         [V07,T01] (  4, 16   )   byref  ->  edi        
-;  V08 loc5         [V08,T03] (  3, 12   )   byref  ->  ebx        
+;  V00 arg0         [V00,T00] (  4,  4   )   byref  ->  ecx         single-def
+;  V01 arg1         [V01,T01] (  4,  4   )   byref  ->  edx         single-def
+;  V02 arg2         [V02,T04] (  2,  2   )   byref  ->  eax         single-def
+;* V03 loc0         [V03,T09] (  0,  0   )     int  ->  zero-ref   
+;  V04 loc1         [V04,T05] (  2,  2   )   byref  ->  eax         single-def
+;  V05 loc2         [V05,T06] (  2,  2   )   byref  ->  edx         single-def
+;* V06 loc3         [V06,T08] (  0,  0   )     int  ->  zero-ref   
+;  V07 loc4         [V07,T02] (  4,  4   )   byref  ->  ecx        
+;  V08 loc5         [V08,T03] (  3,  3   )   byref  ->  eax        
+;  V09 cse0         [V09,T07] (  2,  2   )   byref  ->  ecx         "CSE - moderate"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M31235_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
-       push     edi
        push     esi
-       push     ebx
-       push     eax
        vzeroupper 
        mov      eax, bword ptr [ebp+0x08]
        ; byrRegs +[eax]
-                      ;; size=13 bbWeight=1 PerfScore 7.25
+                      ;; size=10 bbWeight=1 PerfScore 4.25
 G_M31235_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000007 {eax ecx edx}, byref
        ; byrRegs +[ecx edx]
        xor      esi, esi
@@ -39,45 +37,24 @@ G_M31235_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000007 {e
        vxorps   ymm0, ymm0, ymm0
        vmovdqu  ymmword ptr [eax], ymm0
        vmovdqu  ymmword ptr [eax+0x18], ymm0
-       mov      bword ptr [ebp-0x10], eax
-       ; GC ptr vars +{V04}
        add      edx, 4
-                        ;; size=26 bbWeight=1 PerfScore 7.83
-G_M31235_IG03:        ; bbWeight=4, gcVars=00000020 {V04}, gcrefRegs=00000000 {}, byrefRegs=00000007 {eax ecx edx}, gcvars, byref, isz
        cmp      byte  ptr [ecx], cl
-       lea      edi, [esi+4*esi]
-       lea      edi, bword ptr [ecx+4*edi+0x1C]
-       ; byrRegs +[edi]
-       mov      ebx, esi
-       shl      ebx, 4
-       add      ebx, eax
-       ; byrRegs +[ebx]
-       mov      eax, dword ptr [edi+0x10]
-       ; byrRegs -[eax]
-       mov      dword ptr [edx+4*esi], eax
-       vmovsd   xmm0, qword ptr [edi]
-       vinsertps xmm0, xmm0, dword ptr [edi+0x08], 40
-       vmovsd   qword ptr [ebx], xmm0
-       vextractps dword ptr [ebx+0x08], xmm0, 2
-       vmovss   xmm0, dword ptr [edi+0x0C]
-       vmovss   dword ptr [ebx+0x0C], xmm0
-       inc      esi
-       test     esi, esi
-       mov      eax, bword ptr [ebp-0x10]
-       ; byrRegs +[eax]
-       jle      SHORT G_M31235_IG03
-                       ;; size=62 bbWeight=4 PerfScore 120.00
-G_M31235_IG04:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
-       ; byrRegs -[eax ecx edx ebx edi]
-       ; GC ptr vars -{V04}
-       pop      ecx
-       pop      ebx
+       add      ecx, 28
+       mov      esi, dword ptr [ecx+0x10]
+       mov      dword ptr [edx], esi
+       vmovsd   xmm0, qword ptr [ecx]
+       vinsertps xmm0, xmm0, dword ptr [ecx+0x08], 40
+       vmovsd   qword ptr [eax], xmm0
+       vextractps dword ptr [eax+0x08], xmm0, 2
+       vmovss   xmm0, dword ptr [ecx+0x0C]
+       vmovss   dword ptr [eax+0x0C], xmm0
+                       ;; size=65 bbWeight=1 PerfScore 32.08
+G_M31235_IG03:        ; bbWeight=1, epilog, nogc, extend
        pop      esi
-       pop      edi
        pop      ebp
        ret      4
-                        ;; size=8 bbWeight=1 PerfScore 4.50
+                       ;; size=5 bbWeight=1 PerfScore 3.00
 
-; Total bytes of code 109, prolog size 13, PerfScore 139.58, instruction count 40, allocated bytes for code 109 (MethodHash=076885fc) for method BepuPhysics.CollisionDetection.ContactConstraintAccessor`6[BepuPhysics.Constraints.Contact.Contact1,BepuPhysics.CollisionDetection.TwoBodyHandles,BepuPhysics.Constraints.Contact.Contact1PrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.CollisionDetection.ContactImpulses1,BepuPhysics.CollisionDetection.ConstraintCache1]:CopyContactData(byref,byref,byref) (FullOpts)
+; Total bytes of code 80, prolog size 10, PerfScore 39.33, instruction count 25, allocated bytes for code 80 (MethodHash=076885fc) for method BepuPhysics.CollisionDetection.ContactConstraintAccessor`6[BepuPhysics.Constraints.Contact.Contact1,BepuPhysics.CollisionDetection.TwoBodyHandles,BepuPhysics.Constraints.Contact.Contact1PrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.CollisionDetection.ContactImpulses1,BepuPhysics.CollisionDetection.ConstraintCache1]:CopyContactData(byref,byref,byref) (FullOpts)
 ; ============================================================
 
  
-18 (-14.29%) : 11045.dasm - FSharp.Compiler.TypedTreePickle+p_tcaug@1979-16:Invoke(Microsoft.FSharp.Core.Unit,FSharp.Compiler.TypedTreePickle+WriterState):Microsoft.FSharp.Core.Unit:this (FullOpts)
@@ -10,75 +10,57 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <FSharp.Compiler.TypedTreePickle+p_tcaug@1979-16>
 ;* V01 arg1         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Microsoft.FSharp.Core.Unit>
-;  V02 arg2         [V02,T05] (  1,  8   )     ref  ->  esi         class-hnd single-def <FSharp.Compiler.TypedTreePickle+WriterState>
-;  V03 tmp0         [V03,T03] (  4, 25   )     int  ->  edi         "Inline stloc first use temp"
+;  V02 arg2         [V02,T05] (  1,  1   )     ref  ->  [ebp+0x08]  class-hnd single-def <FSharp.Compiler.TypedTreePickle+WriterState>
+;* V03 tmp0         [V03,T04] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V04 tmp1         [V04,T06] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V05 tmp2         [V05,T00] (  7,112   )     ref  ->  ebx         class-hnd exact "Inlining Arg" <FSharp.Compiler.IO.ByteBuffer>
-;  V06 tmp3         [V06,T04] (  3, 24   )     int  ->  [ebp-0x10]  spill-single-def "Inline stloc first use temp"
+;  V05 tmp2         [V05,T00] (  7, 14   )     ref  ->  esi         class-hnd exact "Inlining Arg" <FSharp.Compiler.IO.ByteBuffer>
+;  V06 tmp3         [V06,T03] (  3,  3   )     int  ->  edi         "Inline stloc first use temp"
 ;  V07 tmp4         [V07,T07] (  3,  0   )     ref  ->  esi         class-hnd exact "NewObj constructor temp" <<unknown class>>
-;  V08 tmp5         [V08,T01] (  3, 48   )     ref  ->  eax         "arr expr"
-;  V09 tmp6         [V09,T02] (  3, 48   )     int  ->  ecx         "index expr"
+;  V08 tmp5         [V08,T01] (  3,  6   )     ref  ->  eax         "arr expr"
+;  V09 tmp6         [V09,T02] (  3,  6   )     int  ->  ecx         "index expr"
 ;  V10 tmp7         [V10,T08] (  2,  0   )     ref  ->  edx         "argument with side effect"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M15044_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
        push     edi
        push     esi
-       push     ebx
-       push     eax
-       mov      esi, gword ptr [ebp+0x08]
-       ; gcrRegs +[esi]
-                       ;; size=10 bbWeight=1 PerfScore 6.25
-G_M15044_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       xor      edi, edi
-                       ;; size=2 bbWeight=1 PerfScore 0.25
-G_M15044_IG03:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      ebx, gword ptr [esi+0x04]
-       ; gcrRegs +[ebx]
-       cmp      byte  ptr [ebx+0x0D], 0
-       jne      SHORT G_M15044_IG07
-       mov      eax, dword ptr [ebx+0x08]
-       inc      eax
-       mov      dword ptr [ebp-0x10], eax
-       mov      ecx, ebx
+                     ;; size=5 bbWeight=1 PerfScore 3.25
+G_M15044_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, gword ptr [ebp+0x08]
        ; gcrRegs +[ecx]
-       mov      edx, eax
+       mov      esi, gword ptr [ecx+0x04]
+       ; gcrRegs +[esi]
+       cmp      byte  ptr [esi+0x0D], 0
+       jne      SHORT G_M15044_IG05
+       mov      edi, dword ptr [esi+0x08]
+       inc      edi
+       mov      ecx, esi
+       mov      edx, edi
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       mov      eax, gword ptr [ebx+0x04]
+       mov      eax, gword ptr [esi+0x04]
        ; gcrRegs +[eax]
-       mov      ecx, dword ptr [ebx+0x08]
+       mov      ecx, dword ptr [esi+0x08]
        cmp      ecx, dword ptr [eax+0x04]
-       jae      SHORT G_M15044_IG06
+       jae      SHORT G_M15044_IG04
        mov      byte  ptr [eax+ecx+0x08], 0
-       mov      eax, dword ptr [ebp-0x10]
-       ; gcrRegs -[eax]
-       mov      dword ptr [ebx+0x08], eax
-       inc      edi
-       cmp      edi, 1
-       jne      SHORT G_M15044_IG03
-                       ;; size=54 bbWeight=8 PerfScore 202.00
-G_M15044_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[ebx esi]
+       mov      dword ptr [esi+0x08], edi
        xor      eax, eax
-       ; gcrRegs +[eax]
-                       ;; size=2 bbWeight=1 PerfScore 0.25
-G_M15044_IG05:        ; bbWeight=1, epilog, nogc, extend
-       pop      ecx
-       pop      ebx
+                      ;; size=47 bbWeight=1 PerfScore 23.00
+G_M15044_IG03:        ; bbWeight=1, epilog, nogc, extend
        pop      esi
        pop      edi
        pop      ebp
        ret      4
-                        ;; size=8 bbWeight=1 PerfScore 4.50
-G_M15044_IG06:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[eax]
+                      ;; size=6 bbWeight=1 PerfScore 3.50
+G_M15044_IG04:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[eax esi]
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M15044_IG07:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M15044_IG05:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[eax]
@@ -100,6 +82,6 @@ G_M15044_IG07:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=45 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 126, prolog size 7, PerfScore 213.25, instruction count 47, allocated bytes for code 126 (MethodHash=4234c53b) for method FSharp.Compiler.TypedTreePickle+p_tcaug@1979-16:Invoke(Microsoft.FSharp.Core.Unit,FSharp.Compiler.TypedTreePickle+WriterState):Microsoft.FSharp.Core.Unit:this (FullOpts)
+; Total bytes of code 108, prolog size 5, PerfScore 29.75, instruction count 37, allocated bytes for code 108 (MethodHash=4234c53b) for method FSharp.Compiler.TypedTreePickle+p_tcaug@1979-16:Invoke(Microsoft.FSharp.Core.Unit,FSharp.Compiler.TypedTreePickle+WriterState):Microsoft.FSharp.Core.Unit:this (FullOpts)
 ; ============================================================
 
  
-41 (-8.72%) : 20324.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (FullOpts)
@@ -8,11 +8,11 @@
 ; 0 inlinees with PGO data; 28 single block inlinees; 11 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 13, 16   )     ref  ->  [ebp-0x34]  this class-hnd EH-live single-def <Microsoft.CodeAnalysis.PEModule>
+;  V00 this         [V00,T04] ( 13, 12.50)     ref  ->  [ebp-0x2C]  this class-hnd EH-live single-def <Microsoft.CodeAnalysis.PEModule>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op <System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator>
 ;* V02 loc1         [V02    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op <System.Reflection.Metadata.CustomAttributeHandleCollection>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 4) zero-ref    <System.Reflection.Metadata.CustomAttributeHandle>
-;  V04 loc3         [V04,T10] (  3,  9   )     int  ->  [ebp-0x24] 
+;  V04 loc3         [V04,T08] (  3,  2   )     int  ->  [ebp-0x24] 
 ;* V05 loc4         [V05    ] (  0,  0   )  struct ( 4) zero-ref    <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V06 loc5         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Reflection.Metadata.CustomAttribute>
 ;* V07 loc6         [V07,T31] (  0,  0   )   ubyte  ->  zero-ref   
@@ -31,37 +31,37 @@
 ;* V20 tmp12        [V20    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttributeHandle>
 ;  V21 tmp13        [V21,T15] (  3,  6   )     ref  ->  edx         class-hnd exact "Inlining Arg" <System.Reflection.Metadata.MetadataReader>
 ;* V22 tmp14        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttribute>
-;  V23 tmp15        [V23,T25] (  2,  2   )     int  ->  edi         "Inline return value spill temp"
+;  V23 tmp15        [V23,T24] (  2,  2   )     int  ->  edi         "Inline return value spill temp"
 ;* V24 tmp16        [V24    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.CustomAttributeHandle>
 ;* V25 tmp17        [V25    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V26 tmp18        [V26,T07] (  5, 10   )   byref  ->  edx         "impAppendStmt"
+;  V26 tmp18        [V26,T06] (  5, 10   )   byref  ->  edx         "impAppendStmt"
 ;* V27 tmp19        [V27    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.CustomAttributeHandle>
 ;* V28 tmp20        [V28    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp21        [V29    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttributeHandle>
 ;* V30 tmp22        [V30    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.CustomAttributeHandle>
-;  V31 tmp23        [V31,T26] (  2,  2   )     int  ->  edi         "Inline stloc first use temp"
-;  V32 tmp24        [V32,T08] (  5, 10   )   byref  ->  ebx         "Inlining Arg"
+;  V31 tmp23        [V31,T25] (  2,  2   )     int  ->  edi         "Inline stloc first use temp"
+;  V32 tmp24        [V32,T07] (  5, 10   )   byref  ->  ebx         "Inlining Arg"
 ;  V33 tmp25        [V33,T09] (  5, 10   )     int  ->  edi         "Inlining Arg"
 ;* V34 tmp26        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V35 tmp27        [V35,T19] (  4,  4   )     int  ->  edx         "Inline return value spill temp"
+;  V35 tmp27        [V35,T18] (  4,  4   )     int  ->  edx         "Inline return value spill temp"
 ;* V36 tmp28        [V36    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V37 tmp29        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V38 tmp30        [V38    ] (  0,  0   )  ushort  ->  zero-ref    "Inline return value spill temp"
 ;* V39 tmp31        [V39    ] (  0,  0   )  ushort  ->  zero-ref    "Inline stloc first use temp"
 ;* V40 tmp32        [V40    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[uint]>
-;  V41 tmp33        [V41,T20] (  2,  4   )     int  ->  edi         "Span.get_Item index"
-;  V42 tmp34        [V42,T21] (  3,  3   )     int  ->  edi         "Inline stloc first use temp"
-;  V43 tmp35        [V43,T22] (  3,  3   )     int  ->  edx         "Inline stloc first use temp"
+;  V41 tmp33        [V41,T19] (  2,  4   )     int  ->  eax         "Span.get_Item index"
+;  V42 tmp34        [V42,T20] (  3,  3   )     int  ->  eax         "Inline stloc first use temp"
+;  V43 tmp35        [V43,T21] (  3,  3   )     int  ->  edx         "Inline stloc first use temp"
 ;* V44 tmp36        [V44    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.EntityHandle>
 ;* V45 tmp37        [V45    ] (  0,  0   )  struct ( 8) zero-ref    "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
 ;* V46 tmp38        [V46    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp39        [V47    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.EntityHandle>
 ;* V48 tmp40        [V48    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.TypeDefinitionHandle>
 ;* V49 tmp41        [V49    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V50 tmp42        [V50,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V51 tmp43        [V51,T18] (  2,  5   )     ref  ->  edi         single-def "field V01._reader (fldOffset=0x0)" P-INDEP
-;  V52 tmp44        [V52,T11] (  2,  9   )     int  ->  esi         single-def "field V01._lastRowId (fldOffset=0x4)" P-INDEP
-;  V53 tmp45        [V53,T00] (  6, 33   )     int  ->  ebx         "field V01._currentRowId (fldOffset=0x8)" P-INDEP
+;* V50 tmp42        [V50,T01] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V51 tmp43        [V51,T11] (  2,  1.50)     ref  ->  edi         single-def "field V01._reader (fldOffset=0x0)" P-INDEP
+;  V52 tmp44        [V52,T10] (  2,  2   )     int  ->  esi         single-def "field V01._lastRowId (fldOffset=0x4)" P-INDEP
+;  V53 tmp45        [V53,T00] (  6,  5   )     int  ->  ebx         "field V01._currentRowId (fldOffset=0x8)" P-INDEP
 ;* V54 tmp46        [V54    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._reader (fldOffset=0x0)" P-INDEP
 ;* V55 tmp47        [V55    ] (  0,  0   )     int  ->  zero-ref    single-def "field V02._firstRowId (fldOffset=0x4)" P-INDEP
 ;* V56 tmp48        [V56    ] (  0,  0   )     int  ->  zero-ref    single-def "field V02._lastRowId (fldOffset=0x8)" P-INDEP
@@ -72,37 +72,35 @@
 ;* V61 tmp53        [V61    ] (  0,  0   )     int  ->  zero-ref    "field V08._vToken (fldOffset=0x0)" P-INDEP
 ;* V62 tmp54        [V62    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._reader (fldOffset=0x0)" P-INDEP
 ;* V63 tmp55        [V63    ] (  0,  0   )     int  ->  zero-ref    single-def "field V11._firstRowId (fldOffset=0x4)" P-INDEP
-;  V64 tmp56        [V64,T27] (  2,  2   )     int  ->  esi         single-def "field V11._lastRowId (fldOffset=0x8)" P-INDEP
-;  V65 tmp57        [V65,T24] (  2,  2   )     ref  ->  edi         single-def "field V12._reader (fldOffset=0x0)" P-INDEP
-;  V66 tmp58        [V66,T28] (  2,  2   )     int  ->  esi         single-def "field V12._lastRowId (fldOffset=0x4)" P-INDEP
+;  V64 tmp56        [V64,T26] (  2,  2   )     int  ->  esi         single-def "field V11._lastRowId (fldOffset=0x8)" P-INDEP
+;  V65 tmp57        [V65,T23] (  2,  2   )     ref  ->  edi         single-def "field V12._reader (fldOffset=0x0)" P-INDEP
+;  V66 tmp58        [V66,T27] (  2,  2   )     int  ->  esi         single-def "field V12._lastRowId (fldOffset=0x4)" P-INDEP
 ;* V67 tmp59        [V67,T32] (  0,  0   )     int  ->  zero-ref    single-def "field V12._currentRowId (fldOffset=0x8)" P-INDEP
-;  V68 tmp60        [V68,T05] (  6, 15   )     int  ->  [ebp-0x28]  "field V16._rowId (fldOffset=0x0)" P-INDEP
-;  V69 tmp61        [V69,T12] (  2,  8   )     int  ->  eax         "field V18._rowId (fldOffset=0x0)" P-INDEP
-;  V70 tmp62        [V70,T13] (  2,  8   )     int  ->  eax         "field V20._rowId (fldOffset=0x0)" P-INDEP
+;  V68 tmp60        [V68,T05] (  6,  4.50)     int  ->  [ebp-0x28]  "field V16._rowId (fldOffset=0x0)" P-INDEP
+;  V69 tmp61        [V69,T12] (  2,  1   )     int  ->  eax         "field V18._rowId (fldOffset=0x0)" P-INDEP
+;  V70 tmp62        [V70,T13] (  2,  1   )     int  ->  eax         "field V20._rowId (fldOffset=0x0)" P-INDEP
 ;* V71 tmp63        [V71    ] (  0,  0   )     ref  ->  zero-ref    "field V22._reader (fldOffset=0x0)" P-INDEP
 ;* V72 tmp64        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V22._treatmentAndRowId (fldOffset=0x4)" P-INDEP
 ;* V73 tmp65        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V24._rowId (fldOffset=0x0)" P-INDEP
 ;* V74 tmp66        [V74    ] (  0,  0   )     int  ->  zero-ref    "field V27._rowId (fldOffset=0x0)" P-INDEP
-;  V75 tmp67        [V75,T29] (  2,  2   )     int  ->  edi         "field V29._rowId (fldOffset=0x0)" P-INDEP
+;  V75 tmp67        [V75,T28] (  2,  2   )     int  ->  edi         "field V29._rowId (fldOffset=0x0)" P-INDEP
 ;* V76 tmp68        [V76    ] (  0,  0   )     int  ->  zero-ref    "field V30._rowId (fldOffset=0x0)" P-INDEP
 ;* V77 tmp69        [V77    ] (  0,  0   )   byref  ->  zero-ref    "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V78 tmp70        [V78    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x4)" P-INDEP
-;  V79 tmp71        [V79,T23] (  3,  3   )     int  ->  edx         "field V44._vToken (fldOffset=0x0)" P-INDEP
+;  V79 tmp71        [V79,T22] (  3,  3   )     int  ->  edx         "field V44._vToken (fldOffset=0x0)" P-INDEP
 ;* V80 tmp72        [V80    ] (  0,  0   )   byref  ->  zero-ref    "field V45._reference (fldOffset=0x0)" P-INDEP
 ;* V81 tmp73        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x4)" P-INDEP
 ;* V82 tmp74        [V82    ] (  0,  0   )     int  ->  zero-ref    "field V47._vToken (fldOffset=0x0)" P-INDEP
-;  V83 tmp75        [V83,T30] (  2,  2   )     int  ->  edx         "field V48._rowId (fldOffset=0x0)" P-INDEP
-;  V84 tmp76        [V84,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
-;  V85 tmp77        [V85,T02] (  3, 24   )     int  ->  edx         "index expr"
+;  V83 tmp75        [V83,T29] (  2,  2   )     int  ->  edx         "field V48._rowId (fldOffset=0x0)" P-INDEP
+;  V84 tmp76        [V84,T02] (  3,  3   )     ref  ->  ecx         "arr expr"
+;  V85 tmp77        [V85,T03] (  3,  3   )     int  ->  edx         "index expr"
 ;  V86 EHSlots      [V86    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V87 cse0         [V87,T06] (  3, 12   )     ref  ->  ecx         "CSE - moderate"
-;  V88 rat0         [V88,T16] (  3,  6   )     int  ->  [ebp-0x2C]  spill-single-def "ReplaceWithLclVar is creating a new local variable"
-;  V89 rat1         [V89,T17] (  3,  6   )     int  ->  [ebp-0x30]  spill-single-def "ReplaceWithLclVar is creating a new local variable"
-;  TEMP_03                                     int  ->  [ebp-0x38]
-;  TEMP_02                                     int  ->  [ebp-0x3C]
-;  TEMP_01                                     int  ->  [ebp-0x40]
+;  V87 cse0         [V87,T30] (  3,  1.50)     ref  ->  ecx         "CSE - conservative"
+;  V88 rat0         [V88,T16] (  3,  6   )     int  ->  esi         "ReplaceWithLclVar is creating a new local variable"
+;  V89 rat1         [V89,T17] (  3,  6   )     int  ->  esi         "ReplaceWithLclVar is creating a new local variable"
+;  TEMP_01                                     int  ->  [ebp-0x30]
 ;
-; Lcl frame size = 52
+; Lcl frame size = 36
 
 G_M13056_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
        push     ebp
@@ -110,16 +108,16 @@ G_M13056_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=000000
        push     edi
        push     esi
        push     ebx
-       sub      esp, 52
+       sub      esp, 36
        xor      eax, eax
        mov      dword ptr [ebp-0x20], eax
        mov      dword ptr [ebp-0x1C], eax
        mov      dword ptr [ebp-0x18], eax
        mov      dword ptr [ebp-0x14], eax
-       mov      gword ptr [ebp-0x34], ecx
+       mov      gword ptr [ebp-0x2C], ecx
        ; GC ptr vars +{V00}
                        ;; size=26 bbWeight=1 PerfScore 9.75
-G_M13056_IG02:        ; bbWeight=1, gcVars=0000000000000008 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
+G_M13056_IG02:        ; bbWeight=1, gcVars=0000000000000010 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[ecx]
        cmp      byte  ptr [ecx+0x35], 0
        jne      G_M13056_IG19
@@ -131,24 +129,29 @@ G_M13056_IG03:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        mov      edi, eax
        ; gcrRegs +[edi]
        xor      ebx, ebx
-       jmp      SHORT G_M13056_IG06
+       jmp      SHORT G_M13056_IG07
                      ;; size=18 bbWeight=1 PerfScore 7.50
-G_M13056_IG04:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+G_M13056_IG04:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
        mov      ecx, gword ptr [edi+0x1F0]
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       SHORT G_M13056_IG12
+       je       SHORT G_M13056_IG05
        mov      edx, ebx
        and      edx, 0xD1FFAB1E
        dec      edx
        cmp      edx, dword ptr [ecx+0x04]
-       jae      SHORT G_M13056_IG07
+       jae      SHORT G_M13056_IG08
        mov      eax, dword ptr [ecx+4*edx+0x08]
-                       ;; size=28 bbWeight=4 PerfScore 40.00
-G_M13056_IG05:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M13056_IG06
+                       ;; size=30 bbWeight=0.50 PerfScore 6.00
+G_M13056_IG05:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      eax, ebx
+       and      eax, 0xD1FFAB1E
+                       ;; size=7 bbWeight=0.50 PerfScore 0.25
+G_M13056_IG06:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, gword ptr [ebp-0x2C]
        ; gcrRegs +[ecx]
        mov      dword ptr [ebp-0x28], eax
        mov      edx, eax
@@ -157,60 +160,54 @@ G_M13056_IG05:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000
        cmp      eax, -1
        mov      dword ptr [ebp-0x24], eax
        jne      SHORT G_M13056_IG13
-                      ;; size=22 bbWeight=4 PerfScore 30.00
-G_M13056_IG06:        ; bbWeight=8, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=22 bbWeight=0.50 PerfScore 3.75
+G_M13056_IG07:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
        cmp      ebx, esi
        jge      G_M13056_IG18
        inc      ebx
        jmp      SHORT G_M13056_IG04
-                      ;; size=11 bbWeight=8 PerfScore 28.00
-G_M13056_IG07:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+                      ;; size=11 bbWeight=1 PerfScore 3.50
+G_M13056_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edi]
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M13056_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.Reflection.Throw:InvalidCast()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.Reflection.Throw:InvalidCodedIndex()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.Reflection.Throw:OutOfBounds()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M13056_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [Microsoft.CodeAnalysis.PEModule:ThrowMetadataDisposed()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13056_IG12:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[edi]
-       mov      eax, ebx
-       and      eax, 0xD1FFAB1E
-       jmp      SHORT G_M13056_IG05
-                       ;; size=9 bbWeight=4 PerfScore 10.00
 G_M13056_IG13:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edi]
        mov      esi, dword ptr [ebp-0x28]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      ecx, gword ptr [ebp-0x2C]
        ; gcrRegs +[ecx]
        mov      byte  ptr [ecx+0x35], 2
        cmp      gword ptr [ecx+0x0C], 0
        jne      SHORT G_M13056_IG14
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      ecx, gword ptr [ebp-0x2C]
        ; gcrRegs +[ecx]
                        ;; size=25 bbWeight=1 PerfScore 11.00
 G_M13056_IG14:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        cmp      byte  ptr [ecx+0x34], 0
-       jne      SHORT G_M13056_IG11
+       jne      SHORT G_M13056_IG12
        mov      edx, gword ptr [ecx+0x0C]
        ; gcrRegs +[edx]
        mov      edi, esi
        or       edi, 0xD1FFAB1E
        cmp      dword ptr [edx+0x30], 0
+       mov      dword ptr [ebp-0x28], esi
        cmove    edi, esi
        add      edx, 496
        ; gcrRegs -[edx]
@@ -225,64 +222,52 @@ G_M13056_IG14:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        jne      SHORT G_M13056_IG15
...
  
+49 (+83.05%) : 20818.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_Scan(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]) (FullOpts)
@@ -7,20 +7,23 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6, 22   )     ref  ->  esi         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
-;  V01 arg1         [V01,T01] (  3, 16   )  struct ( 8) [ebp+0x08]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
+;  V00 arg0         [V00,T00] ( 10, 25   )     ref  ->  esi         class-hnd single-def <System.Text.RegularExpressions.RegexRunner>
+;  V01 arg1         [V01,T01] (  5, 14   )  struct ( 8) [ebp+0x08]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
 ;  V02 cse0         [V02,T02] (  3, 12   )     int  ->  eax         "CSE - aggressive"
+;  V03 cse1         [V03,T04] (  3,  2   )     int  ->  ecx         "CSE - moderate"
+;  V04 cse2         [V04,T03] (  3,  5   )     int  ->  edi         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
-G_M42101_IG01:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+G_M42101_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
+       push     edi
        push     esi
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=6 bbWeight=8 PerfScore 20.00
-G_M42101_IG02:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=7 bbWeight=1 PerfScore 3.50
+G_M42101_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        push     dword ptr [ebp+0x0C]
        push     bword ptr [ebp+0x08]
        mov      ecx, esi
@@ -28,9 +31,37 @@ G_M42101_IG02:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     <unknown method>
        ; gcrRegs -[ecx]
        test     eax, eax
-       je       SHORT G_M42101_IG04
+       je       SHORT G_M42101_IG07
+                       ;; size=17 bbWeight=1 PerfScore 4.50
+G_M42101_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       push     dword ptr [ebp+0x0C]
+       push     bword ptr [ebp+0x08]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     <unknown method>
+       ; gcrRegs -[ecx]
+       test     eax, eax
+       jne      SHORT G_M42101_IG07
+       mov      ecx, dword ptr [esi+0x30]
+       mov      edi, dword ptr [ebp+0x0C]
+       cmp      ecx, edi
+       je       SHORT G_M42101_IG07
+                       ;; size=27 bbWeight=0.50 PerfScore 4.38
+G_M42101_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       inc      ecx
+       mov      dword ptr [esi+0x30], ecx
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M42101_IG05:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       push     dword ptr [ebp+0x0C]
+       push     bword ptr [ebp+0x08]
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       call     <unknown method>
+       ; gcrRegs -[ecx]
+       test     eax, eax
+       je       SHORT G_M42101_IG07
                         ;; size=17 bbWeight=8 PerfScore 36.00
-G_M42101_IG03:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M42101_IG06:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        push     dword ptr [ebp+0x0C]
        push     bword ptr [ebp+0x08]
        mov      ecx, esi
@@ -38,21 +69,22 @@ G_M42101_IG03:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     <unknown method>
        ; gcrRegs -[ecx]
        test     eax, eax
-       jne      SHORT G_M42101_IG04
+       jne      SHORT G_M42101_IG07
        mov      eax, dword ptr [esi+0x30]
-       cmp      eax, dword ptr [ebp+0x0C]
-       je       SHORT G_M42101_IG04
+       cmp      eax, edi
+       je       SHORT G_M42101_IG07
        inc      eax
        mov      dword ptr [esi+0x30], eax
-       jmp      SHORT G_M42101_IG02
-                       ;; size=31 bbWeight=4 PerfScore 51.00
-G_M42101_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+       jmp      SHORT G_M42101_IG05
+                       ;; size=30 bbWeight=4 PerfScore 44.00
+G_M42101_IG07:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[esi]
        pop      esi
+       pop      edi
        pop      ebp
        ret      8
-                        ;; size=5 bbWeight=1 PerfScore 3.00
+                       ;; size=6 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 59, prolog size 4, PerfScore 110.00, instruction count 25, allocated bytes for code 59 (MethodHash=a3655b8a) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex1_Scan(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]) (FullOpts)
+; Total bytes of code 108, prolog size 5, PerfScore 97.12, instruction count 45, allocated bytes for code 108 (MethodHash=a3655b8a) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex1_Scan(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]) (FullOpts)
 ; ============================================================
 
  
+39 (+84.78%) : 10338.dasm - FSharp.Compiler.CheckExpressions:stripChooseAndExpr@3428(FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.TypedTree+Expr (FullOpts)
@@ -8,19 +8,19 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] (  4, 14   )     ref  ->  ecx         class-hnd <FSharp.Compiler.TypedTree+Expr>
-;  V01 loc0         [V01,T00] (  6, 23   )     ref  ->  eax         class-hnd <FSharp.Compiler.TypedTree+Expr>
+;  V00 arg0         [V00,T02] (  6, 16   )     ref  ->  ecx         class-hnd <FSharp.Compiler.TypedTree+Expr>
+;  V01 loc0         [V01,T00] ( 11, 25.75)     ref  ->  eax         class-hnd <FSharp.Compiler.TypedTree+Expr>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
-;  V03 tmp0         [V03,T01] (  3, 18   )     int  ->  ecx         "fgMakeTemp is creating a new local variable"
-;  V04 tmp1         [V04,T03] (  3, 12   )     ref  ->  eax         class-hnd "spilling QMark2" <<unknown class>>
+;  V03 tmp0         [V03,T01] (  6, 20.25)     int  ->  ecx         "fgMakeTemp is creating a new local variable"
+;  V04 tmp1         [V04,T03] (  6, 14.50)     ref  ->  eax         class-hnd "spilling QMark2" <<unknown class>>
 ;
 ; Lcl frame size = 0
 
-G_M26281_IG01:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
+G_M26281_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
-                     ;; size=3 bbWeight=8 PerfScore 10.00
-G_M26281_IG02:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=3 bbWeight=1 PerfScore 1.25
+G_M26281_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx]
        call     [FSharp.Compiler.TypedTreeOps:stripExpr(FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.TypedTree+Expr]
        ; gcrRegs -[ecx] +[eax]
@@ -29,30 +29,56 @@ G_M26281_IG02:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        call     [FSharp.Compiler.TypedTreeOps:stripDebugPoints(FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.TypedTree+Expr]
        ; gcrRegs -[ecx]
        cmp      dword ptr [eax+0x04], 14
-       jne      SHORT G_M26281_IG06
-                       ;; size=20 bbWeight=8 PerfScore 82.00
-G_M26281_IG03:        ; bbWeight=4, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
+       jne      SHORT G_M26281_IG10
+                       ;; size=20 bbWeight=1 PerfScore 10.25
+G_M26281_IG03:        ; bbWeight=0.50, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, 0xD1FFAB1E      ; <unknown class>
        cmp      dword ptr [eax], ecx
        je       SHORT G_M26281_IG05
+                      ;; size=9 bbWeight=0.50 PerfScore 2.12
+G_M26281_IG04:        ; bbWeight=0.12, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
+       mov      edx, eax
+       ; gcrRegs +[edx]
+       call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
+       ; gcrRegs -[edx]
+                       ;; size=7 bbWeight=0.12 PerfScore 0.16
+G_M26281_IG05:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref
+       mov      ecx, gword ptr [eax+0x0C]
+       ; gcrRegs +[ecx]
+                       ;; size=3 bbWeight=1 PerfScore 2.00
+G_M26281_IG06:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax]
+       call     [FSharp.Compiler.TypedTreeOps:stripExpr(FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.TypedTree+Expr]
+       ; gcrRegs -[ecx] +[eax]
+       mov      ecx, eax
+       ; gcrRegs +[ecx]
+       call     [FSharp.Compiler.TypedTreeOps:stripDebugPoints(FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.TypedTree+Expr]
+       ; gcrRegs -[ecx]
+       cmp      dword ptr [eax+0x04], 14
+       jne      SHORT G_M26281_IG10
+                       ;; size=20 bbWeight=8 PerfScore 82.00
+G_M26281_IG07:        ; bbWeight=4, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, 0xD1FFAB1E      ; <unknown class>
+       cmp      dword ptr [eax], ecx
+       je       SHORT G_M26281_IG09
                         ;; size=9 bbWeight=4 PerfScore 17.00
-G_M26281_IG04:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
+G_M26281_IG08:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
        mov      edx, eax
        ; gcrRegs +[edx]
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
        ; gcrRegs -[edx]
                        ;; size=7 bbWeight=1 PerfScore 1.25
-G_M26281_IG05:        ; bbWeight=4, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
+G_M26281_IG09:        ; bbWeight=4, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [eax+0x0C]
        ; gcrRegs +[ecx]
-       jmp      SHORT G_M26281_IG02
+       jmp      SHORT G_M26281_IG06
                       ;; size=5 bbWeight=4 PerfScore 16.00
-G_M26281_IG06:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M26281_IG10:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[ecx]
        pop      ebp
        ret      
                        ;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 46, prolog size 3, PerfScore 127.75, instruction count 17, allocated bytes for code 46 (MethodHash=c4a39956) for method FSharp.Compiler.CheckExpressions:stripChooseAndExpr@3428(FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.TypedTree+Expr (FullOpts)
+; Total bytes of code 85, prolog size 3, PerfScore 133.53, instruction count 29, allocated bytes for code 85 (MethodHash=c4a39956) for method FSharp.Compiler.CheckExpressions:stripChooseAndExpr@3428(FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.TypedTree+Expr (FullOpts)
 ; ============================================================
 
  
+45 (+91.84%) : 18473.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList1Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive
@@ -9,51 +9,85 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T02] (  3,  3   )     ref  ->  ecx         class-hnd single-def <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
-;  V01 loc0         [V01,T00] (  7, 20   )     ref  ->  ecx         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
-;  V02 loc1         [V02,T01] (  3,  6   )  ushort  ->  eax        
+;  V01 loc0         [V01,T00] ( 12, 22.25)     ref  ->  ecx         class-hnd <Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]>
+;  V02 loc1         [V02,T01] (  6,  6.75)  ushort  ->  esi        
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive>
 ;* V04 tmp0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <<unknown class>>
-;  V05 tmp1         [V05,T03] (  2,  4   )     ref  ->  eax         "field V03._node (fldOffset=0x0)" P-INDEP
+;  V05 tmp1         [V05,T04] (  4,  4.50)     ref  ->  edx         "field V03._node (fldOffset=0x0)" P-INDEP
+;  V06 cse0         [V06,T03] (  3,  5   )     ref  ->  eax         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
 G_M207_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
-                     ;; size=3 bbWeight=1 PerfScore 1.25
+       push     esi
+                       ;; size=4 bbWeight=1 PerfScore 2.25
 G_M207_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx]
        jmp      SHORT G_M207_IG04
                        ;; size=2 bbWeight=1 PerfScore 2.00
-G_M207_IG03:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, gword ptr [ecx+0x08]
+G_M207_IG03:        ; bbWeight=0.25, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[eax]
-       movzx    eax, word  ptr [eax+0x08]
-       ; gcrRegs -[eax]
-       lea      edx, [eax-0x2164]
+       mov      edx, gword ptr [ecx+0x08]
+       ; gcrRegs +[edx]
+       movzx    esi, word  ptr [edx+0x08]
+       lea      edx, [esi-0x2164]
+       ; gcrRegs -[edx]
        cmp      edx, 2
-       jbe      SHORT G_M207_IG06
-       cmp      eax, 0x2168
-       je       SHORT G_M207_IG06
+       jbe      SHORT G_M207_IG10
+       cmp      esi, 0x2168
+       je       SHORT G_M207_IG10
        mov      ecx, gword ptr [ecx+0x04]
-                       ;; size=28 bbWeight=2 PerfScore 18.00
-G_M207_IG04:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M207_IG08
+                       ;; size=31 bbWeight=0.25 PerfScore 2.75
+G_M207_IG04:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax]
        test     ecx, ecx
-       je       SHORT G_M207_IG06
-                       ;; size=4 bbWeight=8 PerfScore 10.00
-G_M207_IG05:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-       cmp      ecx, gword ptr [D1FFAB1EH]      ; static handle
+       je       SHORT G_M207_IG10
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M207_IG05:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, gword ptr [D1FFAB1EH]
+       ; gcrRegs +[eax]
+       cmp      ecx, eax
        jne      SHORT G_M207_IG03
-                        ;; size=8 bbWeight=4 PerfScore 16.00
-G_M207_IG06:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+                     ;; size=9 bbWeight=0.50 PerfScore 1.62
+G_M207_IG06:        ; bbWeight=0.06, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax]
+       jmp      SHORT G_M207_IG10
+                       ;; size=2 bbWeight=0.06 PerfScore 0.12
+G_M207_IG07:        ; bbWeight=2, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[eax]
+       mov      edx, gword ptr [ecx+0x08]
+       ; gcrRegs +[edx]
+       movzx    esi, word  ptr [edx+0x08]
+       lea      edx, [esi-0x2164]
+       ; gcrRegs -[edx]
+       cmp      edx, 2
+       jbe      SHORT G_M207_IG10
+       cmp      esi, 0x2168
+       je       SHORT G_M207_IG10
+       mov      ecx, gword ptr [ecx+0x04]
+                       ;; size=29 bbWeight=2 PerfScore 18.00
+G_M207_IG08:        ; bbWeight=8, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref, isz
+       test     ecx, ecx
+       je       SHORT G_M207_IG10
+                       ;; size=4 bbWeight=8 PerfScore 10.00
+G_M207_IG09:        ; bbWeight=4, gcrefRegs=00000003 {eax ecx}, byrefRegs=00000000 {}, byref, isz
+       cmp      ecx, eax
+       jne      SHORT G_M207_IG07
+                       ;; size=4 bbWeight=4 PerfScore 5.00
+G_M207_IG10:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[eax]
        mov      eax, ecx
        ; gcrRegs +[eax]
                        ;; size=2 bbWeight=1 PerfScore 0.25
-G_M207_IG07:        ; bbWeight=1, epilog, nogc, extend
+G_M207_IG11:        ; bbWeight=1, epilog, nogc, extend
+       pop      esi
        pop      ebp
        ret      
-                     ;; size=2 bbWeight=1 PerfScore 1.50
+                       ;; size=3 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 49, prolog size 3, PerfScore 49.00, instruction count 18, allocated bytes for code 49 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (FullOpts)
+; Total bytes of code 94, prolog size 4, PerfScore 45.25, instruction count 35, allocated bytes for code 94 (MethodHash=7934ff30) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:GetPreviousIfElifElseOrRegion(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive]):Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Directive] (FullOpts)
 ; ============================================================
 
  
  
  
Details
Improvements/regressions per collection
| Collection | Contexts with diffs | Improvements | Regressions | Same size | Improvements (bytes) | Regressions (bytes) | 
| benchmarks.run.windows.x86.checked.mch | 5,347 | 32 | 5,308 | 7 | -1,570 | +1,147,999 | 
| benchmarks.run_pgo.windows.x86.checked.mch | 19,018 | 106 | 18,898 | 14 | -2,657 | +3,879,174 | 
| benchmarks.run_tiered.windows.x86.checked.mch | 5,284 | 27 | 5,249 | 8 | -1,492 | +1,139,359 | 
| coreclr_tests.run.windows.x86.checked.mch | 47,481 | 2,148 | 45,236 | 97 | -83,217 | +7,163,287 | 
| libraries.crossgen2.windows.x86.checked.mch | 21,755 | 72 | 21,648 | 35 | -824 | +3,116,194 | 
| libraries.pmi.windows.x86.checked.mch | 24,561 | 175 | 24,348 | 38 | -2,989 | +4,507,552 | 
| libraries_tests.run.windows.x86.Release.mch | 59,095 | 371 | 58,663 | 61 | -12,796 | +17,129,663 | 
| librariestestsnotieredcompilation.run.windows.x86.Release.mch | 23,810 | 174 | 23,607 | 29 | -6,449 | +6,830,088 | 
| realworld.run.windows.x86.checked.mch | 4,712 | 26 | 4,677 | 9 | -1,760 | +1,335,051 | 
|  | 211,063 | 3,131 | 207,634 | 298 | -113,754 | +46,248,367 | 
Context information
| Collection | Diffed contexts | MinOpts | FullOpts | Missed, base | Missed, diff | 
| benchmarks.run.windows.x86.checked.mch | 23,957 | 4 | 23,953 | 229 (0.94%) | 529 (2.16%) | 
| benchmarks.run_pgo.windows.x86.checked.mch | 118,394 | 41,883 | 76,511 | 249 (0.21%) | 1,439 (1.20%) | 
| benchmarks.run_tiered.windows.x86.checked.mch | 47,499 | 28,723 | 18,776 | 171 (0.36%) | 481 (1.00%) | 
| coreclr_tests.run.windows.x86.checked.mch | 572,559 | 320,026 | 252,533 | 554 (0.10%) | 2,176 (0.38%) | 
| libraries.crossgen2.windows.x86.checked.mch | 241,336 | 15 | 241,321 | 7 (0.00%) | 1,008 (0.42%) | 
| libraries.pmi.windows.x86.checked.mch | 301,178 | 6 | 301,172 | 2,086 (0.68%) | 3,871 (1.27%) | 
| libraries_tests.run.windows.x86.Release.mch | 625,162 | 427,921 | 197,241 | 1,275 (0.20%) | 7,122 (1.13%) | 
| librariestestsnotieredcompilation.run.windows.x86.Release.mch | 311,973 | 21,871 | 290,102 | 2,042 (0.65%) | 4,454 (1.41%) | 
| realworld.run.windows.x86.checked.mch | 35,133 | 3 | 35,130 | 397 (1.10%) | 854 (2.37%) | 
|  | 2,277,191 | 840,452 | 1,436,739 | 7,010 (0.30%) | 21,934 (0.95%) | 
jit-analyze output
benchmarks.run.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 6659356 (overridden on cmd)
Total bytes of diff: 7805785 (overridden on cmd)
Total bytes of delta: 1146429 (17.22 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       19834 : 3302.dasm (63.36 % of base)
       12441 : 8741.dasm (38.62 % of base)
        7919 : 22859.dasm (74.53 % of base)
        7803 : 13955.dasm (60.71 % of base)
        7124 : 3486.dasm (47.41 % of base)
        6368 : 2000.dasm (72.70 % of base)
        6252 : 6854.dasm (89.72 % of base)
        5881 : 22734.dasm (42.40 % of base)
        5844 : 17476.dasm (69.83 % of base)
        5464 : 17942.dasm (84.70 % of base)
        5326 : 8187.dasm (64.71 % of base)
        5292 : 16687.dasm (82.60 % of base)
        5230 : 18838.dasm (89.97 % of base)
        5094 : 4187.dasm (91.85 % of base)
        4907 : 24363.dasm (85.31 % of base)
        4738 : 22741.dasm (62.75 % of base)
        4657 : 1102.dasm (85.59 % of base)
        4188 : 23185.dasm (85.78 % of base)
        3688 : 16563.dasm (101.96 % of base)
        3564 : 16327.dasm (104.67 % of base)
Top file improvements (bytes):
       -1298 : 9270.dasm (-13.73 % of base)
         -47 : 18443.dasm (-6.51 % of base)
         -43 : 3873.dasm (-6.15 % of base)
         -41 : 18162.dasm (-8.72 % of base)
         -13 : 2090.dasm (-5.58 % of base)
         -11 : 18521.dasm (-3.13 % of base)
         -10 : 3971.dasm (-4.13 % of base)
          -9 : 3324.dasm (-0.98 % of base)
          -9 : 13948.dasm (-1.86 % of base)
          -9 : 23217.dasm (-0.97 % of base)
          -8 : 2808.dasm (-2.88 % of base)
          -8 : 2276.dasm (-3.39 % of base)
          -7 : 9092.dasm (-1.07 % of base)
          -5 : 14299.dasm (-4.55 % of base)
          -5 : 14964.dasm (-4.55 % of base)
          -5 : 15530.dasm (-4.55 % of base)
          -5 : 2574.dasm (-4.55 % of base)
          -5 : 8688.dasm (-4.55 % of base)
          -5 : 7128.dasm (-4.55 % of base)
          -5 : 10578.dasm (-4.55 % of base)
82 total files with Code Size differences (23 improved, 59 regressed), 7 unchanged.
Top method regressions (bytes):
       19834 (63.36 % of base) : 3302.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
       12441 (38.62 % of base) : 8741.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
        7919 (74.53 % of base) : 22859.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (FullOpts)
        7803 (60.71 % of base) : 13955.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
        7124 (47.41 % of base) : 3486.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        6368 (72.70 % of base) : 2000.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
        6252 (89.72 % of base) : 6854.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
        5881 (42.40 % of base) : 22734.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        5844 (69.83 % of base) : 17476.dasm - Benchstone.BenchF.LLoops:Main1(int):this (FullOpts)
        5464 (84.70 % of base) : 17942.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
        5326 (64.71 % of base) : 8187.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (FullOpts)
        5292 (82.60 % of base) : 16687.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
        5230 (89.97 % of base) : 18838.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (FullOpts)
        5094 (91.85 % of base) : 4187.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)
        4907 (85.31 % of base) : 24363.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        4738 (62.75 % of base) : 22741.dasm - Jil.Deserialize.Methods:SkipWithLeadCharThunkReader(byref,int) (FullOpts)
        4657 (85.59 % of base) : 1102.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
        4188 (85.78 % of base) : 23185.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        3688 (101.96 % of base) : 16563.dasm - Jil.Deserialize.Methods:_ReadEncodedStringWithCharArrayThunkReader(byref,byref):System.String (FullOpts)
        3564 (104.67 % of base) : 16327.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (FullOpts)
Top method improvements (bytes):
       -1298 (-13.73 % of base) : 9270.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -47 (-6.51 % of base) : 18443.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80:MoveNext():ubyte:this (FullOpts)
         -43 (-6.15 % of base) : 3873.dasm - System.Runtime.Serialization.DataContracts.XmlDataContract:GenerateCreateXmlSerializableDelegate():System.Runtime.Serialization.DataContracts.CreateXmlSerializableDelegate:this (FullOpts)
         -41 (-8.72 % of base) : 18162.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (FullOpts)
         -13 (-5.58 % of base) : 2090.dasm - ProtoBuf.Meta.RuntimeTypeModel:FindWithoutAdd(System.Type):ProtoBuf.Meta.MetaType:this (FullOpts)
         -11 (-3.13 % of base) : 18521.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (FullOpts)
         -10 (-4.13 % of base) : 3971.dasm - BenchmarksGame.KNucleotide_9:find(ubyte[],ubyte[],int,byref):int (FullOpts)
          -9 (-0.98 % of base) : 3324.dasm - Jil.Deserialize.InlineDeserializer`1[System.__Canon]:.cctor() (FullOpts)
          -9 (-0.97 % of base) : 23217.dasm - Jil.Deserialize.InlineDeserializer`1[System.__Canon]:ReadNullable(System.Reflection.MemberInfo,System.Type):this (FullOpts)
          -9 (-1.86 % of base) : 13948.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:WriteISO8601StyleDateTime():this (FullOpts)
          -8 (-2.88 % of base) : 2808.dasm - Microsoft.Extensions.Logging.LogValuesFormatter:FindBraceIndex(System.String,ushort,int,int):int (FullOpts)
          -8 (-3.39 % of base) : 2276.dasm - ProtoBuf.Internal.Serializers.PropertyDecorator:GetShadowSetter(System.Reflection.PropertyInfo):System.Reflection.MethodInfo (FullOpts)
          -7 (-1.07 % of base) : 9092.dasm - System.IO.StreamReader:ReadBuffer(System.Span`1[ushort],byref):int:this (FullOpts)
          -5 (-4.55 % of base) : 14299.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.55 % of base) : 14964.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.55 % of base) : 15530.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.55 % of base) : 2574.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.55 % of base) : 8688.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.55 % of base) : 7128.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.55 % of base) : 10578.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
Top method regressions (percentages):
        2983 (143.76 % of base) : 6535.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          88 (141.94 % of base) : 19829.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (FullOpts)
         175 (138.89 % of base) : 15149.dasm - AssignRect:CopyToAssign(int[,],int[,]) (FullOpts)
         187 (137.50 % of base) : 16987.dasm - Benchstone.MDBenchI.MDArray2:Initialize(int[,,]) (FullOpts)
        1768 (137.27 % of base) : 15152.dasm - AssignRect:first_assignments(int[,],short[,]):int (FullOpts)
        2222 (133.21 % of base) : 23963.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (FullOpts)
         187 (123.03 % of base) : 22489.dasm - Benchstone.MDBenchF.MDInProd:InitMatrix(double[,]) (FullOpts)
         243 (117.96 % of base) : 16988.dasm - Benchstone.MDBenchI.MDArray2:VerifyCopy(int[,,],int[,,]):ubyte (FullOpts)
         900 (115.38 % of base) : 18538.dasm - System.Reflection.Metadata.MetadataReader:InitializeNestedTypesMap():this (FullOpts)
        1583 (114.30 % of base) : 23742.dasm - ProtoBuf.Internal.PrimaryTypeProvider:ProtoBuf.Serializers.ISerializer<ProtoBuf.Internal.PrimaryTypeProvider.ScaledTicks>.Read(byref,ProtoBuf.Internal.PrimaryTypeProvider+ScaledTicks):ProtoBuf.Internal.PrimaryTypeProvider+ScaledTicks:this (FullOpts)
         128 (111.30 % of base) : 23997.dasm - NumericSortJagged:NumSift(int[],int,int) (FullOpts)
        1916 (108.62 % of base) : 17609.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:LexSyntaxTrivia(ubyte,ubyte,byref):this (FullOpts)
         184 (108.24 % of base) : 15322.dasm - System.Runtime.Serialization.Json.XmlJsonReader:ComputeNumericalTextLength(ubyte[],int,int):int (FullOpts)
        1132 (107.81 % of base) : 21738.dasm - Benchstone.BenchF.NewtE:Test():ubyte:this (FullOpts)
         142 (107.58 % of base) : 15148.dasm - AssignRect:LoadAssign(int[,]) (FullOpts)
         194 (107.18 % of base) : 2294.dasm - System.Collections.Generic.GenericArraySortHelper`2[int,System.__Canon]:InsertionSort(System.Span`1[int],System.Span`1[System.__Canon]) (FullOpts)
        1683 (107.13 % of base) : 19944.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitInstanceCallExpression(Microsoft.CodeAnalysis.CSharp.BoundCall,int):this (FullOpts)
        2390 (107.08 % of base) : 18137.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (FullOpts)
         229 (106.51 % of base) : 5841.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (FullOpts)
        3564 (104.67 % of base) : 16327.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (FullOpts)
Top method improvements (percentages):
       -1298 (-13.73 % of base) : 9270.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -41 (-8.72 % of base) : 18162.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (FullOpts)
          -3 (-6.82 % of base) : 16675.dasm - Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (FullOpts)
         -47 (-6.51 % of base) : 18443.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80:MoveNext():ubyte:this (FullOpts)
         -43 (-6.15 % of base) : 3873.dasm - System.Runtime.Serialization.DataContracts.XmlDataContract:GenerateCreateXmlSerializableDelegate():System.Runtime.Serialization.DataContracts.CreateXmlSerializableDelegate:this (FullOpts)
         -13 (-5.58 % of base) : 2090.dasm - ProtoBuf.Meta.RuntimeTypeModel:FindWithoutAdd(System.Type):ProtoBuf.Meta.MetaType:this (FullOpts)
          -5 (-4.55 % of base) : 14299.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.55 % of base) : 14964.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.55 % of base) : 15530.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.55 % of base) : 2574.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.55 % of base) : 8688.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.55 % of base) : 7128.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.55 % of base) : 10578.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.55 % of base) : 15789.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
         -10 (-4.13 % of base) : 3971.dasm - BenchmarksGame.KNucleotide_9:find(ubyte[],ubyte[],int,byref):int (FullOpts)
          -8 (-3.39 % of base) : 2276.dasm - ProtoBuf.Internal.Serializers.PropertyDecorator:GetShadowSetter(System.Reflection.PropertyInfo):System.Reflection.MethodInfo (FullOpts)
         -11 (-3.13 % of base) : 18521.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (FullOpts)
          -8 (-2.88 % of base) : 2808.dasm - Microsoft.Extensions.Logging.LogValuesFormatter:FindBraceIndex(System.String,ushort,int,int):int (FullOpts)
          -9 (-1.86 % of base) : 13948.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:WriteISO8601StyleDateTime():this (FullOpts)
          -1 (-1.14 % of base) : 18942.dasm - Microsoft.CodeAnalysis.GreenNode:GetSlotOffset(int):int:this (FullOpts)
  
benchmarks.run_pgo.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 43839637 (overridden on cmd)
Total bytes of diff: 47716154 (overridden on cmd)
Total bytes of delta: 3876517 (8.84 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       19834 : 22279.dasm (63.36 % of base)
       12441 : 28047.dasm (38.62 % of base)
        7919 : 100399.dasm (74.53 % of base)
        7803 : 47483.dasm (60.71 % of base)
        7124 : 22609.dasm (47.41 % of base)
        6694 : 19439.dasm (73.01 % of base)
        6275 : 4881.dasm (89.71 % of base)
        5881 : 100720.dasm (42.40 % of base)
        5844 : 70506.dasm (69.83 % of base)
        5641 : 72760.dasm (85.15 % of base)
        5441 : 27060.dasm (64.97 % of base)
        5292 : 64899.dasm (82.60 % of base)
        5279 : 74938.dasm (90.01 % of base)
        5173 : 9994.dasm (94.16 % of base)
        4702 : 2244.dasm (85.71 % of base)
        4233 : 105513.dasm (85.53 % of base)
        3930 : 117976.dasm (82.48 % of base)
        3730 : 106040.dasm (84.31 % of base)
        3659 : 64840.dasm (98.12 % of base)
        3645 : 5332.dasm (70.94 % of base)
Top file improvements (bytes):
       -1298 : 28305.dasm (-13.73 % of base)
        -100 : 84263.dasm (-7.92 % of base)
         -58 : 82576.dasm (-4.10 % of base)
         -42 : 73217.dasm (-8.88 % of base)
         -33 : 73986.dasm (-4.52 % of base)
         -29 : 81661.dasm (-8.66 % of base)
         -29 : 87326.dasm (-8.66 % of base)
         -15 : 74418.dasm (-2.33 % of base)
         -13 : 11181.dasm (-3.77 % of base)
         -13 : 29708.dasm (-4.63 % of base)
         -13 : 43761.dasm (-3.77 % of base)
         -13 : 47926.dasm (-4.63 % of base)
         -13 : 21089.dasm (-3.77 % of base)
         -13 : 57389.dasm (-4.63 % of base)
         -13 : 17795.dasm (-5.58 % of base)
         -13 : 33033.dasm (-3.77 % of base)
         -13 : 48209.dasm (-3.77 % of base)
         -13 : 53517.dasm (-3.77 % of base)
         -13 : 64841.dasm (-3.77 % of base)
         -13 : 53201.dasm (-3.77 % of base)
93 total files with Code Size differences (33 improved, 60 regressed), 14 unchanged.
Top method regressions (bytes):
       19834 (63.36 % of base) : 22279.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
       12441 (38.62 % of base) : 28047.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
        7919 (74.53 % of base) : 100399.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier0-FullOpts)
        7803 (60.71 % of base) : 47483.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
        7124 (47.41 % of base) : 22609.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        6694 (73.01 % of base) : 19439.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0-FullOpts)
        6275 (89.71 % of base) : 4881.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
        5881 (42.40 % of base) : 100720.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        5844 (69.83 % of base) : 70506.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier0-FullOpts)
        5641 (85.15 % of base) : 72760.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (Tier0-FullOpts)
        5441 (64.97 % of base) : 27060.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Tier0-FullOpts)
        5292 (82.60 % of base) : 64899.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
        5279 (90.01 % of base) : 74938.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (Tier0-FullOpts)
        5173 (94.16 % of base) : 9994.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier0-FullOpts)
        4702 (85.71 % of base) : 2244.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
        4233 (85.53 % of base) : 105513.dasm - Jil.Deserialize.Methods:SkipEncodedStringWithLeadCharThunkReader(byref,int) (Tier0-FullOpts)
        3930 (82.48 % of base) : 117976.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        3730 (84.31 % of base) : 106040.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        3659 (98.12 % of base) : 64840.dasm - Jil.Deserialize.Methods:_ReadEncodedStringWithCharArrayThunkReader(byref,byref):System.String (Tier0-FullOpts)
        3645 (70.94 % of base) : 5332.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
Top method improvements (bytes):
       -1298 (-13.73 % of base) : 28305.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
        -100 (-7.92 % of base) : 84263.dasm - System.SpanHelpers:Contains[System.__Canon](byref,System.__Canon,int):ubyte (Tier0-FullOpts)
         -58 (-4.10 % of base) : 82576.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:AddSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,byref):this (Tier1)
         -42 (-8.88 % of base) : 73217.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier0-FullOpts)
         -33 (-4.52 % of base) : 73986.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80:MoveNext():ubyte:this (Tier0-FullOpts)
         -29 (-8.66 % of base) : 81661.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax:get_Modifiers():Microsoft.CodeAnalysis.SyntaxTokenList:this (Tier1)
         -29 (-8.66 % of base) : 87326.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax:get_Modifiers():Microsoft.CodeAnalysis.SyntaxTokenList:this (Tier1)
         -15 (-2.33 % of base) : 74418.dasm - Microsoft.CodeAnalysis.ModuleExtensions:<ShouldImportMethod>g__isMethodImpl|3_1(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle,byref):ubyte (Tier0-FullOpts)
         -13 (-5.58 % of base) : 17795.dasm - ProtoBuf.Meta.RuntimeTypeModel:FindWithoutAdd(System.Type):ProtoBuf.Meta.MetaType:this (Tier0-FullOpts)
         -13 (-3.77 % of base) : 11181.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -13 (-4.63 % of base) : 29708.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -13 (-3.77 % of base) : 43761.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -13 (-4.63 % of base) : 47926.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -13 (-3.77 % of base) : 21089.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -13 (-4.63 % of base) : 57389.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -13 (-3.77 % of base) : 33033.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -13 (-3.77 % of base) : 48209.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -13 (-3.77 % of base) : 53517.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -13 (-3.77 % of base) : 64841.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -13 (-3.77 % of base) : 53201.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
Top method regressions (percentages):
        2883 (143.65 % of base) : 13520.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
          88 (141.94 % of base) : 77367.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (Tier0-FullOpts)
         175 (138.89 % of base) : 56803.dasm - AssignRect:CopyToAssign(int[,],int[,]) (Tier0-FullOpts)
         187 (137.50 % of base) : 70173.dasm - Benchstone.MDBenchI.MDArray2:Initialize(int[,,]) (Tier0-FullOpts)
        1768 (137.27 % of base) : 56806.dasm - AssignRect:first_assignments(int[,],short[,]):int (Tier0-FullOpts)
        2222 (133.21 % of base) : 114137.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier0-FullOpts)
         187 (123.03 % of base) : 97603.dasm - Benchstone.MDBenchF.MDInProd:InitMatrix(double[,]) (Tier0-FullOpts)
         243 (117.96 % of base) : 70176.dasm - Benchstone.MDBenchI.MDArray2:VerifyCopy(int[,,],int[,,]):ubyte (Tier0-FullOpts)
        1583 (114.30 % of base) : 112934.dasm - ProtoBuf.Internal.PrimaryTypeProvider:ProtoBuf.Serializers.ISerializer<ProtoBuf.Internal.PrimaryTypeProvider.ScaledTicks>.Read(byref,ProtoBuf.Internal.PrimaryTypeProvider+ScaledTicks):ProtoBuf.Internal.PrimaryTypeProvider+ScaledTicks:this (Tier0-FullOpts)
         901 (112.62 % of base) : 74291.dasm - System.Reflection.Metadata.MetadataReader:InitializeNestedTypesMap():this (Tier0-FullOpts)
        2720 (112.40 % of base) : 64549.dasm - System.Text.Json.Tests.Perf_Segment:ReadMultiSegmentSequenceUsingSpan(int):this (Tier0-FullOpts)
        2682 (111.94 % of base) : 9879.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (Tier0-FullOpts)
         128 (111.30 % of base) : 115003.dasm - NumericSortJagged:NumSift(int[],int,int) (Tier0-FullOpts)
        1916 (108.62 % of base) : 72063.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:LexSyntaxTrivia(ubyte,ubyte,byref):this (Tier0-FullOpts)
         184 (108.24 % of base) : 56600.dasm - System.Runtime.Serialization.Json.XmlJsonReader:ComputeNumericalTextLength(ubyte[],int,int):int (Tier0-FullOpts)
        1132 (107.81 % of base) : 90336.dasm - Benchstone.BenchF.NewtE:Test():ubyte:this (Tier0-FullOpts)
         142 (107.58 % of base) : 56802.dasm - AssignRect:LoadAssign(int[,]) (Tier0-FullOpts)
        1528 (107.38 % of base) : 79410.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeAssemblyRefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier0-FullOpts)
        2390 (107.08 % of base) : 73172.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (Tier0-FullOpts)
         229 (106.51 % of base) : 16658.dasm - System.Net.Http.HttpConnectionPool+RequestQueue`1[System.__Canon]:PruneCompletedRequestsFromHeadOfQueue(System.Net.Http.HttpConnectionPool):this (Tier0-FullOpts)
Top method improvements (percentages):
       -1298 (-13.73 % of base) : 28305.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         -42 (-8.88 % of base) : 73217.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier0-FullOpts)
         -29 (-8.66 % of base) : 81661.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax:get_Modifiers():Microsoft.CodeAnalysis.SyntaxTokenList:this (Tier1)
         -29 (-8.66 % of base) : 87326.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax:get_Modifiers():Microsoft.CodeAnalysis.SyntaxTokenList:this (Tier1)
        -100 (-7.92 % of base) : 84263.dasm - System.SpanHelpers:Contains[System.__Canon](byref,System.__Canon,int):ubyte (Tier0-FullOpts)
          -3 (-6.82 % of base) : 65671.dasm - Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
         -13 (-5.58 % of base) : 17795.dasm - ProtoBuf.Meta.RuntimeTypeModel:FindWithoutAdd(System.Type):ProtoBuf.Meta.MetaType:this (Tier0-FullOpts)
         -13 (-4.63 % of base) : 29708.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -13 (-4.63 % of base) : 47926.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -13 (-4.63 % of base) : 57389.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
         -13 (-4.63 % of base) : 71667.dasm - System.Reflection.RuntimeParameterInfo:.ctor(System.Signature,System.Reflection.MetadataImport,int,int,int,System.Reflection.MemberInfo):this (Tier1)
          -5 (-4.55 % of base) : 3664.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 20196.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 55508.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 26449.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 32167.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 46353.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 52473.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 58637.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
         -33 (-4.52 % of base) : 73986.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80:MoveNext():ubyte:this (Tier0-FullOpts)
  
benchmarks.run_tiered.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 9013144 (overridden on cmd)
Total bytes of diff: 10151011 (overridden on cmd)
Total bytes of delta: 1137867 (12.62 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       19834 : 5971.dasm (63.36 % of base)
       12441 : 20366.dasm (38.62 % of base)
        7919 : 45619.dasm (74.53 % of base)
        7803 : 27820.dasm (60.71 % of base)
        7124 : 6455.dasm (47.41 % of base)
        6368 : 11968.dasm (72.70 % of base)
        6252 : 8153.dasm (89.72 % of base)
        5881 : 45459.dasm (42.40 % of base)
        5844 : 33537.dasm (69.83 % of base)
        5464 : 34711.dasm (84.70 % of base)
        5326 : 19901.dasm (64.71 % of base)
        5292 : 32250.dasm (82.60 % of base)
        5230 : 36534.dasm (89.97 % of base)
        4943 : 9200.dasm (92.55 % of base)
        4905 : 47815.dasm (85.30 % of base)
        4657 : 4737.dasm (85.59 % of base)
        4186 : 45900.dasm (85.78 % of base)
        4155 : 45918.dasm (86.60 % of base)
        3688 : 32540.dasm (101.96 % of base)
        3564 : 31625.dasm (104.67 % of base)
Top file improvements (bytes):
       -1298 : 19139.dasm (-13.73 % of base)
         -47 : 35828.dasm (-6.51 % of base)
         -41 : 35130.dasm (-8.72 % of base)
         -13 : 14916.dasm (-5.58 % of base)
         -11 : 35960.dasm (-3.13 % of base)
         -10 : 10175.dasm (-4.13 % of base)
          -8 : 10788.dasm (-2.88 % of base)
          -7 : 18158.dasm (-1.07 % of base)
          -5 : 20304.dasm (-4.55 % of base)
          -5 : 21166.dasm (-4.55 % of base)
          -5 : 30118.dasm (-4.55 % of base)
          -5 : 8038.dasm (-4.55 % of base)
          -5 : 15842.dasm (-4.55 % of base)
          -5 : 27491.dasm (-4.55 % of base)
          -5 : 29326.dasm (-4.55 % of base)
          -5 : 31021.dasm (-4.55 % of base)
          -3 : 23281.dasm (-0.24 % of base)
          -3 : 32259.dasm (-6.82 % of base)
          -3 : 44866.dasm (-0.28 % of base)
          -1 : 10289.dasm (-0.96 % of base)
83 total files with Code Size differences (23 improved, 60 regressed), 8 unchanged.
Top method regressions (bytes):
       19834 (63.36 % of base) : 5971.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.IndexViewModel,int) (FullOpts)
       12441 (38.62 % of base) : 20366.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.MyEventsListerItem,int) (FullOpts)
        7919 (74.53 % of base) : 45619.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier0-FullOpts)
        7803 (60.71 % of base) : 27820.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.CollectionsOfPrimitives,int) (FullOpts)
        7124 (47.41 % of base) : 6455.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        6368 (72.70 % of base) : 11968.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0-FullOpts)
        6252 (89.72 % of base) : 8153.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (Tier0-FullOpts)
        5881 (42.40 % of base) : 45459.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
        5844 (69.83 % of base) : 33537.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier0-FullOpts)
        5464 (84.70 % of base) : 34711.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (Tier0-FullOpts)
        5326 (64.71 % of base) : 19901.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Tier0-FullOpts)
        5292 (82.60 % of base) : 32250.dasm - (dynamicClass):_DynamicMethod0(System.IO.TextWriter,MicroBenchmarks.Serializers.Location,int) (FullOpts)
        5230 (89.97 % of base) : 36534.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (Tier0-FullOpts)
        4943 (92.55 % of base) : 9200.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier0-FullOpts)
        4905 (85.30 % of base) : 47815.dasm - (dynamicClass):ReadMyEventsListerItemFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        4657 (85.59 % of base) : 4737.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier0-FullOpts)
        4186 (85.78 % of base) : 45900.dasm - (dynamicClass):ReadActiveOrUpcomingEventFromJson(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        4155 (86.60 % of base) : 45918.dasm - Jil.Deserialize.Methods:SkipEncodedStringWithLeadCharThunkReader(byref,int) (Tier0-FullOpts)
        3688 (101.96 % of base) : 32540.dasm - Jil.Deserialize.Methods:_ReadEncodedStringWithCharArrayThunkReader(byref,byref):System.String (Tier0-FullOpts)
        3564 (104.67 % of base) : 31625.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier0-FullOpts)
Top method improvements (bytes):
       -1298 (-13.73 % of base) : 19139.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         -47 (-6.51 % of base) : 35828.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80:MoveNext():ubyte:this (Tier0-FullOpts)
         -41 (-8.72 % of base) : 35130.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier0-FullOpts)
         -13 (-5.58 % of base) : 14916.dasm - ProtoBuf.Meta.RuntimeTypeModel:FindWithoutAdd(System.Type):ProtoBuf.Meta.MetaType:this (Tier0-FullOpts)
         -11 (-3.13 % of base) : 35960.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (Tier0-FullOpts)
         -10 (-4.13 % of base) : 10175.dasm - BenchmarksGame.KNucleotide_9:find(ubyte[],ubyte[],int,byref):int (Tier0-FullOpts)
          -8 (-2.88 % of base) : 10788.dasm - Microsoft.Extensions.Logging.LogValuesFormatter:FindBraceIndex(System.String,ushort,int,int):int (Tier0-FullOpts)
          -7 (-1.07 % of base) : 18158.dasm - System.IO.StreamReader:ReadBuffer(System.Span`1[ushort],byref):int:this (Tier0-FullOpts)
          -5 (-4.55 % of base) : 20304.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 21166.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 30118.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 8038.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 15842.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 27491.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 29326.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 31021.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -3 (-6.82 % of base) : 32259.dasm - Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
          -3 (-0.28 % of base) : 44866.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[int]:WriteAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier0-FullOpts)
          -3 (-0.24 % of base) : 23281.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[System.__Canon]:WriteAsync(System.__Canon,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier0-FullOpts)
          -1 (-1.14 % of base) : 36790.dasm - Microsoft.CodeAnalysis.GreenNode:GetSlotOffset(int):int:this (Tier0-FullOpts)
Top method regressions (percentages):
          88 (141.94 % of base) : 38671.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (Tier0-FullOpts)
        2699 (141.90 % of base) : 4352.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
         175 (138.89 % of base) : 30280.dasm - AssignRect:CopyToAssign(int[,],int[,]) (Tier0-FullOpts)
         187 (137.50 % of base) : 33473.dasm - Benchstone.MDBenchI.MDArray2:Initialize(int[,,]) (Tier0-FullOpts)
        1768 (137.27 % of base) : 30283.dasm - AssignRect:first_assignments(int[,],short[,]):int (Tier0-FullOpts)
        2222 (133.21 % of base) : 47289.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier0-FullOpts)
         187 (123.03 % of base) : 44760.dasm - Benchstone.MDBenchF.MDInProd:InitMatrix(double[,]) (Tier0-FullOpts)
         243 (117.96 % of base) : 33474.dasm - Benchstone.MDBenchI.MDArray2:VerifyCopy(int[,,],int[,,]):ubyte (Tier0-FullOpts)
         900 (115.38 % of base) : 35989.dasm - System.Reflection.Metadata.MetadataReader:InitializeNestedTypesMap():this (Tier0-FullOpts)
        1583 (114.30 % of base) : 47056.dasm - ProtoBuf.Internal.PrimaryTypeProvider:ProtoBuf.Serializers.ISerializer<ProtoBuf.Internal.PrimaryTypeProvider.ScaledTicks>.Read(byref,ProtoBuf.Internal.PrimaryTypeProvider+ScaledTicks):ProtoBuf.Internal.PrimaryTypeProvider+ScaledTicks:this (Tier0-FullOpts)
         128 (111.30 % of base) : 47299.dasm - NumericSortJagged:NumSift(int[],int,int) (Tier0-FullOpts)
        2577 (110.18 % of base) : 32505.dasm - System.Text.Json.Tests.Perf_Segment:ReadMultiSegmentSequenceUsingSpan(int):this (Tier0-FullOpts)
        2539 (108.64 % of base) : 9072.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (Tier0-FullOpts)
        1916 (108.62 % of base) : 34025.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:LexSyntaxTrivia(ubyte,ubyte,byref):this (Tier0-FullOpts)
         184 (108.24 % of base) : 30815.dasm - System.Runtime.Serialization.Json.XmlJsonReader:ComputeNumericalTextLength(ubyte[],int,int):int (Tier0-FullOpts)
        1132 (107.81 % of base) : 43968.dasm - Benchstone.BenchF.NewtE:Test():ubyte:this (Tier0-FullOpts)
         142 (107.58 % of base) : 30279.dasm - AssignRect:LoadAssign(int[,]) (Tier0-FullOpts)
         194 (107.18 % of base) : 15195.dasm - System.Collections.Generic.GenericArraySortHelper`2[int,System.__Canon]:InsertionSort(System.Span`1[int],System.Span`1[System.__Canon]) (Tier0-FullOpts)
        1683 (107.13 % of base) : 38949.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitInstanceCallExpression(Microsoft.CodeAnalysis.CSharp.BoundCall,int):this (Tier0-FullOpts)
        2390 (107.08 % of base) : 35090.dasm - Microsoft.CodeAnalysis.MetadataReaderExtensions:GetReferencedAssembliesOrThrow(System.Reflection.Metadata.MetadataReader):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AssemblyIdentity] (Tier0-FullOpts)
Top method improvements (percentages):
       -1298 (-13.73 % of base) : 19139.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         -41 (-8.72 % of base) : 35130.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (Tier0-FullOpts)
          -3 (-6.82 % of base) : 32259.dasm - Struct.SpanWrapper:SumSpanWrapper(Struct.SpanWrapper`1[int]):int:this (Tier0-FullOpts)
         -47 (-6.51 % of base) : 35828.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80:MoveNext():ubyte:this (Tier0-FullOpts)
         -13 (-5.58 % of base) : 14916.dasm - ProtoBuf.Meta.RuntimeTypeModel:FindWithoutAdd(System.Type):ProtoBuf.Meta.MetaType:this (Tier0-FullOpts)
          -5 (-4.55 % of base) : 20304.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 21166.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 30118.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 8038.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 15842.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 27491.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 29326.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
          -5 (-4.55 % of base) : 31021.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (Tier0-FullOpts)
         -10 (-4.13 % of base) : 10175.dasm - BenchmarksGame.KNucleotide_9:find(ubyte[],ubyte[],int,byref):int (Tier0-FullOpts)
         -11 (-3.13 % of base) : 35960.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (Tier0-FullOpts)
          -8 (-2.88 % of base) : 10788.dasm - Microsoft.Extensions.Logging.LogValuesFormatter:FindBraceIndex(System.String,ushort,int,int):int (Tier0-FullOpts)
          -1 (-1.14 % of base) : 36790.dasm - Microsoft.CodeAnalysis.GreenNode:GetSlotOffset(int):int:this (Tier0-FullOpts)
          -7 (-1.07 % of base) : 18158.dasm - System.IO.StreamReader:ReadBuffer(System.Span`1[ushort],byref):int:this (Tier0-FullOpts)
          -1 (-1.01 % of base) : 18788.dasm - System.Collections.Generic.HashSet`1+Enumerator[int]:MoveNext():ubyte:this (Tier0-FullOpts)
          -1 (-0.97 % of base) : 236.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (Tier0-FullOpts)
  
coreclr_tests.run.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 307202031 (overridden on cmd)
Total bytes of diff: 314282101 (overridden on cmd)
Total bytes of delta: 7080070 (2.30 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       15591 : 357838.dasm (98.84 % of base)
       15591 : 568112.dasm (98.84 % of base)
       11412 : 560839.dasm (97.34 % of base)
       11412 : 342803.dasm (97.34 % of base)
       10192 : 568391.dasm (99.55 % of base)
       10192 : 358194.dasm (99.55 % of base)
        7927 : 558833.dasm (90.77 % of base)
        7924 : 233957.dasm (74.54 % of base)
        7924 : 480962.dasm (74.54 % of base)
        7897 : 338565.dasm (90.53 % of base)
        6565 : 558826.dasm (73.92 % of base)
        6563 : 338543.dasm (70.32 % of base)
        6074 : 336807.dasm (102.64 % of base)
        6074 : 558036.dasm (102.64 % of base)
        5952 : 1401.dasm (91.56 % of base)
        5849 : 233862.dasm (69.85 % of base)
        5849 : 480905.dasm (69.85 % of base)
        5764 : 476001.dasm (89.53 % of base)
        5716 : 223570.dasm (89.12 % of base)
        5513 : 292150.dasm (106.88 % of base)
Top file improvements (bytes):
       -1298 : 481198.dasm (-13.72 % of base)
       -1298 : 234857.dasm (-13.72 % of base)
        -567 : 185447.dasm (-31.22 % of base)
        -567 : 457736.dasm (-31.22 % of base)
        -565 : 185632.dasm (-31.20 % of base)
        -565 : 457871.dasm (-31.20 % of base)
        -419 : 185494.dasm (-27.82 % of base)
        -419 : 185474.dasm (-27.82 % of base)
        -417 : 457751.dasm (-27.69 % of base)
        -417 : 457766.dasm (-27.69 % of base)
        -415 : 185667.dasm (-27.67 % of base)
        -415 : 185650.dasm (-27.67 % of base)
        -413 : 457886.dasm (-27.53 % of base)
        -413 : 457901.dasm (-27.53 % of base)
        -228 : 186778.dasm (-11.21 % of base)
        -226 : 458708.dasm (-11.11 % of base)
        -210 : 405549.dasm (-12.02 % of base)
        -210 : 405634.dasm (-12.00 % of base)
        -210 : 79895.dasm (-12.02 % of base)
        -210 : 80014.dasm (-12.00 % of base)
87 total files with Code Size differences (28 improved, 59 regressed), 20 unchanged.
Top method regressions (bytes):
       15591 (98.84 % of base) : 568112.dasm - CseTest.Test_Main:TestEntryPoint():int (FullOpts)
       15591 (98.84 % of base) : 357838.dasm - CseTest.Test_Main:TestEntryPoint():int (Tier0-FullOpts)
       11412 (97.34 % of base) : 560839.dasm - Internal.IL.ILImporter:ImportBasicBlock(Internal.IL.ILImporter+BasicBlock):this (FullOpts)
       11412 (97.34 % of base) : 342803.dasm - Internal.IL.ILImporter:ImportBasicBlock(Internal.IL.ILImporter+BasicBlock):this (Tier0-FullOpts)
       10192 (99.55 % of base) : 568391.dasm - SimpleArray_01.Test:Test1() (FullOpts)
       10192 (99.55 % of base) : 358194.dasm - SimpleArray_01.Test:Test1() (Tier0-FullOpts)
        7927 (90.77 % of base) : 558833.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
        7924 (74.54 % of base) : 480962.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (FullOpts)
        7924 (74.54 % of base) : 233957.dasm - Benchstone.MDBenchF.MDLLoops:Main1(int):this (Tier0-FullOpts)
        7897 (90.53 % of base) : 338565.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (Tier0-FullOpts)
        6565 (73.92 % of base) : 558826.dasm - ILCompiler.Win32Resources.ResourceData:WriteResources(ILCompiler.DependencyAnalysis.ISymbolNode,byref,byref):this (FullOpts)
        6563 (70.32 % of base) : 338543.dasm - ILCompiler.Win32Resources.ResourceData:WriteResources(ILCompiler.DependencyAnalysis.ISymbolNode,byref,byref):this (Tier0-FullOpts)
        6074 (102.64 % of base) : 558036.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (FullOpts)
        6074 (102.64 % of base) : 336807.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (Tier0-FullOpts)
        5952 (91.56 % of base) : 1401.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Instrumented Tier1)
        5849 (69.85 % of base) : 480905.dasm - Benchstone.BenchF.LLoops:Main1(int):this (FullOpts)
        5849 (69.85 % of base) : 233862.dasm - Benchstone.BenchF.LLoops:Main1(int):this (Tier0-FullOpts)
        5764 (89.53 % of base) : 476001.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
        5716 (89.12 % of base) : 223570.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (Tier0-FullOpts)
        5513 (106.88 % of base) : 292150.dasm - System.Number:NumberToStringFormat[ushort](byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (Tier1)
Top method improvements (bytes):
       -1298 (-13.72 % of base) : 481198.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
       -1298 (-13.72 % of base) : 234857.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
        -567 (-31.22 % of base) : 457736.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackHighDouble:ValidateResult(double[],double[],double[],System.String):this (FullOpts)
        -567 (-31.22 % of base) : 185447.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackHighDouble:ValidateResult(double[],double[],double[],System.String):this (Tier0-FullOpts)
        -565 (-31.20 % of base) : 457871.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackLowDouble:ValidateResult(double[],double[],double[],System.String):this (FullOpts)
        -565 (-31.20 % of base) : 185632.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackLowDouble:ValidateResult(double[],double[],double[],System.String):this (Tier0-FullOpts)
        -419 (-27.82 % of base) : 185474.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackHighInt64:ValidateResult(long[],long[],long[],System.String):this (Tier0-FullOpts)
        -419 (-27.82 % of base) : 185494.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackHighUInt64:ValidateResult(ulong[],ulong[],ulong[],System.String):this (Tier0-FullOpts)
        -417 (-27.69 % of base) : 457751.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackHighInt64:ValidateResult(long[],long[],long[],System.String):this (FullOpts)
        -417 (-27.69 % of base) : 457766.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackHighUInt64:ValidateResult(ulong[],ulong[],ulong[],System.String):this (FullOpts)
        -415 (-27.67 % of base) : 185650.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackLowInt64:ValidateResult(long[],long[],long[],System.String):this (Tier0-FullOpts)
        -415 (-27.67 % of base) : 185667.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackLowUInt64:ValidateResult(ulong[],ulong[],ulong[],System.String):this (Tier0-FullOpts)
        -413 (-27.53 % of base) : 457886.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackLowInt64:ValidateResult(long[],long[],long[],System.String):this (FullOpts)
        -413 (-27.53 % of base) : 457901.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackLowUInt64:ValidateResult(ulong[],ulong[],ulong[],System.String):this (FullOpts)
        -228 (-11.21 % of base) : 186778.dasm - JIT.HardwareIntrinsics.X86._Sse41.SimpleTernaryOpTest__BlendVariableDouble:ValidateResult(double[],double[],double[],double[],System.String):this (Tier0-FullOpts)
        -226 (-11.11 % of base) : 458708.dasm - JIT.HardwareIntrinsics.X86._Sse41.SimpleTernaryOpTest__BlendVariableDouble:ValidateResult(double[],double[],double[],double[],System.String):this (FullOpts)
        -210 (-12.02 % of base) : 405549.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorTernaryOpTest__ConditionalSelectInt64:ValidateResult(long[],long[],long[],long[],System.String):this (FullOpts)
        -210 (-12.02 % of base) : 79895.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorTernaryOpTest__ConditionalSelectInt64:ValidateResult(long[],long[],long[],long[],System.String):this (Tier0-FullOpts)
        -210 (-12.00 % of base) : 405634.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorTernaryOpTest__ConditionalSelectUInt64:ValidateResult(ulong[],ulong[],ulong[],ulong[],System.String):this (FullOpts)
        -210 (-12.00 % of base) : 80014.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorTernaryOpTest__ConditionalSelectUInt64:ValidateResult(ulong[],ulong[],ulong[],ulong[],System.String):this (Tier0-FullOpts)
Top method regressions (percentages):
        2900 (145.36 % of base) : 223977.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
          88 (141.94 % of base) : 478075.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (FullOpts)
          88 (141.94 % of base) : 228924.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (Tier0-FullOpts)
        2699 (141.90 % of base) : 476208.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
         187 (137.50 % of base) : 480941.dasm - Benchstone.MDBenchI.MDArray2:Initialize(int[,,]) (FullOpts)
         187 (137.50 % of base) : 233927.dasm - Benchstone.MDBenchI.MDArray2:Initialize(int[,,]) (Tier0-FullOpts)
        1768 (137.27 % of base) : 479529.dasm - AssignRect:first_assignments(int[,],short[,]):int (FullOpts)
        1768 (137.27 % of base) : 222564.dasm - AssignRect:first_assignments(int[,],short[,]):int (Tier0-FullOpts)
        2222 (133.21 % of base) : 480973.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (FullOpts)
        2222 (133.21 % of base) : 233970.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier0-FullOpts)
        1223 (130.24 % of base) : 504681.dasm - Test_doublearr_basics.double1:Process3DArray(double[,,]) (FullOpts)
        1223 (130.24 % of base) : 266075.dasm - Test_doublearr_basics.double1:Process3DArray(double[,,]) (Tier0-FullOpts)
         169 (125.19 % of base) : 511568.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (FullOpts)
         169 (125.19 % of base) : 276323.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (Tier0-FullOpts)
        2642 (124.45 % of base) : 504989.dasm - JitTest_lcs_ulong_arrays_cs.LCS:findLCS(ulong[,,,],ulong[,,,],ushort[][],ulong[]) (FullOpts)
        2642 (124.45 % of base) : 266708.dasm - JitTest_lcs_ulong_arrays_cs.LCS:findLCS(ulong[,,,],ulong[,,,],ushort[][],ulong[]) (Tier0-FullOpts)
         180 (123.29 % of base) : 480953.dasm - Benchstone.MDBenchF.MDInProd:InitMatrix(double[,]) (FullOpts)
         180 (123.29 % of base) : 233941.dasm - Benchstone.MDBenchF.MDInProd:InitMatrix(double[,]) (Tier0-FullOpts)
        2805 (122.44 % of base) : 504981.dasm - JitTest_lcs_long_arrays_cs.LCS:findLCS(long[,,,],long[,,,],ushort[][],long[]) (FullOpts)
        2805 (122.44 % of base) : 266686.dasm - JitTest_lcs_long_arrays_cs.LCS:findLCS(long[,,,],long[,,,],ushort[][],long[]) (Tier0-FullOpts)
Top method improvements (percentages):
         -34 (-61.82 % of base) : 519554.dasm - foo:Main():int (FullOpts)
         -34 (-61.82 % of base) : 289397.dasm - foo:Main():int (Tier0-FullOpts)
        -567 (-31.22 % of base) : 457736.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackHighDouble:ValidateResult(double[],double[],double[],System.String):this (FullOpts)
        -567 (-31.22 % of base) : 185447.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackHighDouble:ValidateResult(double[],double[],double[],System.String):this (Tier0-FullOpts)
        -565 (-31.20 % of base) : 457871.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackLowDouble:ValidateResult(double[],double[],double[],System.String):this (FullOpts)
        -565 (-31.20 % of base) : 185632.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackLowDouble:ValidateResult(double[],double[],double[],System.String):this (Tier0-FullOpts)
        -419 (-27.82 % of base) : 185474.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackHighInt64:ValidateResult(long[],long[],long[],System.String):this (Tier0-FullOpts)
        -419 (-27.82 % of base) : 185494.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackHighUInt64:ValidateResult(ulong[],ulong[],ulong[],System.String):this (Tier0-FullOpts)
        -417 (-27.69 % of base) : 457751.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackHighInt64:ValidateResult(long[],long[],long[],System.String):this (FullOpts)
        -417 (-27.69 % of base) : 457766.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackHighUInt64:ValidateResult(ulong[],ulong[],ulong[],System.String):this (FullOpts)
        -415 (-27.67 % of base) : 185650.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackLowInt64:ValidateResult(long[],long[],long[],System.String):this (Tier0-FullOpts)
        -415 (-27.67 % of base) : 185667.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackLowUInt64:ValidateResult(ulong[],ulong[],ulong[],System.String):this (Tier0-FullOpts)
        -413 (-27.53 % of base) : 457886.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackLowInt64:ValidateResult(long[],long[],long[],System.String):this (FullOpts)
        -413 (-27.53 % of base) : 457901.dasm - JIT.HardwareIntrinsics.X86._Sse2.SimpleBinaryOpTest__UnpackLowUInt64:ValidateResult(ulong[],ulong[],ulong[],System.String):this (FullOpts)
        -138 (-24.38 % of base) : 416229.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementInt640:ValidateWithResult(long[],long[],long,System.String):this (FullOpts)
        -138 (-24.38 % of base) : 416299.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementUInt640:ValidateWithResult(ulong[],ulong[],ulong,System.String):this (FullOpts)
        -138 (-24.08 % of base) : 94547.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementInt640:ValidateWithResult(long[],long[],long,System.String):this (Tier0-FullOpts)
        -138 (-24.08 % of base) : 94638.dasm - JIT.HardwareIntrinsics.General._Vector64_1.VectorGetAndWithElement__GetAndWithElementUInt640:ValidateWithResult(ulong[],ulong[],ulong,System.String):this (Tier0-FullOpts)
         -31 (-22.46 % of base) : 479656.dasm - Benchstone.BenchI.BubbleSort2:Bench():ubyte (FullOpts)
         -31 (-22.46 % of base) : 231981.dasm - Benchstone.BenchI.BubbleSort2:Bench():ubyte (Tier0-FullOpts)
  
libraries.crossgen2.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 30974839 (overridden on cmd)
Total bytes of diff: 34090209 (overridden on cmd)
Total bytes of delta: 3115370 (10.06 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       45767 : 64665.dasm (76.70 % of base)
        9270 : 30709.dasm (93.84 % of base)
        8622 : 30605.dasm (105.47 % of base)
        7933 : 146021.dasm (71.36 % of base)
        6799 : 62688.dasm (77.28 % of base)
        5733 : 49572.dasm (97.04 % of base)
        5710 : 2620.dasm (71.84 % of base)
        5537 : 132552.dasm (46.90 % of base)
        5515 : 62874.dasm (100.31 % of base)
        5395 : 188261.dasm (71.99 % of base)
        4386 : 18002.dasm (98.52 % of base)
        3988 : 228250.dasm (74.33 % of base)
        3774 : 149568.dasm (73.34 % of base)
        3772 : 63212.dasm (105.45 % of base)
        3772 : 63254.dasm (105.45 % of base)
        3760 : 49889.dasm (83.02 % of base)
        3609 : 132605.dasm (100.36 % of base)
        3556 : 179980.dasm (82.31 % of base)
        3499 : 86300.dasm (89.26 % of base)
        3499 : 120627.dasm (89.26 % of base)
Top file improvements (bytes):
        -419 : 237138.dasm (-6.13 % of base)
         -44 : 21285.dasm (-9.57 % of base)
         -31 : 212841.dasm (-1.09 % of base)
         -23 : 238279.dasm (-4.28 % of base)
         -21 : 186055.dasm (-6.02 % of base)
         -15 : 238242.dasm (-6.05 % of base)
         -15 : 175750.dasm (-4.08 % of base)
         -13 : 120887.dasm (-5.60 % of base)
         -13 : 129177.dasm (-3.79 % of base)
         -13 : 140630.dasm (-1.29 % of base)
         -12 : 152849.dasm (-4.26 % of base)
         -11 : 89382.dasm (-10.19 % of base)
          -9 : 109217.dasm (-8.82 % of base)
          -9 : 141092.dasm (-2.09 % of base)
          -9 : 17576.dasm (-4.57 % of base)
          -9 : 74208.dasm (-8.82 % of base)
          -8 : 191672.dasm (-2.93 % of base)
          -8 : 131158.dasm (-3.85 % of base)
          -8 : 184231.dasm (-2.93 % of base)
          -8 : 211385.dasm (-2.87 % of base)
90 total files with Code Size differences (28 improved, 62 regressed), 20 unchanged.
Top method regressions (bytes):
       45767 (76.70 % of base) : 64665.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (FullOpts)
        9270 (93.84 % of base) : 30709.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)
        8622 (105.47 % of base) : 30605.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)
        7933 (71.36 % of base) : 146021.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureForASingleCandidate(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.Location,int,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],ubyte,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbol):this (FullOpts)
        6799 (77.28 % of base) : 62688.dasm - System.Data.XmlTreeGen:HandleTable(System.Data.DataTable,System.Xml.XmlDocument,System.Xml.XmlElement,ubyte):System.Xml.XmlElement:this (FullOpts)
        5733 (97.04 % of base) : 49572.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)
        5710 (71.84 % of base) : 2620.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
        5537 (46.90 % of base) : 132552.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 (FullOpts)
        5515 (100.31 % of base) : 62874.dasm - System.Data.RBTree`1[int]:RBInsert(int,int,int,int,ubyte):int:this (FullOpts)
        5395 (71.99 % of base) : 188261.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,ubyte,byref,ubyte):ubyte:this (FullOpts)
        4386 (98.52 % of base) : 18002.dasm - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (FullOpts)
        3988 (74.33 % of base) : 228250.dasm - System.Data.OleDb.OleDbCommandBuilder:DeriveParametersFromStoredProcedure(System.Data.OleDb.OleDbConnection,System.Data.OleDb.OleDbCommand):System.Data.OleDb.OleDbParameter[] (FullOpts)
        3774 (73.34 % of base) : 149568.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberFieldSymbol:Create(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.FieldDeclarationSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol+MembersAndInitializersBuilder,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag) (FullOpts)
        3772 (105.45 % of base) : 63254.dasm - System.Data.RBTree`1[int]:RBDeleteFixup(int,int,int,int):int:this (FullOpts)
        3772 (105.45 % of base) : 63212.dasm - System.Data.RBTree`1[System.__Canon]:RBDeleteFixup(int,int,int,int):int:this (FullOpts)
        3760 (83.02 % of base) : 49889.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (FullOpts)
        3609 (100.36 % of base) : 132605.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteMemberElementsIf(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[],System.Xml.Serialization.XmlSerializationReaderCodeGen+Member,System.String,System.String):this (FullOpts)
        3556 (82.31 % of base) : 179980.dasm - System.Globalization.FormatProvider+Number:NumberToStringFormat(byref,byref,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo) (FullOpts)
        3499 (89.26 % of base) : 86300.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ReferencedAssemblyIdentity[System.__Canon,System.__Canon]]],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
        3499 (89.26 % of base) : 120627.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ReferencedAssemblyIdentity[System.__Canon,System.__Canon]]],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
Top method improvements (bytes):
        -419 (-6.13 % of base) : 237138.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -44 (-9.57 % of base) : 21285.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (FullOpts)
         -31 (-1.09 % of base) : 212841.dasm - System.Net.WebSockets.WebSocketHandle+<ConnectAsync>d__22:MoveNext():this (FullOpts)
         -23 (-4.28 % of base) : 238279.dasm - System.IO.Compression.Zip64ExtraField:GetJustZip64Block(System.IO.Stream,ubyte,ubyte,ubyte,ubyte):System.IO.Compression.Zip64ExtraField (FullOpts)
         -21 (-6.02 % of base) : 186055.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+ArrayTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+ArrayTypeKey,byref):ubyte:this (FullOpts)
         -15 (-4.08 % of base) : 175750.dasm - System.Diagnostics.Eventing.Reader.EventTask:PrepareData():this (FullOpts)
         -15 (-6.05 % of base) : 238242.dasm - System.IO.Compression.ZipHelper:SeekBackwardsToSignature(System.IO.Stream,uint,int):ubyte (FullOpts)
         -13 (-1.29 % of base) : 140630.dasm - Newtonsoft.Json.Converters.XmlNodeConverter:ReadAttributeElements(Newtonsoft.Json.JsonReader,System.Xml.XmlNamespaceManager):System.Collections.Generic.Dictionary`2[System.String,System.String]:this (FullOpts)
         -13 (-5.60 % of base) : 120887.dasm - Roslyn.Utilities.OneOrMany`1+<<OfType>g__iterateElements|18_0>d`1[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -13 (-3.79 % of base) : 129177.dasm - System.Xml.XmlCharCheckingWriter:InterleaveInvalidChars(System.String,ushort,ushort):System.String (FullOpts)
         -12 (-4.26 % of base) : 152849.dasm - Microsoft.CodeAnalysis.VisualBasic.MethodCompiler:DetectAndReportCyclesInConstructorCalls(System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
         -11 (-10.19 % of base) : 89382.dasm - Microsoft.Diagnostics.Tracing.EventPipeEventHeader:ReadVarUInt64(byref):ulong (FullOpts)
          -9 (-2.09 % of base) : 141092.dasm - Newtonsoft.Json.Linq.JsonPath.ArrayMultipleIndexFilter+<ExecuteFilter>d__2:MoveNext():ubyte:this (FullOpts)
          -9 (-8.82 % of base) : 109217.dasm - Roslyn.Utilities.PathUtilities:TrimTrailingSeparators(System.String):System.String (FullOpts)
          -9 (-8.82 % of base) : 74208.dasm - Roslyn.Utilities.PathUtilities:TrimTrailingSeparators(System.String):System.String (FullOpts)
          -9 (-4.57 % of base) : 17576.dasm - System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (FullOpts)
          -8 (-2.87 % of base) : 211385.dasm - Microsoft.Extensions.Logging.LogValuesFormatter:FindBraceIndex(System.String,ushort,int,int):int (FullOpts)
          -8 (-2.93 % of base) : 191672.dasm - System.Configuration.XmlUtil:.ctor(System.IO.Stream,System.String,ubyte,System.Configuration.ConfigurationSchemaErrors):this (FullOpts)
          -8 (-2.93 % of base) : 184231.dasm - System.Configuration.XmlUtil:.ctor(System.IO.Stream,System.String,ubyte,System.Configuration.ConfigurationSchemaErrors):this (FullOpts)
          -8 (-3.85 % of base) : 131158.dasm - System.Xml.ValidateNames:ParseNCName(System.String,int):int (FullOpts)
Top method regressions (percentages):
        2363 (127.25 % of base) : 73757.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
         229 (122.46 % of base) : 185280.dasm - Internal.TypeSystem.TypeSystemConstraintsHelpers:CheckValidInstantiationArguments(Internal.TypeSystem.Instantiation):ubyte (FullOpts)
         161 (121.05 % of base) : 90384.dasm - Microsoft.Diagnostics.Tracing.StackSources.ParallelLinuxPerfScriptStackSource:FindValidStartOn(Microsoft.Diagnostics.Tracing.Utilities.FastStream):this (FullOpts)
         880 (120.55 % of base) : 117453.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer+FrameworkRetargetingDictionary:TryGetValue(Microsoft.CodeAnalysis.AssemblyIdentity,byref):ubyte:this (FullOpts)
         880 (120.55 % of base) : 83050.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer+FrameworkRetargetingDictionary:TryGetValue(Microsoft.CodeAnalysis.AssemblyIdentity,byref):ubyte:this (FullOpts)
        1010 (120.38 % of base) : 17117.dasm - System.Threading.TimerQueue:FireNextTimers():this (FullOpts)
         414 (114.36 % of base) : 184279.dasm - System.Configuration.XmlUtilWriter:AppendEscapeXmlString(System.String,ubyte,ushort):int:this (FullOpts)
         414 (114.36 % of base) : 191716.dasm - System.Configuration.XmlUtilWriter:AppendEscapeXmlString(System.String,ubyte,ushort):int:this (FullOpts)
         299 (114.12 % of base) : 107295.dasm - Microsoft.Diagnostics.Tracing.Ctf.CtfChannel:ReadContext():ubyte:this (FullOpts)
         485 (113.58 % of base) : 41453.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseDeclarationModifiers(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxListBuilder):this (FullOpts)
        1398 (113.47 % of base) : 206452.dasm - System.Runtime.Caching.UsageBucket:Reduce():this (FullOpts)
         253 (111.95 % of base) : 66820.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:check0@1495-1(ubyte,System.Collections.IEqualityComparer,System.Array,System.Array,long,long,long,long,long,long,long):ubyte (FullOpts)
         255 (109.91 % of base) : 66801.dasm - Microsoft.FSharp.Core.LanguagePrimitives+HashCompare:check0@1028(Microsoft.FSharp.Core.LanguagePrimitives+HashCompare+GenericComparer,System.Array,System.Array,long,long,long,long,long,long,long):int (FullOpts)
         103 (109.57 % of base) : 144015.dasm - System.Xml.XmlCanonicalWriter:Equals(ubyte[],int,int,ubyte[],int,int):ubyte (FullOpts)
        1299 (108.89 % of base) : 216448.dasm - System.Net.HttpListenerRequest+Helpers:UrlDecodeStringFromStringInternal(System.String,System.Text.Encoding):System.String (FullOpts)
         225 (108.17 % of base) : 107374.dasm - Microsoft.Diagnostics.Tracing.Ctf.CtfMetadataLegacyParser:FindCloseBrace(System.String,int):int (FullOpts)
         113 (107.62 % of base) : 89670.dasm - Microsoft.Diagnostics.Tracing.Utilities.FastStream:ReadAsciiStringUpToAny(System.String,System.Text.StringBuilder):this (FullOpts)
         184 (107.60 % of base) : 144169.dasm - System.Runtime.Serialization.Json.XmlJsonReader:ComputeNumericalTextLength(ubyte[],int,int):int (FullOpts)
        1376 (107.58 % of base) : 187487.dasm - System.Collections.Generic.SegmentedList`1[ubyte]:QuickSort(long,long,System.Collections.Generic.IComparer`1[ubyte]):this (FullOpts)
        1299 (106.91 % of base) : 215930.dasm - System.Web.Util.HttpEncoder:UrlDecode(System.String,System.Text.Encoding):System.String (FullOpts)
Top method improvements (percentages):
         -11 (-10.19 % of base) : 89382.dasm - Microsoft.Diagnostics.Tracing.EventPipeEventHeader:ReadVarUInt64(byref):ulong (FullOpts)
         -44 (-9.57 % of base) : 21285.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (FullOpts)
          -9 (-8.82 % of base) : 109217.dasm - Roslyn.Utilities.PathUtilities:TrimTrailingSeparators(System.String):System.String (FullOpts)
          -9 (-8.82 % of base) : 74208.dasm - Roslyn.Utilities.PathUtilities:TrimTrailingSeparators(System.String):System.String (FullOpts)
        -419 (-6.13 % of base) : 237138.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -15 (-6.05 % of base) : 238242.dasm - System.IO.Compression.ZipHelper:SeekBackwardsToSignature(System.IO.Stream,uint,int):ubyte (FullOpts)
         -21 (-6.02 % of base) : 186055.dasm - Internal.TypeSystem.LockFreeReaderHashtable`2[Internal.TypeSystem.TypeSystemContext+ArrayTypeKey,System.__Canon]:TryGetValue(Internal.TypeSystem.TypeSystemContext+ArrayTypeKey,byref):ubyte:this (FullOpts)
         -13 (-5.60 % of base) : 120887.dasm - Roslyn.Utilities.OneOrMany`1+<<OfType>g__iterateElements|18_0>d`1[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -9 (-4.57 % of base) : 17576.dasm - System.Reflection.CustomAttribute:IsDefined(System.RuntimeType,System.RuntimeType,ubyte):ubyte (FullOpts)
         -23 (-4.28 % of base) : 238279.dasm - System.IO.Compression.Zip64ExtraField:GetJustZip64Block(System.IO.Stream,ubyte,ubyte,ubyte,ubyte):System.IO.Compression.Zip64ExtraField (FullOpts)
         -12 (-4.26 % of base) : 152849.dasm - Microsoft.CodeAnalysis.VisualBasic.MethodCompiler:DetectAndReportCyclesInConstructorCalls(System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          -5 (-4.17 % of base) : 6263.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.17 % of base) : 6264.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.17 % of base) : 6259.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.17 % of base) : 6260.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.17 % of base) : 6261.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.17 % of base) : 6262.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.17 % of base) : 6265.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
          -5 (-4.17 % of base) : 6266.dasm - System.Buffers.Text.Utf8Parser:TryParse(System.ReadOnlySpan`1[ubyte],byref,byref,ushort):ubyte (FullOpts)
         -15 (-4.08 % of base) : 175750.dasm - System.Diagnostics.Eventing.Reader.EventTask:PrepareData():this (FullOpts)
  
libraries.pmi.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 46306972 (overridden on cmd)
Total bytes of diff: 50811535 (overridden on cmd)
Total bytes of delta: 4504563 (9.73 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       12701 : 78253.dasm (100.47 % of base)
        9462 : 36596.dasm (102.24 % of base)
        8591 : 262385.dasm (105.83 % of base)
        8383 : 36702.dasm (98.36 % of base)
        8162 : 195788.dasm (93.10 % of base)
        8123 : 68546.dasm (83.90 % of base)
        7283 : 149682.dasm (101.46 % of base)
        6798 : 82499.dasm (91.78 % of base)
        6553 : 195382.dasm (73.70 % of base)
        6252 : 296665.dasm (89.72 % of base)
        6074 : 194139.dasm (102.64 % of base)
        5594 : 78569.dasm (73.84 % of base)
        5080 : 194141.dasm (104.27 % of base)
        4915 : 59918.dasm (96.39 % of base)
        4903 : 195964.dasm (89.59 % of base)
        4891 : 31892.dasm (95.51 % of base)
        4888 : 59981.dasm (85.35 % of base)
        4697 : 30455.dasm (64.26 % of base)
        4609 : 70781.dasm (84.14 % of base)
        4404 : 195249.dasm (82.23 % of base)
Top file improvements (bytes):
       -1298 : 117.dasm (-13.71 % of base)
        -161 : 70785.dasm (-2.87 % of base)
         -68 : 295171.dasm (-10.95 % of base)
         -55 : 213165.dasm (-4.05 % of base)
         -47 : 122199.dasm (-6.51 % of base)
         -47 : 169902.dasm (-6.51 % of base)
         -45 : 249675.dasm (-7.58 % of base)
         -43 : 297377.dasm (-3.96 % of base)
         -41 : 111625.dasm (-8.72 % of base)
         -41 : 159444.dasm (-8.72 % of base)
         -32 : 297379.dasm (-2.73 % of base)
         -26 : 274303.dasm (-8.44 % of base)
         -26 : 297383.dasm (-2.34 % of base)
         -26 : 274310.dasm (-8.44 % of base)
         -25 : 153309.dasm (-11.96 % of base)
         -24 : 181566.dasm (-4.23 % of base)
         -24 : 78309.dasm (-0.52 % of base)
         -21 : 108334.dasm (-12.65 % of base)
         -21 : 108335.dasm (-12.65 % of base)
         -20 : 274309.dasm (-7.46 % of base)
93 total files with Code Size differences (31 improved, 62 regressed), 20 unchanged.
Top method regressions (bytes):
       12701 (100.47 % of base) : 78253.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindFieldAndPropertyInitializers(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.FieldOrPropertyInitializer]],Microsoft.CodeAnalysis.VisualBasic.Symbols.SynthesizedInteractiveInitializerMethod,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundInitializer] (FullOpts)
        9462 (102.24 % of base) : 36596.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)
        8591 (105.83 % of base) : 262385.dasm - System.Management.ManagementClassGenerator:GenerateProperties():this (FullOpts)
        8383 (98.36 % of base) : 36702.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)
        8162 (93.10 % of base) : 195788.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
        8123 (83.90 % of base) : 68546.dasm - System.Data.XmlTreeGen:HandleTable(System.Data.DataTable,System.Xml.XmlDocument,System.Xml.XmlElement,ubyte):System.Xml.XmlElement:this (FullOpts)
        7283 (101.46 % of base) : 149682.dasm - Microsoft.Build.Evaluation.Preprocessor:CloneChildrenResolvingImports(System.Xml.XmlNode,System.Xml.XmlNode):this (FullOpts)
        6798 (91.78 % of base) : 82499.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberFieldSymbol:Create(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.FieldDeclarationSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol+MembersAndInitializersBuilder,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag) (FullOpts)
        6553 (73.70 % of base) : 195382.dasm - ILCompiler.Win32Resources.ResourceData:WriteResources(ILCompiler.DependencyAnalysis.ISymbolNode,byref,byref):this (FullOpts)
        6252 (89.72 % of base) : 296665.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
        6074 (102.64 % of base) : 194139.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (FullOpts)
        5594 (73.84 % of base) : 78569.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)
        5080 (104.27 % of base) : 194141.dasm - Internal.JitInterface.InstructionSetFlags:ExpandInstructionSetByReverseImplicationHelper(int,Internal.JitInterface.InstructionSetFlags):Internal.JitInterface.InstructionSetFlags (FullOpts)
        4915 (96.39 % of base) : 59918.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeTypeParameters(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]:this (FullOpts)
        4903 (89.59 % of base) : 195964.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.InliningInfoNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,ubyte):ILCompiler.DependencyAnalysis.ObjectNode+ObjectData:this (FullOpts)
        4891 (95.51 % of base) : 31892.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:AddUserDefinedConversionsToExplicitCandidateSet(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.UserDefinedConversionAnalysis],Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,ubyte,ubyte,byref):this (FullOpts)
        4888 (85.35 % of base) : 59981.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (FullOpts)
        4697 (64.26 % of base) : 30455.dasm - Microsoft.CodeAnalysis.CSharp.Binder:AnalyzeAnonymousFunction(Microsoft.CodeAnalysis.CSharp.Syntax.AnonymousFunctionExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.UnboundLambda:this (FullOpts)
        4609 (84.14 % of base) : 70781.dasm - System.Data.RBTree`1[ubyte]:RBInsert(int,int,int,int,ubyte):int:this (FullOpts)
        4404 (82.23 % of base) : 195249.dasm - ILCompiler.PettisHansenSort.PettisHansen:Sort(System.Collections.Generic.List`1[ILCompiler.PettisHansenSort.CallGraphNode]):System.Collections.Generic.List`1[System.Collections.Generic.List`1[int]] (FullOpts)
Top method improvements (bytes):
       -1298 (-13.71 % of base) : 117.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        -161 (-2.87 % of base) : 70785.dasm - System.Data.RBTree`1[ubyte]:RBDeleteX(int,int,int):int:this (FullOpts)
         -68 (-10.95 % of base) : 295171.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreateParameterizedConstructor(System.Reflection.ConstructorInfo,System.Type,System.Type,System.Type,System.Type):System.Reflection.Emit.DynamicMethod (FullOpts)
         -55 (-4.05 % of base) : 213165.dasm - Internal.IL.EcmaMethodDebugInformation+<GetParameterNames>d__6:MoveNext():ubyte:this (FullOpts)
         -47 (-6.51 % of base) : 122199.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80:MoveNext():ubyte:this (FullOpts)
         -47 (-6.51 % of base) : 169902.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__85:MoveNext():ubyte:this (FullOpts)
         -45 (-7.58 % of base) : 249675.dasm - System.IO.Compression.Zip64ExtraField:GetJustZip64Block(System.IO.Stream,ubyte,ubyte,ubyte,ubyte):System.IO.Compression.Zip64ExtraField (FullOpts)
         -43 (-3.96 % of base) : 297377.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[int]:WriteAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
         -41 (-8.72 % of base) : 111625.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (FullOpts)
         -41 (-8.72 % of base) : 159444.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (FullOpts)
         -32 (-2.73 % of base) : 297379.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[double]:WriteAsync(double,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
         -26 (-8.44 % of base) : 274303.dasm - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (FullOpts)
         -26 (-8.44 % of base) : 274310.dasm - System.Collections.ObjectModel.KeyedCollection`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:TryGetValue(System.Numerics.Vector`1[float],byref):ubyte:this (FullOpts)
         -26 (-2.34 % of base) : 297383.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelWriter[long]:WriteAsync(long,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
         -25 (-11.96 % of base) : 153309.dasm - Microsoft.Build.Shared.FileMatcher:LastIndexOfDirectorySequence(System.String,int):int (FullOpts)
         -24 (-0.52 % of base) : 78309.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindUnboundLambda(Microsoft.CodeAnalysis.VisualBasic.UnboundLambda,Microsoft.CodeAnalysis.VisualBasic.UnboundLambda+TargetSignature):Microsoft.CodeAnalysis.VisualBasic.BoundLambda:this (FullOpts)
         -24 (-4.23 % of base) : 181566.dasm - System.Xml.XmlCharCheckingWriter:InterleaveInvalidChars(System.String,ushort,ushort):System.String (FullOpts)
         -21 (-12.65 % of base) : 108335.dasm - Roslyn.Utilities.OneOrMany`1[ubyte]:Any[short](System.Func`3[ubyte,short,ubyte],short):ubyte:this (FullOpts)
         -21 (-12.65 % of base) : 108334.dasm - Roslyn.Utilities.OneOrMany`1[ubyte]:Any[ubyte](System.Func`3[ubyte,ubyte,ubyte],ubyte):ubyte:this (FullOpts)
         -20 (-7.46 % of base) : 274309.dasm - System.Collections.ObjectModel.KeyedCollection`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:Contains(System.Numerics.Vector`1[float]):ubyte:this (FullOpts)
Top method regressions (percentages):
          88 (141.94 % of base) : 120874.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (FullOpts)
          88 (141.94 % of base) : 168580.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (FullOpts)
        2699 (141.90 % of base) : 75545.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
         109 (134.57 % of base) : 113486.dasm - Microsoft.CodeAnalysis.SyntaxTokenList:CopyTo(int,Microsoft.CodeAnalysis.GreenNode[],int,int):this (FullOpts)
         109 (134.57 % of base) : 161281.dasm - Microsoft.CodeAnalysis.SyntaxTokenList:CopyTo(int,Microsoft.CodeAnalysis.GreenNode[],int,int):this (FullOpts)
         173 (130.08 % of base) : 126460.dasm - Microsoft.Diagnostics.Tracing.Utilities.FastStream:ReadAsciiStringUpToAny(System.String,System.Text.StringBuilder):this (FullOpts)
          68 (128.30 % of base) : 2254.dasm - System.MemoryExtensions:ClampStart[ubyte](System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):int (FullOpts)
        3037 (126.38 % of base) : 204406.dasm - Microsoft.Extensions.DependencyModel.DependencyContextWriter:AddRuntimeSpecificAssets(System.Collections.Generic.IEnumerable`1[Microsoft.Extensions.DependencyModel.RuntimeFile],System.String,System.String,System.Text.Json.Utf8JsonWriter) (FullOpts)
         990 (125.79 % of base) : 155681.dasm - Roslyn.Utilities.CommandLineUtilities:SplitCommandLineIntoArguments(System.ReadOnlySpan`1[ushort],ubyte,System.Text.StringBuilder,System.Collections.Generic.List`1[System.String],byref) (FullOpts)
         990 (125.79 % of base) : 107811.dasm - Roslyn.Utilities.CommandLineUtilities:SplitCommandLineIntoArguments(System.ReadOnlySpan`1[ushort],ubyte,System.Text.StringBuilder,System.Collections.Generic.List`1[System.String],byref) (FullOpts)
         212 (125.44 % of base) : 212626.dasm - Internal.TypeSystem.TypeSystemConstraintsHelpers:CheckValidInstantiationArguments(Internal.TypeSystem.Instantiation):ubyte (FullOpts)
         169 (125.19 % of base) : 49511.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (FullOpts)
         220 (125.00 % of base) : 262983.dasm - System.Buffers.SequenceReader`1[short]:AdvancePastAny(short,short,short):long:this (FullOpts)
         872 (123.16 % of base) : 263346.dasm - System.Net.HttpListenerRequest+Helpers:UrlDecodeStringFromStringInternal(System.String,System.Text.Encoding):System.String (FullOpts)
         220 (122.22 % of base) : 262965.dasm - System.Buffers.SequenceReader`1[ubyte]:AdvancePastAny(ubyte,ubyte,ubyte):long:this (FullOpts)
        1185 (120.30 % of base) : 36716.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<Scan>g__makeNotNullMembersMaybeNull|61_8():this (FullOpts)
         202 (120.24 % of base) : 262984.dasm - System.Buffers.SequenceReader`1[short]:AdvancePastAny(short,short):long:this (FullOpts)
         872 (119.45 % of base) : 301761.dasm - System.Web.Util.HttpEncoder:UrlDecode(System.String,System.Text.Encoding):System.String (FullOpts)
         204 (117.24 % of base) : 262966.dasm - System.Buffers.SequenceReader`1[ubyte]:AdvancePastAny(ubyte,ubyte):long:this (FullOpts)
         479 (116.83 % of base) : 238019.dasm - System.Configuration.XmlUtilWriter:AppendEscapeXmlString(System.String,ubyte,ushort):int:this (FullOpts)
Top method improvements (percentages):
         -15 (-14.42 % of base) : 196584.dasm - ILCompiler.LazyGenericsSupport+GenericCycleDetector:IsDeepPossiblyCyclicInstantiation(Internal.TypeSystem.Instantiation,byref,System.Collections.Generic.List`1[Internal.TypeSystem.TypeDesc]):ubyte:this (FullOpts)
       -1298 (-13.71 % of base) : 117.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -21 (-12.65 % of base) : 108335.dasm - Roslyn.Utilities.OneOrMany`1[ubyte]:Any[short](System.Func`3[ubyte,short,ubyte],short):ubyte:this (FullOpts)
         -21 (-12.65 % of base) : 108334.dasm - Roslyn.Utilities.OneOrMany`1[ubyte]:Any[ubyte](System.Func`3[ubyte,ubyte,ubyte],ubyte):ubyte:this (FullOpts)
         -25 (-11.96 % of base) : 153309.dasm - Microsoft.Build.Shared.FileMatcher:LastIndexOfDirectorySequence(System.String,int):int (FullOpts)
         -68 (-10.95 % of base) : 295171.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreateParameterizedConstructor(System.Reflection.ConstructorInfo,System.Type,System.Type,System.Type,System.Type):System.Reflection.Emit.DynamicMethod (FullOpts)
         -11 (-10.28 % of base) : 126144.dasm - Microsoft.Diagnostics.Tracing.EventPipeEventHeader:ReadVarUInt64(byref):ulong (FullOpts)
         -10 (-10.10 % of base) : 149741.dasm - Microsoft.Build.Evaluation.ExpressionShredder:SinkUntilClosingQuote(ushort,System.String,byref,int):ubyte (FullOpts)
          -9 (-9.68 % of base) : 276285.dasm - System.Reflection.DispatchProxyGenerator:GetGenericMethodMethodInfo():System.Reflection.MethodInfo (FullOpts)
         -13 (-9.03 % of base) : 153355.dasm - Microsoft.Build.Shared.FileUtilities:GetDirectoryNameOfFullPath(System.String):System.String (FullOpts)
         -11 (-8.73 % of base) : 155582.dasm - Roslyn.Utilities.PathUtilities:TrimTrailingSeparators(System.String):System.String (FullOpts)
         -11 (-8.73 % of base) : 107708.dasm - Roslyn.Utilities.PathUtilities:TrimTrailingSeparators(System.String):System.String (FullOpts)
         -41 (-8.72 % of base) : 111625.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (FullOpts)
         -41 (-8.72 % of base) : 159444.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (FullOpts)
         -26 (-8.44 % of base) : 274303.dasm - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (FullOpts)
         -26 (-8.44 % of base) : 274310.dasm - System.Collections.ObjectModel.KeyedCollection`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:TryGetValue(System.Numerics.Vector`1[float],byref):ubyte:this (FullOpts)
         -13 (-8.33 % of base) : 108336.dasm - Roslyn.Utilities.OneOrMany`1[ubyte]:Any[int](System.Func`3[ubyte,int,ubyte],int):ubyte:this (FullOpts)
          -9 (-8.04 % of base) : 252713.dasm - System.Linq.Expressions.CachedReflectionInfo:get_Decimal_op_Implicit_Int16():System.Reflection.MethodInfo (FullOpts)
          -9 (-8.04 % of base) : 252717.dasm - System.Linq.Expressions.CachedReflectionInfo:get_Decimal_op_Implicit_Int64():System.Reflection.MethodInfo (FullOpts)
          -9 (-8.04 % of base) : 252702.dasm - System.Linq.Expressions.CachedReflectionInfo:get_MethodBase_GetMethodFromHandle_RuntimeMethodHandle():System.Reflection.MethodInfo (FullOpts)
  
libraries_tests.run.windows.x86.Release.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 179696217 (overridden on cmd)
Total bytes of diff: 196813084 (overridden on cmd)
Total bytes of delta: 17116867 (9.53 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       16505 : 260864.dasm (43.45 % of base)
       15828 : 254397.dasm (40.93 % of base)
       15730 : 400346.dasm (92.85 % of base)
       10679 : 157223.dasm (104.73 % of base)
       10223 : 445168.dasm (70.10 % of base)
       10205 : 444291.dasm (70.87 % of base)
        9581 : 5990.dasm (81.45 % of base)
        9441 : 624903.dasm (85.02 % of base)
        9381 : 317888.dasm (79.51 % of base)
        9381 : 500766.dasm (79.51 % of base)
        9381 : 279162.dasm (79.51 % of base)
        9272 : 423460.dasm (79.79 % of base)
        9255 : 212367.dasm (80.33 % of base)
        9241 : 279365.dasm (76.67 % of base)
        9188 : 443000.dasm (78.56 % of base)
        9126 : 89832.dasm (77.80 % of base)
        9123 : 147352.dasm (76.78 % of base)
        9123 : 506108.dasm (76.78 % of base)
        9123 : 267344.dasm (76.78 % of base)
        9123 : 273772.dasm (76.78 % of base)
Top file improvements (bytes):
       -1298 : 4862.dasm (-13.71 % of base)
        -550 : 127367.dasm (-5.74 % of base)
        -379 : 186210.dasm (-6.34 % of base)
        -243 : 154322.dasm (-12.68 % of base)
        -233 : 603814.dasm (-12.32 % of base)
        -227 : 77875.dasm (-11.73 % of base)
        -163 : 77869.dasm (-6.22 % of base)
        -161 : 224782.dasm (-2.87 % of base)
        -126 : 187168.dasm (-2.26 % of base)
        -125 : 127618.dasm (-9.68 % of base)
        -123 : 77572.dasm (-8.09 % of base)
        -111 : 17162.dasm (-8.75 % of base)
        -104 : 605678.dasm (-16.64 % of base)
        -103 : 591095.dasm (-8.84 % of base)
         -99 : 156334.dasm (-18.57 % of base)
         -95 : 160444.dasm (-18.20 % of base)
         -95 : 571527.dasm (-15.08 % of base)
         -95 : 580735.dasm (-2.00 % of base)
         -94 : 58696.dasm (-5.02 % of base)
         -94 : 58698.dasm (-5.02 % of base)
102 total files with Code Size differences (40 improved, 62 regressed), 20 unchanged.
Top method regressions (bytes):
       16505 (43.45 % of base) : 260864.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (Tier0-FullOpts)
       15828 (40.93 % of base) : 254397.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach007.freach007.Test:MainMethod():int (Tier0-FullOpts)
       15730 (92.85 % of base) : 400346.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestValid(System.Object[],System.Object[],System.String,System.String[]):int:this (Tier0-FullOpts)
       10679 (104.73 % of base) : 157223.dasm - Microsoft.CodeAnalysis.CSharp.DiagnosticsPass:VisitCall(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.CSharp.BoundNode):this (Tier1)
       10223 (70.10 % of base) : 445168.dasm - (dynamicClass):ReadAllTypes2FromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
       10205 (70.87 % of base) : 444291.dasm - (dynamicClass):ReadAllTypesFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        9581 (81.45 % of base) : 5990.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9441 (85.02 % of base) : 624903.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        9381 (79.51 % of base) : 317888.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9381 (79.51 % of base) : 500766.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9381 (79.51 % of base) : 279162.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9272 (79.79 % of base) : 423460.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9255 (80.33 % of base) : 212367.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9241 (76.67 % of base) : 279365.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        9188 (78.56 % of base) : 443000.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9126 (77.80 % of base) : 89832.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9123 (76.78 % of base) : 147352.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9123 (76.78 % of base) : 506108.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9123 (76.78 % of base) : 267344.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        9123 (76.78 % of base) : 273772.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
Top method improvements (bytes):
       -1298 (-13.71 % of base) : 4862.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
        -550 (-5.74 % of base) : 127367.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte) (Tier0-FullOpts)
        -379 (-6.34 % of base) : 186210.dasm - System.Collections.Frozen.Tests.FrozenSet_Generic_Tests`1[System.Collections.Frozen.Tests.SimpleNonComparableStruct]:ComparingWithOtherSets(int):this (Tier0-FullOpts)
        -243 (-12.68 % of base) : 154322.dasm - Microsoft.CodeAnalysis.Host.TemporaryStorageService:CreateTemporaryStorage(long):Microsoft.CodeAnalysis.Host.TemporaryStorageService+MemoryMappedInfo:this (Tier1)
        -233 (-12.32 % of base) : 603814.dasm - Microsoft.CodeAnalysis.Host.TemporaryStorageService:CreateTemporaryStorage(long):Microsoft.CodeAnalysis.Host.TemporaryStorageService+MemoryMappedInfo:this (Tier1)
        -227 (-11.73 % of base) : 77875.dasm - Microsoft.CodeAnalysis.Host.TemporaryStorageService:CreateTemporaryStorage(long):Microsoft.CodeAnalysis.Host.TemporaryStorageService+MemoryMappedInfo:this (Tier1)
        -163 (-6.22 % of base) : 77869.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.FixedStatementSyntax:Update(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax],Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclarationSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.FixedStatementSyntax:this (Tier1)
        -161 (-2.87 % of base) : 224782.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (Tier0-FullOpts)
        -126 (-2.26 % of base) : 187168.dasm - System.Collections.Frozen.Tests.FrozenSet_Generic_Tests`1[System.__Canon]:ComparingWithOtherSets(int):this (Tier0-FullOpts)
        -125 (-9.68 % of base) : 127618.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:FindMethodSymbolInSuperType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.__Canon:this (Tier0-FullOpts)
        -123 (-8.09 % of base) : 77572.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.BlockSyntax:Update(Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax],Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax],Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.BlockSyntax:this (Tier1)
        -111 (-8.75 % of base) : 17162.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:FindMethodSymbolInSuperType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.__Canon:this (Tier0-FullOpts)
        -104 (-16.64 % of base) : 605678.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32831_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -103 (-8.84 % of base) : 591095.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxExtensions:GetElementKind(Microsoft.CodeAnalysis.CSharp.Syntax.XmlNameAttributeSyntax):ubyte (Tier1)
         -99 (-18.57 % of base) : 156334.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:XmlText(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken]):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.XmlTextSyntax (Tier1)
         -95 (-2.00 % of base) : 580735.dasm - Microsoft.CodeAnalysis.CSharp.BinderFactory+BinderFactoryVisitor:VisitConstructorDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax):Microsoft.CodeAnalysis.CSharp.Binder:this (Tier1)
         -95 (-18.20 % of base) : 160444.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:InterpolatedStringText(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.InterpolatedStringTextSyntax (Tier1)
         -95 (-15.08 % of base) : 571527.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:XmlText(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken]):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.XmlTextSyntax (Tier1)
         -94 (-5.02 % of base) : 58696.dasm - Microsoft.Interop.StatefulMarshallerShapeHelper+LinearCollection+<>c__DisplayClass0_0:<GetManagedValuesSource>b__0(Microsoft.CodeAnalysis.IMethodSymbol):ubyte:this (Tier1)
         -94 (-5.02 % of base) : 58698.dasm - Microsoft.Interop.StatefulMarshallerShapeHelper+LinearCollection+<>c__DisplayClass1_0:<GetUnmanagedValuesDestination>b__0(Microsoft.CodeAnalysis.IMethodSymbol):ubyte:this (Tier1)
Top method regressions (percentages):
        2983 (143.76 % of base) : 9980.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (Tier0-FullOpts)
          88 (141.94 % of base) : 144642.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (Tier0-FullOpts)
          88 (141.94 % of base) : 129588.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (Tier0-FullOpts)
          88 (141.94 % of base) : 150294.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (Tier0-FullOpts)
          67 (128.85 % of base) : 318541.dasm - System.MemoryExtensions:ClampStart[int](System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int]):int (Tier0-FullOpts)
        2499 (128.22 % of base) : 111040.dasm - Microsoft.Extensions.DependencyModel.DependencyContextWriter:AddRuntimeSpecificAssets(System.Collections.Generic.IEnumerable`1[Microsoft.Extensions.DependencyModel.RuntimeFile],System.String,System.String,System.Text.Json.Utf8JsonWriter) (Tier0-FullOpts)
        1606 (126.16 % of base) : 371530.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4FromQuaternionTest3():this (Tier0-FullOpts)
        1659 (126.06 % of base) : 371559.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4FromQuaternionTest2():this (Tier0-FullOpts)
        1596 (125.27 % of base) : 371538.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4FromQuaternionTest4():this (Tier0-FullOpts)
         169 (125.19 % of base) : 128209.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (Tier0-FullOpts)
         169 (125.19 % of base) : 135151.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (Tier0-FullOpts)
         169 (125.19 % of base) : 19068.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (Tier0-FullOpts)
        1310 (123.58 % of base) : 147807.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<Scan>g__makeNotNullMembersMaybeNull|60_8():this (Tier0-FullOpts)
         872 (123.16 % of base) : 340266.dasm - System.Net.HttpListenerRequest+Helpers:UrlDecodeStringFromStringInternal(System.String,System.Text.Encoding):System.String (Tier0-FullOpts)
        2780 (122.36 % of base) : 319565.dasm - System.SpanTests.ReadOnlySpanTests:TestNoMatchFive_Char() (Tier0-FullOpts)
         220 (122.22 % of base) : 319977.dasm - System.Buffers.SequenceReader`1[ubyte]:AdvancePastAny(ubyte,ubyte,ubyte):long:this (Tier0-FullOpts)
         872 (119.45 % of base) : 355219.dasm - System.Web.Util.HttpEncoder:UrlDecode(System.String,System.Text.Encoding):System.String (Tier0-FullOpts)
         224 (117.28 % of base) : 160354.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:GetUnderlyingTypeChain(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]) (Tier0-FullOpts)
         204 (117.24 % of base) : 319979.dasm - System.Buffers.SequenceReader`1[ubyte]:AdvancePastAny(ubyte,ubyte):long:this (Tier0-FullOpts)
         479 (116.83 % of base) : 216558.dasm - System.Configuration.XmlUtilWriter:AppendEscapeXmlString(System.String,ubyte,ushort):int:this (Tier0-FullOpts)
Top method improvements (percentages):
         -85 (-23.16 % of base) : 63864.dasm - Microsoft.CodeAnalysis.Syntax.SyntaxList+WithTwoChildren:GetNodeSlot(int):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
         -75 (-21.99 % of base) : 605644.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32787_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -76 (-21.97 % of base) : 400318.dasm - System.Xml.XmlConvertTests.EncodeDecodeTests:v3():int:this (Tier0-FullOpts)
         -75 (-21.61 % of base) : 605647.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32790_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -75 (-21.61 % of base) : 605650.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32792_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -83 (-21.17 % of base) : 149871.dasm - Microsoft.CodeAnalysis.SyntaxNode:GetRedElementIfNotToken(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
         -64 (-18.82 % of base) : 161018.dasm - Microsoft.CodeAnalysis.SyntaxNode:GetRedElementIfNotToken(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
         -64 (-18.82 % of base) : 162651.dasm - Microsoft.CodeAnalysis.SyntaxNode:GetRedElementIfNotToken(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
         -64 (-18.82 % of base) : 163319.dasm - Microsoft.CodeAnalysis.SyntaxNode:GetRedElementIfNotToken(byref):Microsoft.CodeAnalysis.SyntaxNode:this (Tier1)
         -99 (-18.57 % of base) : 156334.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:XmlText(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken]):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.XmlTextSyntax (Tier1)
         -95 (-18.20 % of base) : 160444.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:InterpolatedStringText(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.InterpolatedStringTextSyntax (Tier1)
         -88 (-17.02 % of base) : 162933.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:IdentifierName(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.IdentifierNameSyntax (Tier1)
        -104 (-16.64 % of base) : 605678.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32831_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -88 (-16.45 % of base) : 45788.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:IdentifierName(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.IdentifierNameSyntax (Tier1)
         -87 (-16.45 % of base) : 57584.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:OmittedArraySizeExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.OmittedArraySizeExpressionSyntax (Tier1)
         -87 (-16.45 % of base) : 52344.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:PredefinedType(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.PredefinedTypeSyntax (Tier1)
         -87 (-16.45 % of base) : 53957.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:SimpleBaseType(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SimpleBaseTypeSyntax (Tier1)
         -87 (-16.45 % of base) : 52285.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:SingleVariableDesignation(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SingleVariableDesignationSyntax (Tier1)
         -87 (-16.45 % of base) : 52352.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:ThisExpression(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ThisExpressionSyntax (Tier1)
         -83 (-15.63 % of base) : 55613.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:FunctionPointerUnmanagedCallingConvention(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.FunctionPointerUnmanagedCallingConventionSyntax (Tier1)
  
librariestestsnotieredcompilation.run.windows.x86.Release.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 100609349 (overridden on cmd)
Total bytes of diff: 107432988 (overridden on cmd)
Total bytes of delta: 6823639 (6.78 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
       16505 : 107300.dasm (43.45 % of base)
       15828 : 113385.dasm (40.93 % of base)
       14476 : 181485.dasm (94.44 % of base)
       10045 : 209011.dasm (69.59 % of base)
       10036 : 208596.dasm (70.39 % of base)
        8526 : 147696.dasm (106.23 % of base)
        8493 : 56311.dasm (100.94 % of base)
        7852 : 94563.dasm (83.45 % of base)
        7683 : 54633.dasm (86.09 % of base)
        7229 : 220863.dasm (89.14 % of base)
        6526 : 94703.dasm (74.74 % of base)
        6344 : 114838.dasm (90.34 % of base)
        6252 : 277647.dasm (89.72 % of base)
        6223 : 223041.dasm (86.66 % of base)
        6146 : 110286.dasm (88.19 % of base)
        6083 : 124293.dasm (94.88 % of base)
        5953 : 54769.dasm (82.50 % of base)
        5760 : 43746.dasm (89.73 % of base)
        5760 : 49409.dasm (89.73 % of base)
        5686 : 5157.dasm (89.61 % of base)
Top file improvements (bytes):
       -1298 : 3782.dasm (-13.72 % of base)
        -573 : 51248.dasm (-5.95 % of base)
        -573 : 45521.dasm (-5.95 % of base)
        -379 : 71140.dasm (-6.32 % of base)
        -161 : 94216.dasm (-2.87 % of base)
        -136 : 241387.dasm (-5.02 % of base)
        -125 : 51592.dasm (-9.68 % of base)
        -125 : 45618.dasm (-9.68 % of base)
        -119 : 285467.dasm (-18.31 % of base)
        -116 : 71340.dasm (-2.10 % of base)
        -111 : 7388.dasm (-8.75 % of base)
         -69 : 299602.dasm (-7.82 % of base)
         -68 : 315329.dasm (-6.59 % of base)
         -66 : 181471.dasm (-20.31 % of base)
         -64 : 285436.dasm (-18.88 % of base)
         -64 : 285431.dasm (-19.22 % of base)
         -64 : 285434.dasm (-18.88 % of base)
         -62 : 24323.dasm (-14.16 % of base)
         -61 : 127687.dasm (-2.33 % of base)
         -61 : 128045.dasm (-2.33 % of base)
92 total files with Code Size differences (30 improved, 62 regressed), 20 unchanged.
Top method regressions (bytes):
       16505 (43.45 % of base) : 107300.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (FullOpts)
       15828 (40.93 % of base) : 113385.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach007.freach007.Test:MainMethod():int (FullOpts)
       14476 (94.44 % of base) : 181485.dasm - System.Xml.XmlConvertTests.ToTypeTests:TestValid(System.Object[],System.Object[],System.String,System.String[]):int:this (FullOpts)
       10045 (69.59 % of base) : 209011.dasm - (dynamicClass):ReadAllTypes2FromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
       10036 (70.39 % of base) : 208596.dasm - (dynamicClass):ReadAllTypesFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        8526 (106.23 % of base) : 147696.dasm - System.Management.ManagementClassGenerator:GenerateProperties():this (FullOpts)
        8493 (100.94 % of base) : 56311.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)
        7852 (83.45 % of base) : 94563.dasm - System.Data.XmlTreeGen:HandleTable(System.Data.DataTable,System.Xml.XmlDocument,System.Xml.XmlElement,ubyte):System.Xml.XmlElement:this (FullOpts)
        7683 (86.09 % of base) : 54633.dasm - Enumeration.FirstValidator:Validate(System.String,Enumeration.FirstModel):Microsoft.Extensions.Options.ValidateOptionsResult:this (FullOpts)
        7229 (89.14 % of base) : 220863.dasm - System.Tests.TimeOnlyTests:FormatParseTest() (FullOpts)
        6526 (74.74 % of base) : 94703.dasm - System.Data.Tests.DataTableTest2:GetChanges_ByDataRowState():this (FullOpts)
        6344 (90.34 % of base) : 114838.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.array010.array010.Test:MainMethod():int (FullOpts)
        6252 (89.72 % of base) : 277647.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
        6223 (86.66 % of base) : 223041.dasm - System.Tests.DateOnlyTests:FormatParseTest() (FullOpts)
        6146 (88.19 % of base) : 110286.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.operate007a.operate007a.Test:Test4():ubyte (FullOpts)
        6083 (94.88 % of base) : 124293.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F41B8911E2F21D4DC5E3A6E6E037C09C91843DEA626D26CDD1D82984E3611395A__GetRegex_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        5953 (82.50 % of base) : 54769.dasm - Microsoft.Extensions.Options.Generators.Parser:GetMemberInfo(Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.ITypeSymbol,Microsoft.CodeAnalysis.ITypeSymbol):Microsoft.Extensions.Options.Generators.ValidatedMember:this (FullOpts)
        5760 (89.73 % of base) : 43746.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
        5760 (89.73 % of base) : 49409.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
        5686 (89.61 % of base) : 5157.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
Top method improvements (bytes):
       -1298 (-13.72 % of base) : 3782.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        -573 (-5.95 % of base) : 51248.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte) (FullOpts)
        -573 (-5.95 % of base) : 45521.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte) (FullOpts)
        -379 (-6.32 % of base) : 71140.dasm - System.Collections.Frozen.Tests.FrozenSet_Generic_Tests`1[System.ValueTuple`2[System.Collections.Frozen.Tests.SimpleNonComparableStruct,System.Collections.Frozen.Tests.SimpleNonComparableStruct]]:ComparingWithOtherSets(int):this (FullOpts)
        -161 (-2.87 % of base) : 94216.dasm - System.Data.RBTree`1[int]:RBDeleteX(int,int,int):int:this (FullOpts)
        -136 (-5.02 % of base) : 241387.dasm - System.Text.Tests.DecoderConvert2:PosTest9():this (FullOpts)
        -125 (-9.68 % of base) : 51592.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:FindMethodSymbolInSuperType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.__Canon:this (FullOpts)
        -125 (-9.68 % of base) : 45618.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:FindMethodSymbolInSuperType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.__Canon:this (FullOpts)
        -119 (-18.31 % of base) : 285467.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex27421_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -116 (-2.10 % of base) : 71340.dasm - System.Collections.Frozen.Tests.FrozenSet_Generic_Tests`1[System.__Canon]:ComparingWithOtherSets(int):this (FullOpts)
        -111 (-8.75 % of base) : 7388.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:FindMethodSymbolInSuperType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.__Canon:this (FullOpts)
         -69 (-7.82 % of base) : 299602.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex31405_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -68 (-6.59 % of base) : 315329.dasm - CoreXml.Test.XLinq.Helpers:IsXDocValid(System.Collections.Generic.IEnumerable`1[CoreXml.Test.XLinq.ExpectedValue]):ubyte (FullOpts)
         -66 (-20.31 % of base) : 181471.dasm - System.Xml.XmlConvertTests.EncodeDecodeTests:v3():int:this (FullOpts)
         -64 (-19.22 % of base) : 285431.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex27377_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -64 (-18.88 % of base) : 285434.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex27380_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -64 (-18.88 % of base) : 285436.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex27382_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -62 (-14.16 % of base) : 24323.dasm - Microsoft.CodeAnalysis.Shared.Utilities.CommonFormattingHelpers:AppendTrailingTriviaText(Microsoft.CodeAnalysis.SyntaxToken,System.Text.StringBuilder) (FullOpts)
         -61 (-2.33 % of base) : 127687.dasm - System.IO.Compression.Tests.ZipFileTestBase+<>c__DisplayClass20_0:<IsZipSameAsDir>b__0(FileData):this (FullOpts)
         -61 (-2.33 % of base) : 128045.dasm - System.IO.Compression.Tests.ZipFileTestBase+<>c__DisplayClass20_0:<IsZipSameAsDir>b__0(FileData):this (FullOpts)
Top method regressions (percentages):
          88 (141.94 % of base) : 53202.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (FullOpts)
          88 (141.94 % of base) : 55356.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (FullOpts)
          88 (141.94 % of base) : 47234.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (FullOpts)
        2699 (141.90 % of base) : 5384.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
        2242 (132.51 % of base) : 188390.dasm - System.Reflection.Metadata.Tests.MetadataReaderTests:ValidateEvent(System.Reflection.Metadata.MetadataReader,uint,uint,uint,ubyte):this (FullOpts)
          67 (128.85 % of base) : 150562.dasm - System.MemoryExtensions:ClampStart[int](System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int]):int (FullOpts)
        2499 (128.22 % of base) : 38486.dasm - Microsoft.Extensions.DependencyModel.DependencyContextWriter:AddRuntimeSpecificAssets(System.Collections.Generic.IEnumerable`1[Microsoft.Extensions.DependencyModel.RuntimeFile],System.String,System.String,System.Text.Json.Utf8JsonWriter) (FullOpts)
        1606 (126.16 % of base) : 168492.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4FromQuaternionTest3():this (FullOpts)
        1659 (126.06 % of base) : 168530.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4FromQuaternionTest2():this (FullOpts)
        1596 (125.27 % of base) : 168495.dasm - System.Numerics.Tests.Matrix4x4Tests:Matrix4x4FromQuaternionTest4():this (FullOpts)
         169 (125.19 % of base) : 49031.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (FullOpts)
         169 (125.19 % of base) : 10186.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (FullOpts)
         169 (125.19 % of base) : 46127.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (FullOpts)
        1310 (123.58 % of base) : 54725.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<Scan>g__makeNotNullMembersMaybeNull|60_8():this (FullOpts)
         872 (123.16 % of base) : 157874.dasm - System.Net.HttpListenerRequest+Helpers:UrlDecodeStringFromStringInternal(System.String,System.Text.Encoding):System.String (FullOpts)
         220 (122.22 % of base) : 151391.dasm - System.Buffers.SequenceReader`1[ubyte]:AdvancePastAny(ubyte,ubyte,ubyte):long:this (FullOpts)
        5294 (121.79 % of base) : 288280.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex28085_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         872 (119.45 % of base) : 162643.dasm - System.Web.Util.HttpEncoder:UrlDecode(System.String,System.Text.Encoding):System.String (FullOpts)
         204 (117.24 % of base) : 151393.dasm - System.Buffers.SequenceReader`1[ubyte]:AdvancePastAny(ubyte,ubyte):long:this (FullOpts)
         479 (116.83 % of base) : 91556.dasm - System.Configuration.XmlUtilWriter:AppendEscapeXmlString(System.String,ubyte,ushort):int:this (FullOpts)
Top method improvements (percentages):
         -66 (-20.31 % of base) : 181471.dasm - System.Xml.XmlConvertTests.EncodeDecodeTests:v3():int:this (FullOpts)
         -64 (-19.22 % of base) : 285431.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex27377_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -64 (-18.88 % of base) : 285434.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex27380_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -64 (-18.88 % of base) : 285436.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex27382_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -119 (-18.31 % of base) : 285467.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex27421_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -62 (-14.16 % of base) : 24323.dasm - Microsoft.CodeAnalysis.Shared.Utilities.CommonFormattingHelpers:AppendTrailingTriviaText(Microsoft.CodeAnalysis.SyntaxToken,System.Text.StringBuilder) (FullOpts)
       -1298 (-13.72 % of base) : 3782.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -52 (-12.50 % of base) : 285460.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex27415_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -43 (-10.75 % of base) : 285462.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex27417_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -40 (-10.13 % of base) : 110348.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.operate008a.operate008a.Test:Test3a():ubyte (FullOpts)
         -42 (-9.88 % of base) : 294265.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29187_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -42 (-9.88 % of base) : 294267.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29189_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -42 (-9.88 % of base) : 294268.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29193_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -42 (-9.88 % of base) : 294270.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29196_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -125 (-9.68 % of base) : 51592.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:FindMethodSymbolInSuperType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.__Canon:this (FullOpts)
        -125 (-9.68 % of base) : 45618.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:FindMethodSymbolInSuperType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.__Canon:this (FullOpts)
          -9 (-9.68 % of base) : 184391.dasm - System.Reflection.DispatchProxyGenerator:GetGenericMethodMethodInfo():System.Reflection.MethodInfo (FullOpts)
         -26 (-8.81 % of base) : 285430.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex27376_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
        -111 (-8.75 % of base) : 7388.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:FindMethodSymbolInSuperType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.__Canon:this (FullOpts)
         -41 (-8.72 % of base) : 5477.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (FullOpts)
  
realworld.run.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 10518585 (overridden on cmd)
Total bytes of diff: 11851876 (overridden on cmd)
Total bytes of delta: 1333291 (12.68 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
        9372 : 27125.dasm (102.24 % of base)
        8720 : 1396.dasm (99.00 % of base)
        8412 : 25946.dasm (100.35 % of base)
        7866 : 1456.dasm (96.82 % of base)
        7818 : 1567.dasm (140.08 % of base)
        7171 : 14615.dasm (104.55 % of base)
        6530 : 14648.dasm (93.19 % of base)
        6368 : 33839.dasm (72.70 % of base)
        5984 : 14783.dasm (99.15 % of base)
        5817 : 1096.dasm (107.60 % of base)
        5444 : 14451.dasm (103.52 % of base)
        5290 : 19899.dasm (84.28 % of base)
        5279 : 14785.dasm (109.41 % of base)
        5245 : 1564.dasm (104.98 % of base)
        5174 : 8624.dasm (79.58 % of base)
        5148 : 22170.dasm (89.64 % of base)
        5107 : 14833.dasm (108.36 % of base)
        5020 : 1117.dasm (53.79 % of base)
        4991 : 32948.dasm (91.21 % of base)
        4953 : 14924.dasm (81.06 % of base)
Top file improvements (bytes):
       -1298 : 31802.dasm (-13.66 % of base)
        -125 : 23236.dasm (-9.68 % of base)
         -47 : 20596.dasm (-6.51 % of base)
         -43 : 11015.dasm (-1.93 % of base)
         -41 : 20324.dasm (-8.72 % of base)
         -41 : 8069.dasm (-0.47 % of base)
         -40 : 11101.dasm (-1.83 % of base)
         -29 : 1327.dasm (-26.61 % of base)
         -23 : 15325.dasm (-4.69 % of base)
         -18 : 11045.dasm (-14.29 % of base)
         -11 : 20972.dasm (-3.13 % of base)
          -9 : 15330.dasm (-3.35 % of base)
          -9 : 2184.dasm (-2.10 % of base)
          -9 : 34293.dasm (-8.04 % of base)
          -5 : 24899.dasm (-3.52 % of base)
          -2 : 32456.dasm (-0.17 % of base)
          -1 : 101.dasm (-0.97 % of base)
          -1 : 15531.dasm (-0.93 % of base)
          -1 : 3117.dasm (-0.96 % of base)
          -1 : 20001.dasm (-0.97 % of base)
84 total files with Code Size differences (22 improved, 62 regressed), 9 unchanged.
Top method regressions (bytes):
        9372 (102.24 % of base) : 27125.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)
        8720 (99.00 % of base) : 1396.dasm - BepuPhysics.Constraints.Contact.ContactNonconvexTwoBodyFunctions`2[BepuPhysics.Constraints.Contact.Contact4NonconvexPrestepData,BepuPhysics.Constraints.Contact.Contact4NonconvexAccumulatedImpulses]:Solve(byref,byref,byref,byref,byref,byref,float,float,byref,byref,byref,byref):this (FullOpts)
        8412 (100.35 % of base) : 25946.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)
        7866 (96.82 % of base) : 1456.dasm - BepuPhysics.CollisionDetection.MeshReduction:ReduceManifolds(byref,byref,int,int,ubyte,byref,byref,byref,uint,BepuUtilities.Memory.BufferPool) (FullOpts)
        7818 (140.08 % of base) : 1567.dasm - BepuPhysics.CollisionDetection.CollisionTasks.MeshPairOverlapFinder`2[BepuPhysics.Collidables.Mesh,BepuPhysics.Collidables.Mesh]:FindLocalOverlaps(byref,int,BepuUtilities.Memory.BufferPool,BepuPhysics.Collidables.Shapes,float,byref):this (FullOpts)
        7171 (104.55 % of base) : 14615.dasm - SixLabors.ImageSharp.Advanced.ParallelRowIterator:IterateRows[SixLabors.ImageSharp.Processing.Processors.Convolution.Convolution2PassProcessor`1+HorizontalConvolutionRowOperation[SixLabors.ImageSharp.PixelFormats.Rgba32],System.Numerics.Vector4](SixLabors.ImageSharp.Rectangle,byref,byref) (FullOpts)
        6530 (93.19 % of base) : 14648.dasm - SixLabors.ImageSharp.Advanced.ParallelRowIterator+RowOperationWrapper`2[SixLabors.ImageSharp.Processing.Processors.Convolution.Convolution2PassProcessor`1+HorizontalConvolutionRowOperation[SixLabors.ImageSharp.PixelFormats.Rgba32],System.Numerics.Vector4]:Invoke(int):this (FullOpts)
        6368 (72.70 % of base) : 33839.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
        5984 (99.15 % of base) : 14783.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.HuffmanScanDecoder:ParseProgressiveDataNonInterleaved():this (FullOpts)
        5817 (107.60 % of base) : 1096.dasm - DemoBenchmarks.OneBodyConstraintBenchmarks:Contact4OneBody():BepuPhysics.BodyVelocityWide:this (FullOpts)
        5444 (103.52 % of base) : 14451.dasm - SixLabors.ImageSharp.Formats.Tga.TgaDecoderCore:ReadBgr24[SixLabors.ImageSharp.PixelFormats.Bgr24](int,int,SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Bgr24],int):this (FullOpts)
        5290 (84.28 % of base) : 19899.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
        5279 (109.41 % of base) : 14785.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.HuffmanScanDecoder:DecodeBlockProgressiveACRefined(byref,byref):this (FullOpts)
        5245 (104.98 % of base) : 1564.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CompoundPairOverlapFinder`2[BepuPhysics.Collidables.Compound,BepuPhysics.Collidables.Compound]:FindLocalOverlaps(byref,int,BepuUtilities.Memory.BufferPool,BepuPhysics.Collidables.Shapes,float,byref):this (FullOpts)
        5174 (79.58 % of base) : 8624.dasm - FSharp.Compiler.CheckExpressions:TcLinearExprs(Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.ConstraintSolver+OverallTy,Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.CheckExpressions+TcEnv,Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynExpr,System.Tuple`2[FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv]]]]],FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.ConstraintSolver+OverallTy,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,ubyte,FSharp.Compiler.Syntax.SynExpr,Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv],System.Tuple`2[FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv]]):System.Tuple`2[FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv] (FullOpts)
        5148 (89.64 % of base) : 22170.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeOneDeclaredBases(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Tuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]]:this (FullOpts)
        5107 (108.36 % of base) : 14833.dasm - SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:ProcessBorderColumn(SixLabors.ImageSharp.Memory.Buffer2D`1[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.Processing.Processors.Normalization.AdaptiveHistogramEqualizationProcessor`1+CdfTileData[SixLabors.ImageSharp.PixelFormats.Rgba32],int,int,int,int,int,int,int) (FullOpts)
        5020 (53.79 % of base) : 1117.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CylinderConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref):this (FullOpts)
        4991 (91.21 % of base) : 32948.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)
        4953 (81.06 % of base) : 14924.dasm - SixLabors.ImageSharp.Advanced.ParallelRowIterator:IterateRowIntervals[SixLabors.ImageSharp.Processing.Processors.Transforms.AffineTransformProcessor`1+AffineOperation`1[SixLabors.ImageSharp.PixelFormats.Rgba32,SixLabors.ImageSharp.Processing.Processors.Transforms.BicubicResampler],System.Numerics.Vector4](SixLabors.ImageSharp.Rectangle,byref,byref) (FullOpts)
Top method improvements (bytes):
       -1298 (-13.66 % of base) : 31802.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        -125 (-9.68 % of base) : 23236.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:FindMethodSymbolInSuperType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.__Canon:this (FullOpts)
         -47 (-6.51 % of base) : 20596.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80:MoveNext():ubyte:this (FullOpts)
         -43 (-1.93 % of base) : 11015.dasm - FSharp.Compiler.TypedTreePickle:p_entity_spec_data(FSharp.Compiler.TypedTree+Entity,FSharp.Compiler.TypedTreePickle+WriterState) (FullOpts)
         -41 (-0.47 % of base) : 8069.dasm - FSharp.Compiler.CheckExpressions:TcNormalizedBinding(FSharp.Compiler.CheckExpressions+DeclKind,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.TypedTree+TType,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+Val],FSharp.Compiler.CheckExpressions+SafeInitData,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+NormalizedBinding):System.Tuple`2[FSharp.Compiler.CheckExpressions+CheckedBindingInfo,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv] (FullOpts)
         -41 (-8.72 % of base) : 20324.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (FullOpts)
         -40 (-1.83 % of base) : 11101.dasm - FSharp.Compiler.TypedTreePickle:p_ValData(FSharp.Compiler.TypedTree+Val,FSharp.Compiler.TypedTreePickle+WriterState) (FullOpts)
         -29 (-26.61 % of base) : 1327.dasm - BepuPhysics.CollisionDetection.ContactConstraintAccessor`6[BepuPhysics.Constraints.Contact.Contact1,BepuPhysics.CollisionDetection.TwoBodyHandles,BepuPhysics.Constraints.Contact.Contact1PrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.CollisionDetection.ContactImpulses1,BepuPhysics.CollisionDetection.ConstraintCache1]:CopyContactData(byref,byref,byref) (FullOpts)
         -23 (-4.69 % of base) : 15325.dasm - Microsoft.ML.Data.TextLoader+Cursor+LineReader:PostPartial(System.String,long,byref,int,Microsoft.ML.Data.TextLoader+Cursor+LineInfo[]):this (FullOpts)
         -18 (-14.29 % of base) : 11045.dasm - FSharp.Compiler.TypedTreePickle+p_tcaug@1979-16:Invoke(Microsoft.FSharp.Core.Unit,FSharp.Compiler.TypedTreePickle+WriterState):Microsoft.FSharp.Core.Unit:this (FullOpts)
         -11 (-3.13 % of base) : 20972.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (FullOpts)
          -9 (-2.10 % of base) : 2184.dasm - FSharp.Compiler.DependencyManager.AssemblyResolveHandlerCoreclr:.ctor(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.DependencyManager.AssemblyResolutionProbe]):this (FullOpts)
          -9 (-3.35 % of base) : 15330.dasm - Microsoft.ML.Data.DataViewUtils+Splitter+OutPipe:Create(Microsoft.ML.Data.DataViewType,System.Object):Microsoft.ML.Data.DataViewUtils+Splitter+OutPipe (FullOpts)
          -9 (-8.04 % of base) : 34293.dasm - System.Linq.Expressions.CachedReflectionInfo:get_MethodBase_GetMethodFromHandle_RuntimeMethodHandle():System.Reflection.MethodInfo (FullOpts)
          -5 (-3.52 % of base) : 24899.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
          -2 (-0.17 % of base) : 32456.dasm - Microsoft.PowerShell.Commands.RegistryProvider:GetRegkeyForPath(System.String,ubyte):Microsoft.PowerShell.Commands.IRegistryWrapper:this (FullOpts)
          -1 (-1.14 % of base) : 20053.dasm - Microsoft.CodeAnalysis.GreenNode:GetSlotOffset(int):int:this (FullOpts)
          -1 (-0.93 % of base) : 15531.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -1 (-0.89 % of base) : 207.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -1 (-0.97 % of base) : 101.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
Top method regressions (percentages):
        4044 (158.59 % of base) : 1387.dasm - BepuPhysics.Constraints.Contact.ContactNonconvexTwoBodyFunctions`2[BepuPhysics.Constraints.Contact.Contact4NonconvexPrestepData,BepuPhysics.Constraints.Contact.Contact4NonconvexAccumulatedImpulses]:WarmStart(byref,byref,byref,byref,byref,byref,byref,byref,byref,byref):this (FullOpts)
        1604 (152.91 % of base) : 1469.dasm - BepuPhysics.Constraints.Contact.ContactNonconvexOneBodyFunctions`2[BepuPhysics.Constraints.Contact.Contact4NonconvexOneBodyPrestepData,BepuPhysics.Constraints.Contact.Contact4NonconvexAccumulatedImpulses]:WarmStart(byref,byref,byref,byref,byref,byref):this (FullOpts)
        2983 (143.76 % of base) : 13883.dasm - System.Reflection.Metadata.MetadataReader:InitializeStreamReaders(byref,System.Reflection.Metadata.Ecma335.StreamHeader[],byref,byref,byref):this (FullOpts)
          88 (141.94 % of base) : 28813.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:RewriteSpecialBlocks():this (FullOpts)
        7818 (140.08 % of base) : 1567.dasm - BepuPhysics.CollisionDetection.CollisionTasks.MeshPairOverlapFinder`2[BepuPhysics.Collidables.Mesh,BepuPhysics.Collidables.Mesh]:FindLocalOverlaps(byref,int,BepuUtilities.Memory.BufferPool,BepuPhysics.Collidables.Shapes,float,byref):this (FullOpts)
        2054 (136.39 % of base) : 1448.dasm - BepuPhysics.Collidables.ConvexHullWide:GetBounds(byref,int,byref,byref,byref,byref):this (FullOpts)
        1008 (128.90 % of base) : 17976.dasm - Roslyn.Utilities.CommandLineUtilities:SplitCommandLineIntoArguments(System.ReadOnlySpan`1[ushort],ubyte,System.Text.StringBuilder,System.Collections.Generic.List`1[System.String],byref) (FullOpts)
        2047 (126.12 % of base) : 14482.dasm - SixLabors.ImageSharp.Formats.Jpeg.JpegDecoderCore:ProcessDefineQuantizationTablesMarker(SixLabors.ImageSharp.IO.BufferedReadStream,int):this (FullOpts)
         169 (125.19 % of base) : 18319.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanToEndOfLine():this (FullOpts)
        3709 (120.46 % of base) : 14699.dasm - SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:Get3DMoments(SixLabors.ImageSharp.Memory.MemoryAllocator):this (FullOpts)
        1185 (120.30 % of base) : 21559.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<Scan>g__makeNotNullMembersMaybeNull|61_8():this (FullOpts)
        1669 (115.58 % of base) : 1461.dasm - BepuPhysics.Constraints.OneBodyTypeProcessor`5[BepuPhysics.Constraints.Contact.Contact1OneBodyPrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.Constraints.Contact.Contact1OneBodyFunctions,BepuPhysics.Constraints.AccessNoPose,BepuPhysics.Constraints.AccessNoPose]:WarmStart[DemoBenchmarks.ShapePileBenchmark+DemoPoseIntegratorCallbacks,BepuPhysics.Constraints.BatchShouldAlwaysIntegrate,BepuPhysics.Constraints.DisallowPoseIntegration](byref,byref,BepuPhysics.Bodies,byref,float,float,int,int,int):this (FullOpts)
        1907 (115.30 % of base) : 1284.dasm - BepuPhysics.BoundingBoxBatcher:ExecuteCompoundBatch[BepuPhysics.Collidables.BigCompound](BepuPhysics.Collidables.CompoundShapeBatch`1[BepuPhysics.Collidables.BigCompound]):this (FullOpts)
         435 (114.47 % of base) : 29900.dasm - Microsoft.CodeAnalysis.CSharp.SpillSequenceSpiller:PromoteAndAddLocals(Microsoft.CodeAnalysis.CSharp.SpillSequenceSpiller+BoundSpillSequenceBuilder,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol]):this (FullOpts)
        1233 (114.38 % of base) : 1366.dasm - BepuPhysics.CollisionDetection.PairCache:FlushMappingChanges():this (FullOpts)
        4550 (114.09 % of base) : 14563.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.SpectralConverter`1[SixLabors.ImageSharp.PixelFormats.Rgb24]:ConvertStride(int):this (FullOpts)
         769 (113.76 % of base) : 1488.dasm - BepuPhysics.IslandSleeper:Gather(int):this (FullOpts)
        3916 (113.67 % of base) : 1332.dasm - BepuPhysics.CollisionDetection.CollisionTasks.ConvexCompoundOverlapFinder`3[BepuPhysics.Collidables.Capsule,BepuPhysics.Collidables.CapsuleWide,BepuPhysics.Collidables.BigCompound]:FindLocalOverlaps(byref,int,BepuUtilities.Memory.BufferPool,BepuPhysics.Collidables.Shapes,float,byref):this (FullOpts)
        1840 (112.88 % of base) : 25368.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:EnforceNotNullWhenForPendingReturn(Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2+PendingBranch[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalFunctionState],Microsoft.CodeAnalysis.CSharp.BoundReturnStatement):this (FullOpts)
         839 (110.98 % of base) : 21222.dasm - System.Reflection.Metadata.MetadataReader:InitializeNestedTypesMap():this (FullOpts)
Top method improvements (percentages):
         -29 (-26.61 % of base) : 1327.dasm - BepuPhysics.CollisionDetection.ContactConstraintAccessor`6[BepuPhysics.Constraints.Contact.Contact1,BepuPhysics.CollisionDetection.TwoBodyHandles,BepuPhysics.Constraints.Contact.Contact1PrestepData,BepuPhysics.Constraints.Contact.Contact1AccumulatedImpulses,BepuPhysics.CollisionDetection.ContactImpulses1,BepuPhysics.CollisionDetection.ConstraintCache1]:CopyContactData(byref,byref,byref) (FullOpts)
         -18 (-14.29 % of base) : 11045.dasm - FSharp.Compiler.TypedTreePickle+p_tcaug@1979-16:Invoke(Microsoft.FSharp.Core.Unit,FSharp.Compiler.TypedTreePickle+WriterState):Microsoft.FSharp.Core.Unit:this (FullOpts)
       -1298 (-13.66 % of base) : 31802.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
        -125 (-9.68 % of base) : 23236.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:FindMethodSymbolInSuperType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle):System.__Canon:this (FullOpts)
         -41 (-8.72 % of base) : 20324.dasm - Microsoft.CodeAnalysis.PEModule:ContainsNoPiaLocalTypes():ubyte:this (FullOpts)
          -9 (-8.04 % of base) : 34293.dasm - System.Linq.Expressions.CachedReflectionInfo:get_MethodBase_GetMethodFromHandle_RuntimeMethodHandle():System.Reflection.MethodInfo (FullOpts)
         -47 (-6.51 % of base) : 20596.dasm - Microsoft.CodeAnalysis.PEModule+<GetTypeDefsOrThrow>d__80:MoveNext():ubyte:this (FullOpts)
         -23 (-4.69 % of base) : 15325.dasm - Microsoft.ML.Data.TextLoader+Cursor+LineReader:PostPartial(System.String,long,byref,int,Microsoft.ML.Data.TextLoader+Cursor+LineInfo[]):this (FullOpts)
          -5 (-3.52 % of base) : 24899.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:get_HasAnyApplicableMember():ubyte:this (FullOpts)
          -9 (-3.35 % of base) : 15330.dasm - Microsoft.ML.Data.DataViewUtils+Splitter+OutPipe:Create(Microsoft.ML.Data.DataViewType,System.Object):Microsoft.ML.Data.DataViewUtils+Splitter+OutPipe (FullOpts)
         -11 (-3.13 % of base) : 20972.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (FullOpts)
          -9 (-2.10 % of base) : 2184.dasm - FSharp.Compiler.DependencyManager.AssemblyResolveHandlerCoreclr:.ctor(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.DependencyManager.AssemblyResolutionProbe]):this (FullOpts)
         -43 (-1.93 % of base) : 11015.dasm - FSharp.Compiler.TypedTreePickle:p_entity_spec_data(FSharp.Compiler.TypedTree+Entity,FSharp.Compiler.TypedTreePickle+WriterState) (FullOpts)
         -40 (-1.83 % of base) : 11101.dasm - FSharp.Compiler.TypedTreePickle:p_ValData(FSharp.Compiler.TypedTree+Val,FSharp.Compiler.TypedTreePickle+WriterState) (FullOpts)
          -1 (-1.14 % of base) : 20053.dasm - Microsoft.CodeAnalysis.GreenNode:GetSlotOffset(int):int:this (FullOpts)
          -1 (-0.97 % of base) : 101.dasm - System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.__Canon,ubyte]:MoveNext():ubyte:this (FullOpts)
          -1 (-0.97 % of base) : 20001.dasm - System.Collections.Generic.HashSet`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -1 (-0.96 % of base) : 3117.dasm - System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -1 (-0.93 % of base) : 15531.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,int]:MoveNext():ubyte:this (FullOpts)
          -1 (-0.89 % of base) : 207.dasm - System.Collections.Generic.Dictionary`2+Enumerator[int,System.__Canon]:MoveNext():ubyte:this (FullOpts)