Assembly Diffs
linux arm
Diffs are based on 1,449,677 contexts (345,734 MinOpts, 1,103,943 FullOpts).
MISSED contexts: 55,309 (3.68%)
Overall (-2,852 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | 
| benchmarks.run.linux.arm.checked.mch | 13,691,660 | -68 | 
| benchmarks.run_pgo.linux.arm.checked.mch | 24,676,764 | -26 | 
| benchmarks.run_tiered.linux.arm.checked.mch | 17,983,552 | -64 | 
| coreclr_tests.run.linux.arm.checked.mch | 321,243,680 | -498 | 
| libraries.crossgen2.linux.arm.checked.mch | 35,989,292 | -28 | 
| libraries.pmi.linux.arm.checked.mch | 49,882,798 | -1,070 | 
| libraries_tests.run.linux.arm.Release.mch | 17,138,332 | -84 | 
| librariestestsnotieredcompilation.run.linux.arm.Release.mch | 93,857,406 | -886 | 
| realworld.run.linux.arm.checked.mch | 13,598,268 | -128 | 
  
FullOpts (-2,852 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | 
| benchmarks.run.linux.arm.checked.mch | 13,379,084 | -68 | 
| benchmarks.run_pgo.linux.arm.checked.mch | 19,755,612 | -26 | 
| benchmarks.run_tiered.linux.arm.checked.mch | 10,616,262 | -64 | 
| coreclr_tests.run.linux.arm.checked.mch | 108,808,730 | -498 | 
| libraries.crossgen2.linux.arm.checked.mch | 35,988,062 | -28 | 
| libraries.pmi.linux.arm.checked.mch | 49,776,574 | -1,070 | 
| libraries_tests.run.linux.arm.Release.mch | 16,541,272 | -84 | 
| librariestestsnotieredcompilation.run.linux.arm.Release.mch | 83,827,636 | -886 | 
| realworld.run.linux.arm.checked.mch | 13,163,196 | -128 | 
  
Example diffs
benchmarks.run.linux.arm.checked.mch
-10 (-3.33%) : 3865.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
@@ -8,43 +8,44 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00    ] (  5,  7.50)  struct ( 4) [sp+0x2C]  single-def <System.Net.Http.Headers.HeaderDescriptor>
+;  V00 arg0         [V00    ] (  5,  7.50)  struct ( 4) [sp+0x24]  single-def <System.Net.Http.Headers.HeaderDescriptor>
 ;  V01 arg1         [V01,T03] (  8, 13.50)     ref  ->   r4         class-hnd single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
-;  V02 loc0         [V02,T16] (  3,  0.50)     ref  ->  [sp+0x00]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V02 loc0         [V02,T17] (  3,  0.50)     ref  ->  [sp+0x00]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
 ;  V03 loc1         [V03    ] (  6,  5   )   ubyte  ->  [sp+0x04]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V04 loc2         [V04,T12] (  3,  1.50)     ref  ->   r0         class-hnd single-def <<unknown class>>
+;  V04 loc2         [V04,T13] (  3,  1.50)     ref  ->   r0         class-hnd single-def <<unknown class>>
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V07 loc5         [V07,T11] (  4,  1.62)     ref  ->   r2         class-hnd exact <System.String>
+;  V07 loc5         [V07,T12] (  4,  1.62)     ref  ->   r2         class-hnd exact <System.String>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T10] (  2,  2   )     ref  ->   r2         single-def "CASTCLASS eval op1"
+;  V09 tmp1         [V09,T11] (  2,  2   )     ref  ->   r2         single-def "CASTCLASS eval op1"
 ;* V10 tmp2         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.String>
 ;* V11 tmp3         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
-;* V12 tmp4         [V12,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V12 tmp4         [V12,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V13 tmp5         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V14 tmp6         [V14,T06] (  5,  7.50)     ref  ->  [sp+0x2C]  do-not-enreg[] single-def "field V00._descriptor (fldOffset=0x0)" P-DEP
+;  V14 tmp6         [V14,T06] (  5,  7.50)     ref  ->  [sp+0x24]  do-not-enreg[] single-def "field V00._descriptor (fldOffset=0x0)" P-DEP
 ;  V15 tmp7         [V15,T02] (  4, 12.50)     ref  ->   r5         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V16 tmp8         [V16,T04] (  2,  8   )     ref  ->   r2         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V17 tmp9         [V17,T00] (  6, 20.50)     int  ->   r7         "field V05._index (fldOffset=0x8)" P-INDEP
-;  V18 tmp10        [V18,T07] (  3,  8.50)     int  ->   r6         "field V05._version (fldOffset=0xc)" P-INDEP
-;  V19 tmp11        [V19,T13] (  3,  1.50)     ref  ->   r5         single-def "field V11._list (fldOffset=0x0)" P-INDEP
+;  V18 tmp10        [V18,T09] (  2,  4.50)     int  ->   r6         "field V05._version (fldOffset=0xc)" P-INDEP
+;  V19 tmp11        [V19,T14] (  3,  1.50)     ref  ->   r5         single-def "field V11._list (fldOffset=0x0)" P-INDEP
 ;* V20 tmp12        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._current (fldOffset=0x4)" P-INDEP
-;* V21 tmp13        [V21,T17] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
-;  V22 tmp14        [V22,T14] (  2,  1   )     int  ->   r6         "field V11._version (fldOffset=0xc)" P-INDEP
+;* V21 tmp13        [V21,T18] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
+;  V22 tmp14        [V22,T15] (  2,  1   )     int  ->   r6         "field V11._version (fldOffset=0xc)" P-INDEP
 ;  V23 tmp15        [V23,T01] (  3, 24   )     ref  ->   r0         "arr expr"
-;  V24 PSPSym       [V24,T15] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
-;  V25 cse0         [V25,T05] (  3, 12   )     int  ->   r8         "CSE - aggressive"
-;  V26 cse1         [V26,T09] (  4,  3   )     ref  ->   r5         "CSE - aggressive"
+;  V24 PSPSym       [V24,T16] (  1,  1   )     int  ->  [sp+0x08]  do-not-enreg[V] "PSPSym"
+;  V25 cse0         [V25,T08] (  2,  8   )     int  ->   r0         "CSE - aggressive"
+;  V26 cse1         [V26,T05] (  2,  8   )     int  ->   r0         "CSE - aggressive"
+;  V27 cse2         [V27,T10] (  4,  3   )     ref  ->   r5         "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 12
 
 G_M53769_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r0}
-            push    {r4,r5,r6,r7,r8,r11,lr}
-            sub     sp, 16
-            add     r11, sp, 36
-            add     r0, sp, 48
-            str     r0, [sp+0x0C]  // [V24 PSPSym]
+            push    {r4,r5,r6,r7,r11,lr}
+            sub     sp, 12
+            add     r11, sp, 28
+            add     r0, sp, 40
+            str     r0, [sp+0x08]  // [V24 PSPSym]
             mov     r4, r1
             ; gcrRegs +[r4]
                        ;; size=18 bbWeight=1 PerfScore 7.00
@@ -54,7 +55,7 @@ G_M53769_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             movs    r1, 0
             str     r1, [sp+0x04]  // [V03 loc1]
                        ;; size=6 bbWeight=1 PerfScore 3.00
-G_M53769_IG03:        ; bbWeight=1, gcVars=00010000 {V02}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M53769_IG03:        ; bbWeight=1, gcVars=00020000 {V02}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x04]  // [V03 loc1]
             cmp     r1, 0
             bne     SHORT G_M53769_IG06
@@ -75,7 +76,7 @@ G_M53769_IG03:        ; bbWeight=1, gcVars=00010000 {V02}, gcrefRegs=0010 {r4},
             ldr     r5, [r4+0x04]
             ; gcrRegs +[r5]
             cmp     r5, 0
-            beq     SHORT G_M53769_IG14
+            beq     SHORT G_M53769_IG13
                         ;; size=44 bbWeight=1 PerfScore 16.00
 G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             mov     r1, r5
@@ -88,24 +89,24 @@ G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}
             ; gcrRegs -[r1] +[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M53769_IG11
+            beq     SHORT G_M53769_IG10
             mov     r5, r0
             ldr     r6, [r5+0x0C]
             movs    r7, 0
                        ;; size=30 bbWeight=0.50 PerfScore 5.50
 G_M53769_IG05:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
-            ldr     r8, [r5+0x0C]
-            cmp     r6, r8
-            bne     SHORT G_M53769_IG07
+            ldr     r0, [r5+0x0C]
+            cmp     r6, r0
+            bne     SHORT G_M53769_IG09
             ldr     r0, [r5+0x08]
             cmp     r7, r0
-            bhs     SHORT G_M53769_IG08
+            bhs     SHORT G_M53769_IG07
             ldr     r0, [r5+0x04]
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x04]
             cmp     r7, r1
-            bhs     SHORT G_M53769_IG09
+            bhs     SHORT G_M53769_IG08
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -116,7 +117,7 @@ G_M53769_IG05:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             mov     r0, r4
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
-            ldr     r1, [sp+0x2C] // [V14 tmp6]
+            ldr     r1, [sp+0x24]    // [V14 tmp6]
             ; gcrRegs +[r1]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -125,7 +126,7 @@ G_M53769_IG05:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0-r2]
             ; gcr arg pop 0
             b       SHORT G_M53769_IG05
-                      ;; size=48 bbWeight=4 PerfScore 84.00
+                     ;; size=46 bbWeight=4 PerfScore 84.00
 G_M53769_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r4-r5]
             movw    r3, 0xd1ff
@@ -137,22 +138,18 @@ G_M53769_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=14 bbWeight=0 PerfScore 0.00
 G_M53769_IG07:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4]
-            cmp     r6, r8
-            bne     SHORT G_M53769_IG10
-                       ;; size=4 bbWeight=4 PerfScore 8.00
-G_M53769_IG08:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             movs    r0, 0
             str     r0, [r4+0x04]
-            b       SHORT G_M53769_IG14
+            b       SHORT G_M53769_IG13
                         ;; size=6 bbWeight=4 PerfScore 12.00
-G_M53769_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53769_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r4]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M53769_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53769_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -160,7 +157,7 @@ G_M53769_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M53769_IG11:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+G_M53769_IG10:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4-r5]
             mov     r2, r5
             ; gcrRegs +[r2]
@@ -168,17 +165,17 @@ G_M53769_IG11:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
             cmp     r0, r1
-            beq     SHORT G_M53769_IG13
+            beq     SHORT G_M53769_IG12
                        ;; size=16 bbWeight=0.50 PerfScore 3.00
-G_M53769_IG12:        ; bbWeight=0.12, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M53769_IG11:        ; bbWeight=0.12, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r2 r5]
             movs    r2, 0
                        ;; size=2 bbWeight=0.12 PerfScore 0.12
-G_M53769_IG13:        ; bbWeight=0.50, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, byref, isz
+G_M53769_IG12:        ; bbWeight=0.50, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r2]
             mov     r0, r4
             ; gcrRegs +[r0]
-            ldr     r1, [sp+0x2C] // [V14 tmp6]
+            ldr     r1, [sp+0x24]    // [V14 tmp6]
             ; gcrRegs +[r1]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -186,15 +183,15 @@ G_M53769_IG13:        ; bbWeight=0.50, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}
             blx     r3     // System.Net.Http.Headers.HttpHeaders:ParseSingleRawHeaderValue(System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo,System.Net.Http.Headers.HeaderDescriptor,System.String)
             ; gcrRegs -[r0-r2]
             ; gcr arg pop 0
-            b       SHORT G_M53769_IG08
+            b       SHORT G_M53769_IG07
                       ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M53769_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53769_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r4]
             ldrb    r0, [sp+0x04]  // [V03 loc1]
             cmp     r0, 0
-            beq     SHORT G_M53769_IG16
+            beq     SHORT G_M53769_IG15
                         ;; size=8 bbWeight=1 PerfScore 3.00
-G_M53769_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53769_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ldr     r0, [sp] // [V02 loc0]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
@@ -204,38 +201,36 @@ G_M53769_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M53769_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            add     sp, 16
-            pop     {r4,r5,r6,r7,r8,r11,lr}
+G_M53769_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            add     sp, 12
+            pop     {r4,r5,r6,r7,r11,lr}
             add     sp, 4
             bx      lr
                        ;; size=10 bbWeight=1 PerfScore 4.00
-G_M53769_IG17:        ; bbWeight=0, gcVars=00010000 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
-            ; GC ptr vars +{V02 V16}
-            push    {r4,r5,r6,r7,r8,r11,lr}
-            sub     sp, 12
+G_M53769_IG16:        ; bbWeight=0, gcVars=00020000 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+            ; GC ptr vars +{V02 V17}
+            push    {r2,r3,r4,r5,r6,r7,r11,lr}
             add     r3, r11, 12
-            str     r3, [sp+0x04]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M53769_IG18:        ; bbWeight=0, gcVars=00010000 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldrb    r0, [r11-0x20] // [V03 loc1]
+            str     r3, [sp]
+                       ;; size=10 bbWeight=0 PerfScore 0.00
+G_M53769_IG17:        ; bbWeight=0, gcVars=00020000 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldrb    r0, [r11-0x18] // [V03 loc1]
             cmp     r0, 0
-            beq     SHORT G_M53769_IG19
-            ldr     r0, [r11-0x24] // [V02 loc0]
+            beq     SHORT G_M53769_IG18
+            ldr     r0, [r11-0x1C] // [V02 loc0]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
-            ; GC ptr vars -{V02 V16}
+            ; GC ptr vars -{V02 V17}
             blx     r3       // <unknown method>
             ; gcrRegs -[r0]
...
  
-10 (-2.22%) : 4106.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
@@ -10,8 +10,8 @@
 ;
 ;  V00 this         [V00,T09] (  3,  4   )     ref  ->   r5         this class-hnd single-def <System.Threading.Tasks.Task>
 ;  V01 arg1         [V01,T08] (  5,  4.50)     ref  ->   r4         class-hnd single-def <System.Threading.Tasks.Task+ContingentProperties>
-;  V02 loc0         [V02,T11] (  5,  3.50)     ref  ->   r6         class-hnd single-def <<unknown class>>
-;  V03 loc1         [V03,T15] (  3,  0.50)     ref  ->  [sp+0x00]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V02 loc0         [V02,T12] (  5,  3.50)     ref  ->   r6         class-hnd single-def <<unknown class>>
+;  V03 loc1         [V03,T16] (  3,  0.50)     ref  ->  [sp+0x00]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V04 loc2         [V04    ] (  6,  2.50)   ubyte  ->  [sp+0x04]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Threading.Tasks.Task>
@@ -24,19 +24,20 @@
 ;  V13 tmp5         [V13,T04] (  3, 12   )     ref  ->   r9         class-hnd "Inlining Arg" <System.AggregateException>
 ;* V14 tmp6         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp7         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V16 tmp8         [V16,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V16 tmp8         [V16,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V17 tmp9         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V18 tmp10        [V18,T03] (  4, 12.50)     ref  ->   r6         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V19 tmp11        [V19,T02] (  5, 14   )     ref  ->   r9         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V20 tmp12        [V20,T00] (  6, 20.50)     int  ->   r8         "field V05._index (fldOffset=0x8)" P-INDEP
-;  V21 tmp13        [V21,T06] (  3,  8.50)     int  ->   r7         "field V05._version (fldOffset=0xc)" P-INDEP
-;  V22 tmp14        [V22,T12] (  3,  1.50)     ref  ->   r6         single-def "field V09._list (fldOffset=0x0)" P-INDEP
+;  V21 tmp13        [V21,T11] (  2,  4.50)     int  ->   r7         "field V05._version (fldOffset=0xc)" P-INDEP
+;  V22 tmp14        [V22,T13] (  3,  1.50)     ref  ->   r6         single-def "field V09._list (fldOffset=0x0)" P-INDEP
 ;* V23 tmp15        [V23    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V09._current (fldOffset=0x4)" P-INDEP
-;* V24 tmp16        [V24,T16] (  0,  0   )     int  ->  zero-ref    "field V09._index (fldOffset=0x8)" P-INDEP
-;  V25 tmp17        [V25,T13] (  2,  1   )     int  ->   r7         "field V09._version (fldOffset=0xc)" P-INDEP
+;* V24 tmp16        [V24,T17] (  0,  0   )     int  ->  zero-ref    "field V09._index (fldOffset=0x8)" P-INDEP
+;  V25 tmp17        [V25,T14] (  2,  1   )     int  ->   r7         "field V09._version (fldOffset=0xc)" P-INDEP
 ;  V26 tmp18        [V26,T01] (  3, 24   )     ref  ->   r0         "arr expr"
-;  V27 PSPSym       [V27,T14] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
-;  V28 cse0         [V28,T05] (  3, 12   )     int  ->   r9         "CSE - aggressive"
+;  V27 PSPSym       [V27,T15] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
+;  V28 cse0         [V28,T07] (  2,  8   )     int  ->   r0         "CSE - aggressive"
+;  V29 cse1         [V29,T05] (  2,  8   )     int  ->   r0         "CSE - aggressive"
 ;
 ; Lcl frame size = 16
 
@@ -70,7 +71,7 @@ G_M37406_IG04:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ; gcrRegs +[r6]
             dmb     15
             cmp     r6, 0
-            beq     G_M37406_IG19
+            beq     G_M37406_IG18
                         ;; size=24 bbWeight=1 PerfScore 8.00
 G_M37406_IG05:        ; bbWeight=0.50, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref
             str     r6, [sp]   // [V03 loc1]
@@ -78,7 +79,7 @@ G_M37406_IG05:        ; bbWeight=0.50, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000
             movs    r1, 0
             str     r1, [sp+0x04]  // [V04 loc2]
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M37406_IG06:        ; bbWeight=0.50, gcVars=00008000 {V03}, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M37406_IG06:        ; bbWeight=0.50, gcVars=00010000 {V03}, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x04] // [V04 loc2]
             cmp     r1, 0
             bne     G_M37406_IG13
@@ -100,17 +101,17 @@ G_M37406_IG06:        ; bbWeight=0.50, gcVars=00008000 {V03}, gcrefRegs=0070 {r4
             mov     r8, 0
                        ;; size=46 bbWeight=0.50 PerfScore 7.50
 G_M37406_IG07:        ; bbWeight=4, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ldr     r9, [r6+0x0C]
-            cmp     r7, r9
-            bne     SHORT G_M37406_IG14
+            ldr     r0, [r6+0x0C]
+            cmp     r7, r0
+            bne     SHORT G_M37406_IG15
             ldr     r0, [r6+0x08]
             cmp     r8, r0
-            bhs     G_M37406_IG17
+            bhs     SHORT G_M37406_IG16
             ldr     r0, [r6+0x04]
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x04]
             cmp     r8, r1
-            bhs     SHORT G_M37406_IG15
+            bhs     SHORT G_M37406_IG14
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -124,7 +125,7 @@ G_M37406_IG07:        ; bbWeight=4, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             ands    r0, r0, 0x1600000
             cmp     r0, 0
             bne     SHORT G_M37406_IG09
-                      ;; size=54 bbWeight=4 PerfScore 76.00
+                     ;; size=50 bbWeight=4 PerfScore 76.00
 G_M37406_IG08:        ; bbWeight=2, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -216,20 +217,13 @@ G_M37406_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M37406_IG14:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r4]
-            cmp     r7, r9
-            bne     SHORT G_M37406_IG16
-            b       SHORT G_M37406_IG17
-                       ;; size=6 bbWeight=4 PerfScore 12.00
-G_M37406_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r4]
+G_M37406_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M37406_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M37406_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -237,11 +231,11 @@ G_M37406_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M37406_IG17:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M37406_IG16:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4]
             ldrb    r0, [sp+0x04]  // [V04 loc2]
             cmp     r0, 0
-            beq     SHORT G_M37406_IG18
+            beq     SHORT G_M37406_IG17
             ldr     r0, [sp]    // [V03 loc1]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
@@ -251,40 +245,40 @@ G_M37406_IG17:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=20 bbWeight=0.50 PerfScore 3.50
-G_M37406_IG18:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M37406_IG17:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             movs    r3, 0
             dmb     15
             str     r3, [r4+0x14]
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M37406_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M37406_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r4]
             add     sp, 16
             pop     {r4,r5,r6,r7,r8,r9,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M37406_IG20:        ; bbWeight=0, gcVars=00008000 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
-            ; GC ptr vars +{V03}
+G_M37406_IG19:        ; bbWeight=0, gcVars=00010000 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+            ; GC ptr vars +{V03 V16}
             push    {r2,r3,r4,r5,r6,r7,r8,r9,r11,lr}
             add     r3, r11, 8
             str     r3, [sp+0x04]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M37406_IG21:        ; bbWeight=0, gcVars=00008000 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M37406_IG20:        ; bbWeight=0, gcVars=00010000 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r0, [r11-0x24]    // [V04 loc2]
             cmp     r0, 0
-            beq     SHORT G_M37406_IG22
+            beq     SHORT G_M37406_IG21
             ldr     r0, [r11-0x28]  // [V03 loc1]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
-            ; GC ptr vars -{V03}
+            ; GC ptr vars -{V03 V16}
             blx     r3       // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=22 bbWeight=0 PerfScore 0.00
-G_M37406_IG22:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M37406_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
             pop     {r2,r3,r4,r5,r6,r7,r8,r9,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 450, prolog size 18, PerfScore 240.00, instruction count 154, allocated bytes for code 450 (MethodHash=88f36de1) for method System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
+; Total bytes of code 440, prolog size 18, PerfScore 228.00, instruction count 151, allocated bytes for code 440 (MethodHash=88f36de1) for method System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -296,7 +290,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 207 (0x000cf) Actual length = 414 (0x00019e)
+  Function Length   : 202 (0x000ca) Actual length = 404 (0x000194)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
@@ -323,4 +317,4 @@ Unwind Info:
 
 *************** EH table for System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M37406_IG06..G_M37406_IG17) handled by [G_M37406_IG20..END) (fault)
+EH#0: try [G_M37406_IG06..G_M37406_IG16) handled by [G_M37406_IG19..END) (fault)
  
-6 (-1.94%) : 5404.dasm - System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
@@ -8,10 +8,10 @@
 ; 0 inlinees with PGO data; 12 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T18] (  3,  3   )     int  ->   r4         single-def
-;  V01 arg1         [V01,T19] (  3,  3   )     int  ->   r5         single-def
+;  V00 arg0         [V00,T19] (  3,  3   )     int  ->   r4         single-def
+;  V01 arg1         [V01,T20] (  3,  3   )     int  ->   r5         single-def
 ;  V02 loc0         [V02    ] (  4, 17   )  struct ( 8) [sp+0x08]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[ushort]>
-;  V03 loc1         [V03,T20] (  4, 11   )     int  ->   r5        
+;  V03 loc1         [V03,T21] (  4, 11   )     int  ->   r5        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V05 loc3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
@@ -19,14 +19,14 @@
 ;  V08 tmp1         [V08,T10] (  7, 84   )     ref  ->   r4         class-hnd single-def "non-inline candidate call" <<unknown class>>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V10 tmp3         [V10    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V11 tmp4         [V11,T28] (  3,  0   )     ref  ->   r0         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-;  V12 tmp5         [V12,T22] (  2,  4   )     ref  ->   r4         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V11 tmp4         [V11,T29] (  3,  0   )     ref  ->   r0         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V12 tmp5         [V12,T23] (  2,  4   )     ref  ->   r4         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V13 tmp6         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V14 tmp7         [V14    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V15 tmp8         [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V16 tmp9         [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V17 tmp10        [V17,T08] (  2, 16   )     int  ->   lr         "Inlining Arg"
-;  V18 tmp11        [V18,T07] (  2, 16   )   byref  ->   r3         "Inlining Arg"
+;  V17 tmp10        [V17,T07] (  2, 16   )     int  ->   lr         "Inlining Arg"
+;  V18 tmp11        [V18,T06] (  2, 16   )   byref  ->   r3         "Inlining Arg"
 ;* V19 tmp12        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp13        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V21 tmp14        [V21,T12] (  2,  8   )   ubyte  ->   r0         "Inline return value spill temp"
@@ -40,30 +40,30 @@
 ;* V29 tmp22        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V30 tmp23        [V30    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V31 tmp24        [V31    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V32 tmp25        [V32,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V32 tmp25        [V32,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V33 tmp26        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V34 tmp27        [V34,T23] (  3, 17   )     ref  ->   r0         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V35 tmp28        [V35,T21] (  4, 18   )     int  ->   r3         "Inline stloc first use temp"
-;  V36 tmp29        [V36,T17] (  3, 20   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V34 tmp27        [V34,T24] (  3, 17   )     ref  ->   r0         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V35 tmp28        [V35,T22] (  4, 18   )     int  ->   r3         "Inline stloc first use temp"
+;  V36 tmp29        [V36,T18] (  3, 20   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V37 tmp30        [V37    ] (  3,  3   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] addr-exposed "Reverse Pinvoke FrameVar"
 ;  V38 tmp31        [V38    ] (  3, 13   )   byref  ->  [sp+0x08]  do-not-enreg[X] addr-exposed "field V02._reference (fldOffset=0x0)" P-DEP
 ;  V39 tmp32        [V39    ] (  3, 13   )     int  ->  [sp+0x0C]  do-not-enreg[X] addr-exposed "field V02._length (fldOffset=0x4)" P-DEP
-;  V40 tmp33        [V40,T02] (  4, 25   )     ref  ->   r4         single-def "field V04._list (fldOffset=0x0)" P-INDEP
-;  V41 tmp34        [V41,T03] (  4, 20   )     ref  ->   r2         "field V04._current (fldOffset=0x4)" P-INDEP
+;  V40 tmp33        [V40,T03] (  4, 25   )     ref  ->   r4         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V41 tmp34        [V41,T02] (  4, 20   )     ref  ->   r2         "field V04._current (fldOffset=0x4)" P-INDEP
 ;  V42 tmp35        [V42,T00] (  6, 41   )     int  ->   r7         "field V04._index (fldOffset=0x8)" P-INDEP
-;  V43 tmp36        [V43,T05] (  3, 17   )     int  ->   r6         "field V04._version (fldOffset=0xc)" P-INDEP
-;  V44 tmp37        [V44,T13] (  2,  8   )   byref  ->   r0         "field V09._reference (fldOffset=0x0)" P-INDEP
-;  V45 tmp38        [V45,T15] (  2,  8   )     int  ->   r1         "field V09._length (fldOffset=0x4)" P-INDEP
+;  V43 tmp36        [V43,T13] (  2,  9   )     int  ->   r6         "field V04._version (fldOffset=0xc)" P-INDEP
+;  V44 tmp37        [V44,T14] (  2,  8   )   byref  ->   r0         "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V45 tmp38        [V45,T16] (  2,  8   )     int  ->   r1         "field V09._length (fldOffset=0x4)" P-INDEP
 ;* V46 tmp39        [V46    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V47 tmp40        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x4)" P-INDEP
-;  V48 tmp41        [V48,T24] (  3,  3   )     ref  ->   r4         single-def "field V13._list (fldOffset=0x0)" P-INDEP
+;  V48 tmp41        [V48,T25] (  3,  3   )     ref  ->   r4         single-def "field V13._list (fldOffset=0x0)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V13._current (fldOffset=0x4)" P-INDEP
-;* V50 tmp43        [V50,T26] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
-;  V51 tmp44        [V51,T25] (  2,  2   )     int  ->   r6         "field V13._version (fldOffset=0xc)" P-INDEP
+;* V50 tmp43        [V50,T27] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
+;  V51 tmp44        [V51,T26] (  2,  2   )     int  ->   r6         "field V13._version (fldOffset=0xc)" P-INDEP
 ;  V52 tmp45        [V52,T11] (  3, 12   )   byref  ->   r3         "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V53 tmp46        [V53,T06] (  4, 16   )     int  ->   lr         "field V14._length (fldOffset=0x4)" P-INDEP
-;  V54 tmp47        [V54,T14] (  2,  8   )   byref  ->   r3         "field V15._reference (fldOffset=0x0)" P-INDEP
-;  V55 tmp48        [V55,T16] (  2,  8   )     int  ->   lr         "field V15._length (fldOffset=0x4)" P-INDEP
+;  V53 tmp46        [V53,T05] (  4, 16   )     int  ->   lr         "field V14._length (fldOffset=0x4)" P-INDEP
+;  V54 tmp47        [V54,T15] (  2,  8   )   byref  ->   r3         "field V15._reference (fldOffset=0x0)" P-INDEP
+;  V55 tmp48        [V55,T17] (  2,  8   )     int  ->   lr         "field V15._length (fldOffset=0x4)" P-INDEP
 ;* V56 tmp49        [V56    ] (  0,  0   )   byref  ->  zero-ref    "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V57 tmp50        [V57    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x4)" P-INDEP
 ;* V58 tmp51        [V58    ] (  0,  0   )   byref  ->  zero-ref    "field V22._reference (fldOffset=0x0)" P-INDEP
@@ -79,19 +79,20 @@
 ;* V68 tmp61        [V68    ] (  0,  0   )   byref  ->  zero-ref    "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V69 tmp62        [V69    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x4)" P-INDEP
 ;  V70 tmp63        [V70,T01] (  3, 48   )     ref  ->   r2         "arr expr"
-;  V71 PSPSym       [V71,T27] (  1,  1   )     int  ->  [sp+0x14]  do-not-enreg[V] "PSPSym"
-;  V72 cse0         [V72,T04] (  3, 24   )     int  ->   r8         "CSE - aggressive"
+;  V71 PSPSym       [V71,T28] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
+;  V72 cse0         [V72,T09] (  2, 16   )     int  ->   r2         "CSE - aggressive"
+;  V73 cse1         [V73,T04] (  2, 16   )     int  ->   r2         "CSE - aggressive"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 20
 
 G_M58652_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r10,r11,lr}
-            sub     sp, 24
-            add     r11, sp, 48
+            push    {r4,r5,r6,r7,r10,r11,lr}
+            sub     sp, 20
+            add     r11, sp, 40
             movs    r2, 0
             str     r2, [sp+0x08]
-            add     r2, sp, 56
-            str     r2, [sp+0x14]
+            add     r2, sp, 48
+            str     r2, [sp+0x10]
             mov     r4, r0
             mov     r5, r1
                        ;; size=22 bbWeight=1 PerfScore 9.00
@@ -112,7 +113,7 @@ G_M58652_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcr arg pop 0
             ldrb    r2, [r5+0x04]
             cmp     r2, 0
-            beq     SHORT G_M58652_IG11
+            beq     SHORT G_M58652_IG10
             ldr     r4, [r5]
             ; gcrRegs +[r4]
             ldr     r6, [r4+0x0C]
@@ -150,15 +151,15 @@ G_M58652_IG06:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0009 {r0 r3},
             ; byrRegs -[r0-r1]
             ; gcr arg pop 0
             cmp     r0, 0
-            bne     SHORT G_M58652_IG14
+            bne     SHORT G_M58652_IG13
                         ;; size=26 bbWeight=4 PerfScore 40.00
 G_M58652_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r8, [r4+0x0C]
-            cmp     r6, r8
-            bne     SHORT G_M58652_IG10
+            ldr     r2, [r4+0x0C]
+            cmp     r6, r2
+            bne     SHORT G_M58652_IG09
             ldr     r2, [r4+0x08]
             cmp     r7, r2
-            bhs     SHORT G_M58652_IG11
+            bhs     SHORT G_M58652_IG10
             ldr     r2, [r4+0x04]
             ; gcrRegs +[r2]
             ldr     r0, [r2+0x04]
@@ -173,7 +174,7 @@ G_M58652_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ; byrRegs -[r2]
             adds    r7, r7, 1
             b       SHORT G_M58652_IG04
-                      ;; size=32 bbWeight=8 PerfScore 120.00
+                        ;; size=30 bbWeight=8 PerfScore 120.00
 G_M58652_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r2 r4]
             movw    r3, 0xd1ff
@@ -190,10 +191,6 @@ G_M58652_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
 G_M58652_IG10:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            cmp     r6, r8
-            bne     SHORT G_M58652_IG09
-                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M58652_IG11:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ldr     r4, [r5]
             ; gcrRegs +[r4]
             add     r0, sp, 8
@@ -214,9 +211,9 @@ G_M58652_IG11:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldr     r3, [r4+0x08]
             ldr     lr, [r0+0x04]
             cmp     lr, r3
-            bls     SHORT G_M58652_IG13
+            bls     SHORT G_M58652_IG12
                        ;; size=36 bbWeight=8 PerfScore 120.00
-G_M58652_IG12:        ; bbWeight=1, gcrefRegs=0013 {r0 r1 r4}, byrefRegs=0000 {}, byref, isz
+G_M58652_IG11:        ; bbWeight=1, gcrefRegs=0013 {r0 r1 r4}, byrefRegs=0000 {}, byref, isz
             add     lr, r3, 1
             str     lr, [r4+0x08]
             adds    r0, 8
@@ -229,9 +226,9 @@ G_M58652_IG12:        ; bbWeight=1, gcrefRegs=0013 {r0 r1 r4}, byrefRegs=0000 {}
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1 r4]
             ; byrRegs -[r0]
-            b       SHORT G_M58652_IG14
+            b       SHORT G_M58652_IG13
                       ;; size=26 bbWeight=1 PerfScore 9.00
-G_M58652_IG13:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref
+G_M58652_IG12:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r1 r4]
             mov     r0, r4
             ; gcrRegs +[r0]
@@ -242,24 +239,24 @@ G_M58652_IG13:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0-r1 r4]
             ; gcr arg pop 0
                        ;; size=14 bbWeight=1 PerfScore 5.00
-G_M58652_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M58652_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             add     r0, sp, 0
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_JIT_REVERSE_PINVOKE_EXIT
             ; gcr arg pop 0
                        ;; size=12 bbWeight=1 PerfScore 4.00
-G_M58652_IG15:        ; bbWeight=1, epilog, nogc, extend
-            add     sp, 24
-            pop     {r4,r5,r6,r7,r8,r10,r11,pc}
+G_M58652_IG14:        ; bbWeight=1, epilog, nogc, extend
+            add     sp, 20
+            pop     {r4,r5,r6,r7,r10,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M58652_IG16:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M58652_IG15:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             ; gcrRegs +[r0]
-            push    {r2,r3,r4,r5,r6,r7,r8,r10,r11,lr}
+            push    {r3,r4,r5,r6,r7,r10,r11,lr}
             add     r3, r11, 8
-            str     r3, [sp+0x04]
+            str     r3, [sp]
                      ;; size=10 bbWeight=0 PerfScore 0.00
-G_M58652_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
+G_M58652_IG16:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
             ldr     r3, [r0]
             ldr     r3, [r3+0x2C]
             ldr     r3, [r3+0x04]
@@ -271,14 +268,14 @@ G_M58652_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byr
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            movw    r0, LOW ADDRESS G_M58652_IG14
-            movt    r0, HIGH ADDRESS G_M58652_IG14
+            movw    r0, LOW ADDRESS G_M58652_IG13
+            movt    r0, HIGH ADDRESS G_M58652_IG13
                      ;; size=28 bbWeight=0 PerfScore 0.00
-G_M58652_IG18:        ; bbWeight=0, funclet epilog, nogc, extend
-            pop     {r2,r3,r4,r5,r6,r7,r8,r10,r11,pc}
+G_M58652_IG17:        ; bbWeight=0, funclet epilog, nogc, extend
+            pop     {r3,r4,r5,r6,r7,r10,r11,pc}
                         ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 310, prolog size 22, PerfScore 378.00, instruction count 119, allocated bytes for code 310 (MethodHash=943d1ae3) for method System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
+; Total bytes of code 304, prolog size 22, PerfScore 362.00, instruction count 117, allocated bytes for code 304 (MethodHash=943d1ae3) for method System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -290,12 +287,12 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 134 (0x00086) Actual length = 268 (0x00010c)
+  Function Length   : 131 (0x00083) Actual length = 262 (0x000106)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    06          add sp, sp, #24                     ; opsize 16
-    AD F0       pop {r4,r5,r6,r7,r8,r10,r11,lr}     ; opsize 32
+    05          add sp, sp, #20                     ; opsize 16
+    AC F0       pop {r4,r5,r6,r7,r10,r11,lr}        ; opsize 32
     FF          end
 
...
  
+2 (+0.18%) : 4628.dasm - System.Text.RegularExpressions.RegexNode:g_ExtractCommonPrefixOneNotoneSet|411(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 39 single block inlinees; 18 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T28] ( 15, 23   )     ref  ->   r4         class-hnd single-def <System.Text.RegularExpressions.RegexNode>
+;  V00 arg0         [V00,T34] ( 14, 21   )     ref  ->   r4         class-hnd single-def <System.Text.RegularExpressions.RegexNode>
 ;  V01 loc0         [V01,T02] ( 16,137.50)     ref  ->   r5         class-hnd single-def <<unknown class>>
 ;* V02 loc1         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Text.RegularExpressions.RegexNode]>
 ;* V03 loc2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
@@ -16,7 +16,7 @@
 ;  V05 loc4         [V05,T22] ( 14, 42   )     int  ->   r6        
 ;  V06 loc5         [V06,T07] ( 11,110   )     ref  ->   r8         class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V07 loc6         [V07,T03] ( 12,122   )     int  ->   r7        
-;  V08 loc7         [V08,T30] (  5, 24   )     ref  ->   r9         class-hnd <System.Text.RegularExpressions.RegexNode>
+;  V08 loc7         [V08,T29] (  5, 24   )     ref  ->   r9         class-hnd <System.Text.RegularExpressions.RegexNode>
 ;* V09 loc8         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V10 loc9         [V10,T45] (  4, 12   )   ubyte  ->   r0        
 ;* V11 loc10        [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
@@ -24,8 +24,8 @@
 ;  V13 loc12        [V13,T59] (  3,  6   )     ref  ->   r0         class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;* V14 loc13        [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V15 OutArgs      [V15    ] (  1,  1   )  struct ( 4) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V16 tmp1         [V16,T64] (  3,  4.25)     ref  ->   r1         single-def "CASTCLASS eval op1"
-;  V17 tmp2         [V17,T65] (  3,  1.25)     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V16 tmp1         [V16,T65] (  3,  4.25)     ref  ->   r1         single-def "CASTCLASS eval op1"
+;  V17 tmp2         [V17,T66] (  3,  1.25)     int  ->   r3         "fgMakeTemp is creating a new local variable"
 ;  V18 tmp3         [V18,T58] (  5,  6.75)     ref  ->   r5         class-hnd "spilling QMark2" <<unknown class>>
 ;* V19 tmp4         [V19    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V20 tmp5         [V20    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
@@ -50,7 +50,7 @@
 ;* V39 tmp24        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V40 tmp25        [V40,T47] (  4, 11   )     ref  ->   r7         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V41 tmp26        [V41,T49] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V42 tmp27        [V42,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V42 tmp27        [V42,T63] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V43 tmp28        [V43,T39] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V44 tmp29        [V44,T04] (  8,112   )     ref  ->   r2         class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
 ;  V45 tmp30        [V45,T13] (  3, 80   )     ref  ->   r0         class-hnd "Inlining Arg" <System.__Canon>
@@ -75,21 +75,21 @@
 ;  V64 tmp49        [V64,T56] (  2,  8   )     int  ->   r0         "Inlining Arg"
 ;  V65 tmp50        [V65,T57] (  2,  8   )     int  ->   r0         "Inlining Arg"
 ;  V66 tmp51        [V66,T41] (  4, 16   )     ref  ->   r8         class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-;  V67 tmp52        [V67,T53] (  2,  8   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V68 tmp53        [V68,T48] (  3, 10   )     ref  ->   r1         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
+;  V67 tmp52        [V67,T53] (  2,  8   )     ref  ->   r0         "CASTCLASS eval op1"
+;  V68 tmp53        [V68,T48] (  3, 10   )     ref  ->   r0         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V69 tmp54        [V69,T50] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V70 tmp55        [V70,T63] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V70 tmp55        [V70,T64] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
 ;  V71 tmp56        [V71,T27] (  8, 27   )     ref  ->   r9         class-hnd "spilling QMark2" <<unknown class>>
-;* V72 tmp57        [V72,T68] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._list (fldOffset=0x0)" P-INDEP
+;* V72 tmp57        [V72,T69] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._list (fldOffset=0x0)" P-INDEP
 ;  V73 tmp58        [V73,T44] (  3,  8   )     ref  ->   r1         "field V02._current (fldOffset=0x4)" P-INDEP
-;  V74 tmp59        [V74,T29] (  6, 20.50)     int  ->   r6         "field V02._index (fldOffset=0x8)" P-INDEP
-;* V75 tmp60        [V75,T70] (  0,  0   )     int  ->  zero-ref    "field V02._version (fldOffset=0xc)" P-INDEP
-;* V76 tmp61        [V76,T69] (  0,  0   )     ref  ->  zero-ref    single-def "field V31._list (fldOffset=0x0)" P-INDEP
+;  V74 tmp59        [V74,T28] (  6, 20.50)     int  ->   r6         "field V02._index (fldOffset=0x8)" P-INDEP
+;* V75 tmp60        [V75,T71] (  0,  0   )     int  ->  zero-ref    "field V02._version (fldOffset=0xc)" P-INDEP
+;* V76 tmp61        [V76,T70] (  0,  0   )     ref  ->  zero-ref    single-def "field V31._list (fldOffset=0x0)" P-INDEP
 ;* V77 tmp62        [V77    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V31._current (fldOffset=0x4)" P-INDEP
-;* V78 tmp63        [V78,T71] (  0,  0   )     int  ->  zero-ref    "field V31._index (fldOffset=0x8)" P-INDEP
-;* V79 tmp64        [V79,T66] (  0,  0   )     int  ->  zero-ref    "field V31._version (fldOffset=0xc)" P-INDEP
-;  V80 tmp65        [V80,T31] (  3, 24   )     ref  ->   r1         "arr expr"
-;  V81 tmp66        [V81,T32] (  3, 24   )     ref  ->   r0         "arr expr"
+;* V78 tmp63        [V78,T72] (  0,  0   )     int  ->  zero-ref    "field V31._index (fldOffset=0x8)" P-INDEP
+;* V79 tmp64        [V79,T67] (  0,  0   )     int  ->  zero-ref    "field V31._version (fldOffset=0xc)" P-INDEP
+;  V80 tmp65        [V80,T30] (  3, 24   )     ref  ->   r1         "arr expr"
+;  V81 tmp66        [V81,T31] (  3, 24   )     ref  ->   r0         "arr expr"
 ;  V82 tmp67        [V82,T46] (  3, 12   )     ref  ->   r0         "arr expr"
 ;  V83 tmp68        [V83,T08] (  3, 96   )     ref  ->   r0         "arr expr"
 ;  V84 tmp69        [V84,T19] (  3, 48   )     ref  ->   r2         "arr expr"
@@ -100,11 +100,12 @@
 ;  V89 tmp74        [V89,T17] (  2, 64   )     ref  ->   r1         "argument with side effect"
 ;  V90 cse0         [V90,T18] (  4, 56   )     int  ->   r0         "CSE - moderate"
 ;  V91 cse1         [V91,T20] (  3, 48   )     int  ->   r0         "CSE - moderate"
-;* V92 cse2         [V92,T67] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
-;  V93 cse3         [V93,T33] (  3, 24   )     ref  ->   r2         "CSE - moderate"
+;* V92 cse2         [V92,T68] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
+;  V93 cse3         [V93,T32] (  3, 24   )     ref  ->   r2         "CSE - moderate"
 ;  V94 cse4         [V94,T42] (  3, 12   )     int  ->   r7         "CSE - conservative"
 ;  V95 cse5         [V95,T61] (  3,  6   )     ref  ->   r1         "CSE - conservative"
-;  V96 cse6         [V96,T34] (  3, 24   )     int  ->   r2         "CSE - moderate"
+;  V96 cse6         [V96,T62] (  3,  6   )     ref  ->   r1         "CSE - conservative"
+;  V97 cse7         [V97,T33] (  3, 24   )     int  ->   r2         "CSE - moderate"
 ;
 ; Lcl frame size = 20
 
@@ -696,20 +697,26 @@ G_M3603_IG41:        ; bbWeight=2, gcrefRegs=0330 {r4 r5 r8 r9}, byrefRegs=0000
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            ldr     r1, [r4+0x04]
+            ldr     r2, [r4+0x04]
+            ; gcrRegs +[r2]
+            mov     r1, r2
             ; gcrRegs +[r1]
-            cmp     r1, 0
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            cmp     r0, 0
             beq     SHORT G_M3603_IG44
-                      ;; size=118 bbWeight=2 PerfScore 82.00
-G_M3603_IG42:        ; bbWeight=1, gcrefRegs=0132 {r1 r4 r5 r8}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [r1]
-            ; gcrRegs -[r1]
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            cmp     r1, r0
+                       ;; size=122 bbWeight=2 PerfScore 86.00
+G_M3603_IG42:        ; bbWeight=1, gcrefRegs=0133 {r0 r1 r4 r5 r8}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2]
+            ldr     r0, [r0]
+            ; gcrRegs -[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            cmp     r0, r3
             bne     SHORT G_M3603_IG44
                        ;; size=14 bbWeight=1 PerfScore 5.00
 G_M3603_IG43:        ; bbWeight=2, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r1]
             adds    r0, r4, 4
             ; byrRegs +[r0]
             mov     r1, r8
@@ -721,15 +728,13 @@ G_M3603_IG43:        ; bbWeight=2, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {},
             ; byrRegs -[r0]
             b       SHORT G_M3603_IG48
                        ;; size=16 bbWeight=2 PerfScore 12.00
-G_M3603_IG44:        ; bbWeight=2, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r8]
-            ldr     r1, [r4+0x04]
-            ; gcrRegs +[r1]
+G_M3603_IG44:        ; bbWeight=2, gcrefRegs=0132 {r1 r4 r5 r8}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r1 r8]
             mov     r9, r1
             ; gcrRegs +[r9]
             cmp     r9, 0
             beq     SHORT G_M3603_IG47
-                       ;; size=10 bbWeight=2 PerfScore 8.00
+                      ;; size=8 bbWeight=2 PerfScore 6.00
 G_M3603_IG45:        ; bbWeight=1, gcrefRegs=0332 {r1 r4 r5 r8 r9}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r9]
             movw    r3, 0xd1ff
@@ -819,7 +824,7 @@ G_M3603_IG53:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1110, prolog size 12, PerfScore 2413.38, instruction count 428, allocated bytes for code 1110 (MethodHash=ab1ef1ec) for method System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
+; Total bytes of code 1112, prolog size 12, PerfScore 2415.38, instruction count 429, allocated bytes for code 1112 (MethodHash=ab1ef1ec) for method System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -831,7 +836,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 555 (0x0022b) Actual length = 1110 (0x000456)
+  Function Length   : 556 (0x0022c) Actual length = 1112 (0x000458)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+2 (+0.21%) : 4637.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
@@ -8,12 +8,12 @@
 ; 0 inlinees with PGO data; 14 single block inlinees; 15 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T57] (  4,  3   )     ref  ->   r4         this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
-;  V01 loc0         [V01,T00] ( 27, 93   )     ref  ->   r4         class-hnd <System.Text.RegularExpressions.RegexNode>
+;  V00 this         [V00,T58] (  4,  3   )     ref  ->   r4         this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
+;  V01 loc0         [V01,T00] ( 26, 91   )     ref  ->   r4         class-hnd <System.Text.RegularExpressions.RegexNode>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V03 loc2         [V03,T32] (  3, 12   )   ubyte  ->   r0        
 ;  V04 loc3         [V04,T26] (  4, 12   )   ubyte  ->   r0        
-;* V05 loc4         [V05,T63] (  0,  0   )   ubyte  ->  zero-ref   
+;* V05 loc4         [V05,T64] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V07 loc6         [V07,T12] (  3, 24   )     int  ->   r6        
 ;  V08 loc7         [V08,T01] (  7, 76   )     int  ->   r5        
@@ -25,7 +25,7 @@
 ;* V14 tmp4         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V15 tmp5         [V15,T34] (  4, 11   )     ref  ->   r4         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V16 tmp6         [V16,T41] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V17 tmp7         [V17,T58] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V17 tmp7         [V17,T59] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V18 tmp8         [V18,T16] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V19 tmp9         [V19,T39] (  4, 10   )     int  ->   r6         "Inline return value spill temp"
 ;  V20 tmp10        [V20,T52] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
@@ -34,7 +34,7 @@
 ;* V23 tmp13        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V24 tmp14        [V24,T35] (  4, 11   )     ref  ->   r7         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V25 tmp15        [V25,T42] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V26 tmp16        [V26,T59] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V26 tmp16        [V26,T60] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V27 tmp17        [V27,T17] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V28 tmp18        [V28,T14] (  4, 20   )     int  ->   r6         "Inlining Arg"
 ;* V29 tmp19        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
@@ -42,10 +42,10 @@
 ;  V31 tmp21        [V31,T46] (  4,  8   )     int  ->   r7         "Inline return value spill temp"
 ;  V32 tmp22        [V32,T53] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V33 tmp23        [V33,T21] (  4, 16   )     ref  ->   r6         class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-;  V34 tmp24        [V34,T50] (  2,  8   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V35 tmp25        [V35,T38] (  3, 10   )     ref  ->   r1         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
+;  V34 tmp24        [V34,T50] (  2,  8   )     ref  ->   r0         "CASTCLASS eval op1"
+;  V35 tmp25        [V35,T38] (  3, 10   )     ref  ->   r0         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V36 tmp26        [V36,T43] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V37 tmp27        [V37,T60] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V37 tmp27        [V37,T61] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
 ;  V38 tmp28        [V38,T10] (  8, 27   )     ref  ->   r4         class-hnd "spilling QMark2" <<unknown class>>
 ;  V39 tmp29        [V39,T33] (  3, 12   )     int  ->   r7         "Inlining Arg"
 ;  V40 tmp30        [V40,T40] (  4, 10   )     int  ->   r6         "Inline return value spill temp"
@@ -62,7 +62,7 @@
 ;* V51 tmp41        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V52 tmp42        [V52,T36] (  4, 11   )     ref  ->   r3         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V53 tmp43        [V53,T44] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V54 tmp44        [V54,T61] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V54 tmp44        [V54,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V55 tmp45        [V55,T18] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;* V56 tmp46        [V56    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V57 tmp47        [V57,T49] (  3,  8   )     ref  ->   r4         class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
@@ -70,7 +70,7 @@
 ;* V59 tmp49        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V60 tmp50        [V60,T37] (  4, 11   )     ref  ->   r4         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V61 tmp51        [V61,T45] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V62 tmp52        [V62,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V62 tmp52        [V62,T63] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V63 tmp53        [V63,T19] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V64 tmp54        [V64,T28] (  3, 12   )     ref  ->   r1         "arr expr"
 ;  V65 tmp55        [V65,T29] (  3, 12   )     ref  ->   r0         "arr expr"
@@ -81,7 +81,8 @@
 ;  V70 cse1         [V70,T07] (  3, 40   )     ref  ->   r1         "CSE - aggressive"
 ;  V71 cse2         [V71,T55] (  3,  6   )     ref  ->   r0         "CSE - conservative"
 ;  V72 cse3         [V72,T56] (  3,  6   )     ref  ->   r1         "CSE - conservative"
-;  V73 rat0         [V73,T13] (  3, 24   )     int  ->   r5         "ReplaceWithLclVar is creating a new local variable"
+;  V73 cse4         [V73,T57] (  3,  6   )     ref  ->   r1         "CSE - conservative"
+;  V74 rat0         [V74,T13] (  3, 24   )     int  ->   r5         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -109,7 +110,7 @@ G_M35244_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs -[r4]
             pop     {r4,r5,r6,r7,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG05:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35244_IG05:        ; bbWeight=4, gcVars=000000000000000000000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r4]
             ldrb    r0, [r4+0x1E]
             subs    r3, r0, 3
@@ -397,20 +398,26 @@ G_M35244_IG30:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            ldr     r1, [r4+0x04]
+            ldr     r2, [r4+0x04]
+            ; gcrRegs +[r2]
+            mov     r1, r2
             ; gcrRegs +[r1]
-            cmp     r1, 0
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            cmp     r0, 0
             beq     SHORT G_M35244_IG33
-                     ;; size=56 bbWeight=2 PerfScore 40.00
-G_M35244_IG31:        ; bbWeight=1, gcrefRegs=0072 {r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [r1]
-            ; gcrRegs -[r1]
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            cmp     r1, r0
+                       ;; size=60 bbWeight=2 PerfScore 44.00
+G_M35244_IG31:        ; bbWeight=1, gcrefRegs=0073 {r0 r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2]
+            ldr     r0, [r0]
+            ; gcrRegs -[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            cmp     r0, r3
             bne     SHORT G_M35244_IG33
                        ;; size=14 bbWeight=1 PerfScore 5.00
 G_M35244_IG32:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r1]
             adds    r0, r4, 4
             ; byrRegs +[r0]
             mov     r1, r6
@@ -422,14 +429,13 @@ G_M35244_IG32:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             ; byrRegs -[r0]
             b       SHORT G_M35244_IG37
                        ;; size=16 bbWeight=2 PerfScore 12.00
-G_M35244_IG33:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r4 r6]
-            ldr     r1, [r4+0x04]
-            ; gcrRegs +[r1]
+G_M35244_IG33:        ; bbWeight=2, gcrefRegs=0062 {r1 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r1 r6]
             mov     r4, r1
+            ; gcrRegs +[r4]
             cmp     r4, 0
             beq     SHORT G_M35244_IG36
-                      ;; size=8 bbWeight=2 PerfScore 8.00
+                       ;; size=6 bbWeight=2 PerfScore 6.00
 G_M35244_IG34:        ; bbWeight=1, gcrefRegs=0072 {r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4]
             movw    r3, 0xd1ff
@@ -748,7 +754,7 @@ G_M35244_IG68:        ; bbWeight=0.50, epilog, nogc, extend
             bx      r3     // <unknown method>
             ; gcr arg pop 0
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M35244_IG69:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG69:        ; bbWeight=0, gcVars=000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0 r4]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -776,7 +782,7 @@ RWD00   dd  G_M35244_IG38
            dd  G_M35244_IG38
 
 
-; Total bytes of code 938, prolog size 10, PerfScore 1002.00, instruction count 372, allocated bytes for code 938 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
+; Total bytes of code 940, prolog size 10, PerfScore 1004.00, instruction count 373, allocated bytes for code 940 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -788,7 +794,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 469 (0x001d5) Actual length = 938 (0x0003aa)
+  Function Length   : 470 (0x001d6) Actual length = 940 (0x0003ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+14 (+3.03%) : 1660.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (FullOpts)
@@ -12,22 +12,22 @@
 ;  V01 arg1         [V01,T13] (  4,  3   )     int  ->   r6         single-def
 ;  V02 arg2         [V02,T11] (  3,  4   )     int  ->   r4         single-def
 ;  V03 arg3         [V03,T12] (  5,  3.50)     int  ->   r5         single-def
-;  V04 arg4         [V04,T22] (  1,  0.50)     int  ->  [sp+0x38]  single-def
+;  V04 arg4         [V04,T22] (  1,  0.50)     int  ->  [sp+0x30]  single-def
 ;* V05 loc0         [V05    ] (  0,  0   )     int  ->  zero-ref   
 ;  V06 loc1         [V06,T16] (  3,  1.50)     int  ->   r7        
 ;* V07 loc2         [V07,T23] (  0,  0   )     ref  ->  zero-ref    class-hnd exact EH-live single-def <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V08 loc3         [V08    ] (  6,  2.50)   ubyte  ->  [sp+0x0C]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V09 loc4         [V09,T14] (  3,  4.50)     ref  ->   r6         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
 ;  V10 loc5         [V10,T02] ( 10, 13.25)     int  ->  registers  
-;  V11 loc6         [V11,T07] (  5, 10   )     ref  ->   r5         class-hnd <System.Array>
-;  V12 loc7         [V12,T08] (  4,  8   )     int  ->   r3        
+;  V11 loc6         [V11,T06] (  5, 10   )     ref  ->  registers   class-hnd <System.Array>
+;  V12 loc7         [V12,T08] (  4,  8   )     int  ->   r1        
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct ( 4) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V14 tmp1         [V14,T17] (  3,  1.50)     int  ->   r7        
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V17 tmp4         [V17,T18] (  3,  1.50)     int  ->   r4        
 ;  V18 tmp5         [V18,T00] (  3, 24   )     int  ->   r8         "impSpillLclRefs"
-;  V19 tmp6         [V19,T03] (  3, 12   )     ref  ->   r1         class-hnd "impSpillLclRefs" <<unknown class>>
+;  V19 tmp6         [V19,T03] (  3, 12   )     ref  ->   r3         class-hnd "impSpillLclRefs" <<unknown class>>
 ;  V20 tmp7         [V20,T09] (  2,  8   )     int  ->   r2         "impAppendStmt"
 ;  V21 tmp8         [V21,T15] (  2,  2   )   ubyte  ->   r0         "Inlining Arg"
 ;* V22 tmp9         [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -35,19 +35,19 @@
 ;  V24 tmp11        [V24,T10] (  2,  8   )     int  ->   r3         "Inlining Arg"
 ;  V25 tmp12        [V25,T04] (  3, 12   )     ref  ->   r3         "arr expr"
 ;  V26 tmp13        [V26,T05] (  3, 12   )     int  ->   r2         "index expr"
-;  V27 PSPSym       [V27,T21] (  1,  1   )     int  ->  [sp+0x14]  do-not-enreg[V] "PSPSym"
-;  V28 cse0         [V28,T06] (  4, 10.50)     int  ->   r5         "CSE - aggressive"
+;  V27 PSPSym       [V27,T21] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
+;  V28 cse0         [V28,T07] (  3, 10   )     int  ->   r1         "CSE - aggressive"
 ;  V29 cse1         [V29,T19] (  3,  1.50)     int  ->   r1         "CSE - moderate"
 ;  V30 cse2         [V30,T20] (  3,  1.50)     int  ->   r1         "CSE - moderate"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 20
 
 G_M62513_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r9,r11,lr}
-            sub     sp, 24
-            add     r11, sp, 48
-            add     r4, sp, 56
-            str     r4, [sp+0x14]  // [V27 PSPSym]
+            push    {r4,r5,r6,r7,r8,r11,lr}
+            sub     sp, 20
+            add     r11, sp, 40
+            add     r4, sp, 48
+            str     r4, [sp+0x10]  // [V27 PSPSym]
             str     r0, [sp+0x08]    // [V00 this]
             ; GC ptr vars +{V00}
             mov     r6, r1
@@ -63,8 +63,8 @@ G_M62513_IG02:        ; bbWeight=1, gcVars=00000002 {V00}, gcrefRegs=0001 {r0},
 G_M62513_IG03:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
             ; gcrRegs -[r0]
             ; GC ptr vars -{V00}
-            add     sp, 24
-            pop     {r4,r5,r6,r7,r8,r9,r11,pc}
+            add     sp, 20
+            pop     {r4,r5,r6,r7,r8,r11,pc}
                         ;; size=6 bbWeight=1 PerfScore 2.00
 G_M62513_IG04:        ; bbWeight=0.50, gcVars=00000002 {V00}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r0]
@@ -109,12 +109,12 @@ G_M62513_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x0C]
             cmp     r1, 0
-            beq     G_M62513_IG22
+            beq     G_M62513_IG23
             ldr     r1, [r0+0x10]
             cmp     r1, 0
             bne     SHORT G_M62513_IG12
             str     r6, [r0+0x10]
-            b       SHORT G_M62513_IG22
+            b       SHORT G_M62513_IG23
                         ;; size=20 bbWeight=0.50 PerfScore 4.50
 G_M62513_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
@@ -141,7 +141,7 @@ G_M62513_IG12:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             ; gcrRegs +[r0]
             subs    r1, r6, r1
             cmp     r1, r7
-            ble     SHORT G_M62513_IG22
+            ble     SHORT G_M62513_IG23
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
             ldr     r6, [r1]
@@ -152,7 +152,7 @@ G_M62513_IG12:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             cmp     r5, 2
             bne     SHORT G_M62513_IG17
             mov     r8, 32
-            ldr     r5, [sp+0x38]  // [V04 arg4]
+            ldr     r5, [sp+0x30]    // [V04 arg4]
             cmp     r5, 0x4000
             ble     SHORT G_M62513_IG13
             mov     r8, 33
@@ -172,34 +172,34 @@ G_M62513_IG14:        ; bbWeight=1.75, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}
             b       SHORT G_M62513_IG17
                        ;; size=6 bbWeight=1.75 PerfScore 3.50
 G_M62513_IG15:        ; bbWeight=2, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [r0+0x04]
-            ; gcrRegs +[r1]
-            subs    r3, r5, 1
-            str     r3, [r0+0x0C]
-            ldr     r2, [r1+0x04]
-            cmp     r3, r2
+            ldr     r3, [r0+0x04]
+            ; gcrRegs +[r3]
+            subs    r1, r1, 1
+            str     r1, [r0+0x0C]
+            ldr     r2, [r3+0x04]
+            cmp     r1, r2
             bhs     SHORT G_M62513_IG10
-            adds    r1, 8
-            ; gcrRegs -[r1]
-            ; byrRegs +[r1]
-            lsls    r3, r3, 2
-            ldr     r5, [r1+r3]
-            ; gcrRegs +[r5]
-            cmp     r5, 0
+            adds    r3, 8
+            ; gcrRegs -[r3]
+            ; byrRegs +[r3]
+            lsls    r1, r1, 2
+            ldr     r8, [r3+r1]
+            ; gcrRegs +[r8]
+            cmp     r8, 0
             bne     SHORT G_M62513_IG16
             movw    r0, 0xd1ff
             ; gcrRegs -[r0]
             movt    r0, 0xd1ff
             movw    r1, 0xd1ff
-            ; byrRegs -[r1]
             movt    r1, 0xd1ff
             movw    r3, 0xd1ff
+            ; byrRegs -[r3]
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
-                      ;; size=50 bbWeight=2 PerfScore 38.00
-G_M62513_IG16:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
+                        ;; size=54 bbWeight=2 PerfScore 38.00
+G_M62513_IG16:        ; bbWeight=2, gcrefRegs=0140 {r6 r8}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [sp+0x08] // [V00 this]
             ; gcrRegs +[r0]
             ldr     r3, [r0+0x04]
@@ -217,9 +217,15 @@ G_M62513_IG16:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
             ldrb    r3, [r6+0x5D]
             ; byrRegs -[r3]
             cmp     r3, 0
-            mov     r8, r9
-            beq     SHORT G_M62513_IG17
+            beq     SHORT G_M62513_IG19
             mov     r0, r5
+            ; gcrRegs -[r0]
+            mov     r5, r8
+            ; gcrRegs +[r5]
+            mov     r8, r0
+            ; gcrRegs -[r8]
+            mov     r0, r5
+            ; gcrRegs +[r0]
             ldr     r3, [r5]
             ldr     r3, [r3+0x2C]
             ldr     r3, [r3+0x0C]
@@ -241,29 +247,35 @@ G_M62513_IG16:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
             blx     lr     // <unknown method>
             ; gcrRegs -[r0 r5]
             ; gcr arg pop 0
-                      ;; size=70 bbWeight=2 PerfScore 62.00
-G_M62513_IG17:        ; bbWeight=4, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [sp+0x08]    // [V00 this]
             ; gcrRegs +[r0]
-            ldr     r5, [r0+0x0C]
-            cmp     r5, 0
-            ble     SHORT G_M62513_IG19
-            add     r1, r8, -1
-            mov     r9, r1
+                       ;; size=76 bbWeight=2 PerfScore 68.00
+G_M62513_IG17:        ; bbWeight=4, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}, byref, isz
+            ldr     r1, [r0+0x0C]
+            cmp     r1, 0
+            ble     SHORT G_M62513_IG20
+            add     r3, r8, -1
+            mov     r5, r3
             cmp     r8, 0
             bgt     SHORT G_M62513_IG15
-                      ;; size=20 bbWeight=4 PerfScore 32.00
+                     ;; size=18 bbWeight=4 PerfScore 28.00
 G_M62513_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r6]
-            b       SHORT G_M62513_IG20
-                       ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M62513_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            cmp     r5, 0
-            bgt     SHORT G_M62513_IG20
-            movs    r4, 0
             b       SHORT G_M62513_IG21
-                     ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M62513_IG20:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+                     ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M62513_IG19:        ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0] +[r6]
+            mov     r8, r5
+            ldr     r0, [sp+0x08]  // [V00 this]
+            ; gcrRegs +[r0]
+            b       SHORT G_M62513_IG17
+                       ;; size=6 bbWeight=1 PerfScore 3.00
+G_M62513_IG20:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r6]
+            movs    r4, 0
+            b       SHORT G_M62513_IG22
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M62513_IG21:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
             ldr     r4, [r0+0x10]
             mov     r0, r7
             ; gcrRegs -[r0]
@@ -276,10 +288,10 @@ G_M62513_IG20:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             ldr     r0, [sp+0x08]  // [V00 this]
             ; gcrRegs +[r0]
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M62513_IG21:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+G_M62513_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
             str     r4, [r0+0x10]
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M62513_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+G_M62513_IG23:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ldrb    r3, [sp+0x0C]   // [V08 loc3]
             cmp     r3, 0
             beq     G_M62513_IG03
@@ -291,17 +303,18 @@ G_M62513_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             ; gcr arg pop 0
             b       SHORT G_M62513_IG03
                        ;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M62513_IG23:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M62513_IG24:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
             ; GC ptr vars +{V00 V01}
-            push    {r2,r3,r4,r5,r6,r7,r8,r9,r11,lr}
+            push    {r4,r5,r6,r7,r8,r11,lr}
+            sub     sp, 12
             add     r3, r11, 8
-            str     r3, [sp+0x04]
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M62513_IG24:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldrb    r0, [r11-0x24] // [V08 loc3]
+            str     r3, [sp+0x08]
+                       ;; size=12 bbWeight=0 PerfScore 0.00
...
  
  
benchmarks.run_pgo.linux.arm.checked.mch
-6 (-1.94%) : 7591.dasm - System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
@@ -8,10 +8,10 @@
 ; 1 inlinees with PGO data; 12 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T18] (  3,  3   )     int  ->   r4         single-def
-;  V01 arg1         [V01,T19] (  3,  3   )     int  ->   r5         single-def
+;  V00 arg0         [V00,T19] (  3,  3   )     int  ->   r4         single-def
+;  V01 arg1         [V01,T20] (  3,  3   )     int  ->   r5         single-def
 ;  V02 loc0         [V02    ] (  4, 17   )  struct ( 8) [sp+0x08]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[ushort]>
-;  V03 loc1         [V03,T20] (  4, 11   )     int  ->   r5        
+;  V03 loc1         [V03,T21] (  4, 11   )     int  ->   r5        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V05 loc3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
@@ -19,14 +19,14 @@
 ;  V08 tmp1         [V08,T10] (  7, 84   )     ref  ->   r4         class-hnd single-def "non-inline candidate call" <<unknown class>>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V10 tmp3         [V10    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V11 tmp4         [V11,T28] (  3,  0   )     ref  ->   r0         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-;  V12 tmp5         [V12,T22] (  2,  4   )     ref  ->   r4         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V11 tmp4         [V11,T29] (  3,  0   )     ref  ->   r0         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V12 tmp5         [V12,T23] (  2,  4   )     ref  ->   r4         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V13 tmp6         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V14 tmp7         [V14    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V15 tmp8         [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V16 tmp9         [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V17 tmp10        [V17,T08] (  2, 16   )     int  ->   lr         "Inlining Arg"
-;  V18 tmp11        [V18,T07] (  2, 16   )   byref  ->   r3         "Inlining Arg"
+;  V17 tmp10        [V17,T07] (  2, 16   )     int  ->   lr         "Inlining Arg"
+;  V18 tmp11        [V18,T06] (  2, 16   )   byref  ->   r3         "Inlining Arg"
 ;* V19 tmp12        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp13        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V21 tmp14        [V21,T12] (  2,  8   )   ubyte  ->   r0         "Inline return value spill temp"
@@ -40,30 +40,30 @@
 ;* V29 tmp22        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V30 tmp23        [V30    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V31 tmp24        [V31    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V32 tmp25        [V32,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V32 tmp25        [V32,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V33 tmp26        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V34 tmp27        [V34,T23] (  3, 17   )     ref  ->   r0         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V35 tmp28        [V35,T21] (  4, 18   )     int  ->   r3         "Inline stloc first use temp"
-;  V36 tmp29        [V36,T17] (  3, 20   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V34 tmp27        [V34,T24] (  3, 17   )     ref  ->   r0         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V35 tmp28        [V35,T22] (  4, 18   )     int  ->   r3         "Inline stloc first use temp"
+;  V36 tmp29        [V36,T18] (  3, 20   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V37 tmp30        [V37    ] (  3,  3   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] addr-exposed "Reverse Pinvoke FrameVar"
 ;  V38 tmp31        [V38    ] (  3, 13   )   byref  ->  [sp+0x08]  do-not-enreg[X] addr-exposed "field V02._reference (fldOffset=0x0)" P-DEP
 ;  V39 tmp32        [V39    ] (  3, 13   )     int  ->  [sp+0x0C]  do-not-enreg[X] addr-exposed "field V02._length (fldOffset=0x4)" P-DEP
-;  V40 tmp33        [V40,T02] (  4, 25   )     ref  ->   r4         single-def "field V04._list (fldOffset=0x0)" P-INDEP
-;  V41 tmp34        [V41,T03] (  4, 20   )     ref  ->   r2         "field V04._current (fldOffset=0x4)" P-INDEP
+;  V40 tmp33        [V40,T03] (  4, 25   )     ref  ->   r4         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V41 tmp34        [V41,T02] (  4, 20   )     ref  ->   r2         "field V04._current (fldOffset=0x4)" P-INDEP
 ;  V42 tmp35        [V42,T00] (  6, 41   )     int  ->   r7         "field V04._index (fldOffset=0x8)" P-INDEP
-;  V43 tmp36        [V43,T05] (  3, 17   )     int  ->   r6         "field V04._version (fldOffset=0xc)" P-INDEP
-;  V44 tmp37        [V44,T13] (  2,  8   )   byref  ->   r0         "field V09._reference (fldOffset=0x0)" P-INDEP
-;  V45 tmp38        [V45,T15] (  2,  8   )     int  ->   r1         "field V09._length (fldOffset=0x4)" P-INDEP
+;  V43 tmp36        [V43,T13] (  2,  9   )     int  ->   r6         "field V04._version (fldOffset=0xc)" P-INDEP
+;  V44 tmp37        [V44,T14] (  2,  8   )   byref  ->   r0         "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V45 tmp38        [V45,T16] (  2,  8   )     int  ->   r1         "field V09._length (fldOffset=0x4)" P-INDEP
 ;* V46 tmp39        [V46    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V47 tmp40        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x4)" P-INDEP
-;  V48 tmp41        [V48,T24] (  3,  3   )     ref  ->   r4         single-def "field V13._list (fldOffset=0x0)" P-INDEP
+;  V48 tmp41        [V48,T25] (  3,  3   )     ref  ->   r4         single-def "field V13._list (fldOffset=0x0)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V13._current (fldOffset=0x4)" P-INDEP
-;* V50 tmp43        [V50,T26] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
-;  V51 tmp44        [V51,T25] (  2,  2   )     int  ->   r6         "field V13._version (fldOffset=0xc)" P-INDEP
+;* V50 tmp43        [V50,T27] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
+;  V51 tmp44        [V51,T26] (  2,  2   )     int  ->   r6         "field V13._version (fldOffset=0xc)" P-INDEP
 ;  V52 tmp45        [V52,T11] (  3, 12   )   byref  ->   r3         "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V53 tmp46        [V53,T06] (  4, 16   )     int  ->   lr         "field V14._length (fldOffset=0x4)" P-INDEP
-;  V54 tmp47        [V54,T14] (  2,  8   )   byref  ->   r3         "field V15._reference (fldOffset=0x0)" P-INDEP
-;  V55 tmp48        [V55,T16] (  2,  8   )     int  ->   lr         "field V15._length (fldOffset=0x4)" P-INDEP
+;  V53 tmp46        [V53,T05] (  4, 16   )     int  ->   lr         "field V14._length (fldOffset=0x4)" P-INDEP
+;  V54 tmp47        [V54,T15] (  2,  8   )   byref  ->   r3         "field V15._reference (fldOffset=0x0)" P-INDEP
+;  V55 tmp48        [V55,T17] (  2,  8   )     int  ->   lr         "field V15._length (fldOffset=0x4)" P-INDEP
 ;* V56 tmp49        [V56    ] (  0,  0   )   byref  ->  zero-ref    "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V57 tmp50        [V57    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x4)" P-INDEP
 ;* V58 tmp51        [V58    ] (  0,  0   )   byref  ->  zero-ref    "field V22._reference (fldOffset=0x0)" P-INDEP
@@ -79,19 +79,20 @@
 ;* V68 tmp61        [V68    ] (  0,  0   )   byref  ->  zero-ref    "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V69 tmp62        [V69    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x4)" P-INDEP
 ;  V70 tmp63        [V70,T01] (  3, 48   )     ref  ->   r2         "arr expr"
-;  V71 PSPSym       [V71,T27] (  1,  1   )     int  ->  [sp+0x14]  do-not-enreg[V] "PSPSym"
-;  V72 cse0         [V72,T04] (  3, 24   )     int  ->   r8         "CSE - aggressive"
+;  V71 PSPSym       [V71,T28] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
+;  V72 cse0         [V72,T09] (  2, 16   )     int  ->   r2         "CSE - aggressive"
+;  V73 cse1         [V73,T04] (  2, 16   )     int  ->   r2         "CSE - aggressive"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 20
 
 G_M58652_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r10,r11,lr}
-            sub     sp, 24
-            add     r11, sp, 48
+            push    {r4,r5,r6,r7,r10,r11,lr}
+            sub     sp, 20
+            add     r11, sp, 40
             movs    r2, 0
             str     r2, [sp+0x08]
-            add     r2, sp, 56
-            str     r2, [sp+0x14]
+            add     r2, sp, 48
+            str     r2, [sp+0x10]
             mov     r4, r0
             mov     r5, r1
                        ;; size=22 bbWeight=1 PerfScore 9.00
@@ -112,7 +113,7 @@ G_M58652_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcr arg pop 0
             ldrb    r2, [r5+0x04]
             cmp     r2, 0
-            beq     SHORT G_M58652_IG11
+            beq     SHORT G_M58652_IG10
             ldr     r4, [r5]
             ; gcrRegs +[r4]
             ldr     r6, [r4+0x0C]
@@ -150,15 +151,15 @@ G_M58652_IG06:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0009 {r0 r3},
             ; byrRegs -[r0-r1]
             ; gcr arg pop 0
             cmp     r0, 0
-            bne     SHORT G_M58652_IG14
+            bne     SHORT G_M58652_IG13
                         ;; size=26 bbWeight=4 PerfScore 40.00
 G_M58652_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r8, [r4+0x0C]
-            cmp     r6, r8
-            bne     SHORT G_M58652_IG10
+            ldr     r2, [r4+0x0C]
+            cmp     r6, r2
+            bne     SHORT G_M58652_IG09
             ldr     r2, [r4+0x08]
             cmp     r7, r2
-            bhs     SHORT G_M58652_IG11
+            bhs     SHORT G_M58652_IG10
             ldr     r2, [r4+0x04]
             ; gcrRegs +[r2]
             ldr     r0, [r2+0x04]
@@ -173,7 +174,7 @@ G_M58652_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ; byrRegs -[r2]
             adds    r7, r7, 1
             b       SHORT G_M58652_IG04
-                      ;; size=32 bbWeight=8 PerfScore 120.00
+                        ;; size=30 bbWeight=8 PerfScore 120.00
 G_M58652_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r2 r4]
             movw    r3, 0xd1ff
@@ -190,10 +191,6 @@ G_M58652_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
 G_M58652_IG10:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            cmp     r6, r8
-            bne     SHORT G_M58652_IG09
-                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M58652_IG11:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ldr     r4, [r5]
             ; gcrRegs +[r4]
             add     r0, sp, 8
@@ -214,9 +211,9 @@ G_M58652_IG11:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldr     r3, [r4+0x08]
             ldr     lr, [r0+0x04]
             cmp     lr, r3
-            bls     SHORT G_M58652_IG13
+            bls     SHORT G_M58652_IG12
                        ;; size=36 bbWeight=8 PerfScore 120.00
-G_M58652_IG12:        ; bbWeight=1, gcrefRegs=0013 {r0 r1 r4}, byrefRegs=0000 {}, byref, isz
+G_M58652_IG11:        ; bbWeight=1, gcrefRegs=0013 {r0 r1 r4}, byrefRegs=0000 {}, byref, isz
             add     lr, r3, 1
             str     lr, [r4+0x08]
             adds    r0, 8
@@ -229,9 +226,9 @@ G_M58652_IG12:        ; bbWeight=1, gcrefRegs=0013 {r0 r1 r4}, byrefRegs=0000 {}
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1 r4]
             ; byrRegs -[r0]
-            b       SHORT G_M58652_IG14
+            b       SHORT G_M58652_IG13
                       ;; size=26 bbWeight=1 PerfScore 9.00
-G_M58652_IG13:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref
+G_M58652_IG12:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r1 r4]
             mov     r0, r4
             ; gcrRegs +[r0]
@@ -242,24 +239,24 @@ G_M58652_IG13:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0-r1 r4]
             ; gcr arg pop 0
                        ;; size=14 bbWeight=1 PerfScore 5.00
-G_M58652_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M58652_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             add     r0, sp, 0
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_JIT_REVERSE_PINVOKE_EXIT
             ; gcr arg pop 0
                        ;; size=12 bbWeight=1 PerfScore 4.00
-G_M58652_IG15:        ; bbWeight=1, epilog, nogc, extend
-            add     sp, 24
-            pop     {r4,r5,r6,r7,r8,r10,r11,pc}
+G_M58652_IG14:        ; bbWeight=1, epilog, nogc, extend
+            add     sp, 20
+            pop     {r4,r5,r6,r7,r10,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M58652_IG16:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M58652_IG15:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             ; gcrRegs +[r0]
-            push    {r2,r3,r4,r5,r6,r7,r8,r10,r11,lr}
+            push    {r3,r4,r5,r6,r7,r10,r11,lr}
             add     r3, r11, 8
-            str     r3, [sp+0x04]
+            str     r3, [sp]
                      ;; size=10 bbWeight=0 PerfScore 0.00
-G_M58652_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
+G_M58652_IG16:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
             ldr     r3, [r0]
             ldr     r3, [r3+0x2C]
             ldr     r3, [r3+0x04]
@@ -271,14 +268,14 @@ G_M58652_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byr
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            movw    r0, LOW ADDRESS G_M58652_IG14
-            movt    r0, HIGH ADDRESS G_M58652_IG14
+            movw    r0, LOW ADDRESS G_M58652_IG13
+            movt    r0, HIGH ADDRESS G_M58652_IG13
                      ;; size=28 bbWeight=0 PerfScore 0.00
-G_M58652_IG18:        ; bbWeight=0, funclet epilog, nogc, extend
-            pop     {r2,r3,r4,r5,r6,r7,r8,r10,r11,pc}
+G_M58652_IG17:        ; bbWeight=0, funclet epilog, nogc, extend
+            pop     {r3,r4,r5,r6,r7,r10,r11,pc}
                         ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 310, prolog size 22, PerfScore 378.00, instruction count 119, allocated bytes for code 310 (MethodHash=943d1ae3) for method System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
+; Total bytes of code 304, prolog size 22, PerfScore 362.00, instruction count 117, allocated bytes for code 304 (MethodHash=943d1ae3) for method System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -290,12 +287,12 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 134 (0x00086) Actual length = 268 (0x00010c)
+  Function Length   : 131 (0x00083) Actual length = 262 (0x000106)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    06          add sp, sp, #24                     ; opsize 16
-    AD F0       pop {r4,r5,r6,r7,r8,r10,r11,lr}     ; opsize 32
+    05          add sp, sp, #20                     ; opsize 16
+    AC F0       pop {r4,r5,r6,r7,r10,r11,lr}        ; opsize 32
     FF          end
 
...
  
-6 (-0.94%) : 17145.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (Tier0-FullOpts)
@@ -9,7 +9,7 @@
 ; Final local variable assignments
 ;
 ;  V00 loc0         [V00,T11] (  8, 12   )     ref  ->   r4         class-hnd exact single-def <<unknown class>>
-;  V01 loc1         [V01,T30] (  4,  1.50)     ref  ->  [sp+0x00]  class-hnd EH-live spill-single-def <System.Object>
+;  V01 loc1         [V01,T32] (  4,  1.50)     ref  ->  [sp+0x00]  class-hnd EH-live spill-single-def <System.Object>
 ;  V02 loc2         [V02    ] (  6,  5   )   ubyte  ->  [sp+0x04]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V03 loc3         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.WeakReference`1[System.Diagnostics.Tracing.EventSource]]>
 ;* V04 loc4         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.WeakReference`1[System.Diagnostics.Tracing.EventSource]>
@@ -17,54 +17,56 @@
 ;* V06 loc6         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.EventSource]>
 ;* V07 loc7         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Diagnostics.Tracing.EventSource>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T21] (  3,  6   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V10 tmp2         [V10,T25] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
+;  V09 tmp1         [V09,T23] (  3,  6   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V10 tmp2         [V10,T27] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
 ;* V11 tmp3         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V12 tmp4         [V12,T24] (  2,  4   )     ref  ->   r5         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V12 tmp4         [V12,T26] (  2,  4   )     ref  ->   r5         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V13 tmp5         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.WeakReference`1[System.Diagnostics.Tracing.EventSource]]>
 ;* V14 tmp6         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V15 tmp7         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
-;  V16 tmp8         [V16,T15] (  5,  8   )     ref  ->   r2         class-hnd "Inline return value spill temp" <System.Diagnostics.Tracing.EventSource>
-;  V17 tmp9         [V17,T08] (  5, 14   )     int  ->   r0         "Inline stloc first use temp"
+;  V16 tmp8         [V16,T17] (  5,  8   )     ref  ->   r2         class-hnd "Inline return value spill temp" <System.Diagnostics.Tracing.EventSource>
+;  V17 tmp9         [V17,T09] (  5, 14   )     int  ->   r0         "Inline stloc first use temp"
 ;* V18 tmp10        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Diagnostics.Tracing.EventSource>
-;  V19 tmp11        [V19,T22] (  3,  6   )     ref  ->   r2         class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
+;  V19 tmp11        [V19,T24] (  3,  6   )     ref  ->   r2         class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
 ;* V20 tmp12        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Diagnostics.Tracing.EventSource>
 ;* V21 tmp13        [V21    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Diagnostics.Tracing.EventSource>
 ;  V22 tmp14        [V22,T12] (  3, 12   )     ref  ->   r9         class-hnd "updating class info" <System.ComAwareWeakReference>
 ;* V23 tmp15        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp16        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V25 tmp17        [V25,T17] (  2,  8   )     ref  ->   r0         class-hnd "dup spill" <System.Object>
-;  V26 tmp18        [V26,T16] (  4,  8   )     ref  ->   r0        
-;  V27 tmp19        [V27,T23] (  3,  5.20)     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V28 tmp20        [V28,T20] (  4,  6.40)     int  ->   r1         "Inline stloc first use temp"
+;  V25 tmp17        [V25,T19] (  2,  8   )     ref  ->   r0         class-hnd "dup spill" <System.Object>
+;  V26 tmp18        [V26,T18] (  4,  8   )     ref  ->   r0        
+;  V27 tmp19        [V27,T25] (  3,  5.20)     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V28 tmp20        [V28,T22] (  4,  6.40)     int  ->   r1         "Inline stloc first use temp"
 ;* V29 tmp21        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Diagnostics.Tracing.EventSource>
-;* V30 tmp22        [V30,T18] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V30 tmp22        [V30,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V31 tmp23        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;* V32 tmp24        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp25        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.EventSource]>
-;* V34 tmp26        [V34,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V34 tmp26        [V34,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V35 tmp27        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V36 tmp28        [V36,T04] (  4, 17   )     ref  ->   r5         single-def "field V03._list (fldOffset=0x0)" P-INDEP
-;  V37 tmp29        [V37,T09] (  3, 10   )     ref  ->   r8         "field V03._current (fldOffset=0x4)" P-INDEP
+;  V37 tmp29        [V37,T10] (  3, 10   )     ref  ->   r8         "field V03._current (fldOffset=0x4)" P-INDEP
 ;  V38 tmp30        [V38,T00] (  6, 21   )     int  ->   r7         "field V03._index (fldOffset=0x8)" P-INDEP
-;  V39 tmp31        [V39,T10] (  3, 13   )     int  ->   r6         "field V03._version (fldOffset=0xc)" P-INDEP
-;  V40 tmp32        [V40,T06] (  4, 17   )     ref  ->   r4         single-def "field V06._list (fldOffset=0x0)" P-INDEP
-;  V41 tmp33        [V41,T07] (  4, 10   )     ref  ->   r7         "field V06._current (fldOffset=0x4)" P-INDEP
+;  V39 tmp31        [V39,T15] (  2,  9   )     int  ->   r6         "field V03._version (fldOffset=0xc)" P-INDEP
+;  V40 tmp32        [V40,T05] (  4, 17   )     ref  ->   r4         single-def "field V06._list (fldOffset=0x0)" P-INDEP
+;  V41 tmp33        [V41,T08] (  4, 10   )     ref  ->   r7         "field V06._current (fldOffset=0x4)" P-INDEP
 ;  V42 tmp34        [V42,T01] (  6, 21   )     int  ->   r6         "field V06._index (fldOffset=0x8)" P-INDEP
-;  V43 tmp35        [V43,T14] (  2,  9   )     int  ->   r5         "field V06._version (fldOffset=0xc)" P-INDEP
-;  V44 tmp36        [V44,T26] (  3,  3   )     ref  ->   r5         single-def "field V13._list (fldOffset=0x0)" P-INDEP
+;  V43 tmp35        [V43,T16] (  2,  9   )     int  ->   r5         "field V06._version (fldOffset=0xc)" P-INDEP
+;  V44 tmp36        [V44,T28] (  3,  3   )     ref  ->   r5         single-def "field V13._list (fldOffset=0x0)" P-INDEP
 ;* V45 tmp37        [V45    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V13._current (fldOffset=0x4)" P-INDEP
-;* V46 tmp38        [V46,T31] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
-;  V47 tmp39        [V47,T28] (  2,  2   )     int  ->   r6         "field V13._version (fldOffset=0xc)" P-INDEP
-;  V48 tmp40        [V48,T27] (  3,  3   )     ref  ->   r4         single-def "field V33._list (fldOffset=0x0)" P-INDEP
+;* V46 tmp38        [V46,T33] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
+;  V47 tmp39        [V47,T30] (  2,  2   )     int  ->   r6         "field V13._version (fldOffset=0xc)" P-INDEP
+;  V48 tmp40        [V48,T29] (  3,  3   )     ref  ->   r4         single-def "field V33._list (fldOffset=0x0)" P-INDEP
 ;* V49 tmp41        [V49    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V33._current (fldOffset=0x4)" P-INDEP
-;* V50 tmp42        [V50,T32] (  0,  0   )     int  ->  zero-ref    "field V33._index (fldOffset=0x8)" P-INDEP
-;  V51 tmp43        [V51,T29] (  2,  2   )     int  ->   r5         "field V33._version (fldOffset=0xc)" P-INDEP
+;* V50 tmp42        [V50,T34] (  0,  0   )     int  ->  zero-ref    "field V33._index (fldOffset=0x8)" P-INDEP
+;  V51 tmp43        [V51,T31] (  2,  2   )     int  ->   r5         "field V33._version (fldOffset=0xc)" P-INDEP
 ;  V52 tmp44        [V52,T02] (  3, 24   )     ref  ->   r0         "arr expr"
 ;  V53 tmp45        [V53,T03] (  3, 24   )     ref  ->   r0         "arr expr"
-;  V54 PSPSym       [V54,T33] (  1,  1   )     int  ->  [sp+0x08]  do-not-enreg[V] "PSPSym"
+;  V54 PSPSym       [V54,T35] (  1,  1   )     int  ->  [sp+0x08]  do-not-enreg[V] "PSPSym"
 ;  V55 cse0         [V55,T13] (  2,  8   )     int  ->   r0         "CSE - moderate"
-;  V56 cse1         [V56,T05] (  3, 20   )     int  ->   r8         "CSE - aggressive"
+;  V56 cse1         [V56,T14] (  2,  8   )     int  ->   r0         "CSE - moderate"
+;  V57 cse2         [V57,T06] (  2, 16   )     int  ->   r0         "CSE - aggressive"
+;  V58 cse3         [V58,T07] (  2, 16   )     int  ->   r0         "CSE - aggressive"
 ;
 ; Lcl frame size = 12
 
@@ -115,7 +117,7 @@ G_M64982_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movs    r1, 0
             str     r1, [sp+0x04]  // [V02 loc2]
                        ;; size=80 bbWeight=1 PerfScore 26.00
-G_M64982_IG03:        ; bbWeight=1, gcVars=0000000040000000 {V01}, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M64982_IG03:        ; bbWeight=1, gcVars=0000000100000000 {V01}, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x04]  // [V02 loc2]
             cmp     r1, 0
             bne     SHORT G_M64982_IG13
@@ -147,19 +149,19 @@ G_M64982_IG05:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             movs    r7, 0
                        ;; size=14 bbWeight=1 PerfScore 5.00
 G_M64982_IG06:        ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ldr     r8, [r5+0x0C]
-            cmp     r6, r8
-            bne     SHORT G_M64982_IG19
+            ldr     r0, [r5+0x0C]
+            cmp     r6, r0
+            bne     G_M64982_IG20
                       ;; size=8 bbWeight=8 PerfScore 24.00
 G_M64982_IG07:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r5+0x08]
             cmp     r7, r0
-            bhs     G_M64982_IG22
+            bhs     G_M64982_IG21
             ldr     r0, [r5+0x04]
             ; gcrRegs +[r0]
             ldr     r3, [r0+0x04]
             cmp     r7, r3
-            bhs     SHORT G_M64982_IG20
+            bhs     SHORT G_M64982_IG19
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -300,20 +302,14 @@ G_M64982_IG18:        ; bbWeight=0.80, gcrefRegs=0034 {r2 r4 r5}, byrefRegs=0000
             ; gcr arg pop 0
             b       SHORT G_M64982_IG06
                        ;; size=18 bbWeight=0.80 PerfScore 5.60
-G_M64982_IG19:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r5]
-            cmp     r6, r8
-            bne     SHORT G_M64982_IG21
-            b       SHORT G_M64982_IG22
-                       ;; size=6 bbWeight=4 PerfScore 12.00
-G_M64982_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r4]
+G_M64982_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r4-r5]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M64982_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M64982_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -321,13 +317,13 @@ G_M64982_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M64982_IG22:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M64982_IG21:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4]
             ldrb    r0, [sp+0x04]  // [V02 loc2]
             cmp     r0, 0
-            beq     SHORT G_M64982_IG24
+            beq     SHORT G_M64982_IG23
                         ;; size=8 bbWeight=1 PerfScore 3.00
-G_M64982_IG23:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M64982_IG22:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ldr     r0, [sp] // [V01 loc1]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
@@ -337,7 +333,7 @@ G_M64982_IG23:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M64982_IG24:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M64982_IG23:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -351,14 +347,14 @@ G_M64982_IG24:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            bne     SHORT G_M64982_IG31
+            bne     SHORT G_M64982_IG30
                         ;; size=28 bbWeight=1 PerfScore 10.00
-G_M64982_IG25:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M64982_IG24:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r5, [r4+0x0C]
             movs    r6, 0
-            b       SHORT G_M64982_IG27
+            b       SHORT G_M64982_IG26
                         ;; size=6 bbWeight=1 PerfScore 3.00
-G_M64982_IG26:        ; bbWeight=2, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref
+G_M64982_IG25:        ; bbWeight=2, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r7]
             mov     r0, r7
             ; gcrRegs +[r0]
@@ -377,20 +373,20 @@ G_M64982_IG26:        ; bbWeight=2, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0 r7]
             ; gcr arg pop 0
                        ;; size=24 bbWeight=2 PerfScore 20.00
-G_M64982_IG27:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M64982_IG26:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x0C]
             cmp     r5, r0
-            bne     SHORT G_M64982_IG32
+            bne     SHORT G_M64982_IG31
                        ;; size=6 bbWeight=8 PerfScore 24.00
-G_M64982_IG28:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M64982_IG27:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x08]
             cmp     r6, r0
-            bhs     SHORT G_M64982_IG29
+            bhs     SHORT G_M64982_IG28
             ldr     r0, [r4+0x04]
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x04]
             cmp     r6, r1
-            bhs     SHORT G_M64982_IG30
+            bhs     SHORT G_M64982_IG29
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -398,21 +394,21 @@ G_M64982_IG28:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ldr     r7, [r0+r1]
             ; gcrRegs +[r7]
             adds    r6, r6, 1
-            b       SHORT G_M64982_IG26
+            b       SHORT G_M64982_IG25
                         ;; size=24 bbWeight=4 PerfScore 48.00
-G_M64982_IG29:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M64982_IG28:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r4 r7]
             ; byrRegs -[r0]
             add     sp, 12
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=4 PerfScore 8.00
-G_M64982_IG30:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M64982_IG29:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M64982_IG31:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M64982_IG30:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -423,9 +419,9 @@ G_M64982_IG31:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ldr     r3, [r3]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
...
  
-6 (-0.79%) : 40766.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
@@ -8,28 +8,28 @@
 ; 9 inlinees with PGO data; 33 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T21] (  8,  7   )     ref  ->  [sp+0x08]  class-hnd EH-live single-def <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
-;  V01 arg1         [V01,T19] (  3, 10   )     int  ->   r4         single-def
+;  V00 arg0         [V00,T22] (  8,  7   )     ref  ->  [sp+0x08]  class-hnd EH-live single-def <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
+;  V01 arg1         [V01,T20] (  3, 10   )     int  ->   r4         single-def
 ;  V02 arg2         [V02    ] (  4, 11   )  struct ( 4) [sp+0x3C]  single-def <System.Threading.CancellationToken>
-;  V03 loc0         [V03,T20] (  4, 11   )   ubyte  ->  [sp+0x0C]  do-not-enreg[Z] EH-live
-;  V04 loc1         [V04,T06] (  8, 32   )     ref  ->  [sp+0x04]  class-hnd exact EH-live spill-single-def <System.Threading.Tasks.Task+SetOnCountdownMres>
+;  V03 loc0         [V03,T21] (  4, 11   )   ubyte  ->  [sp+0x0C]  do-not-enreg[Z] EH-live
+;  V04 loc1         [V04,T05] (  8, 32   )     ref  ->  [sp+0x04]  class-hnd exact EH-live spill-single-def <System.Threading.Tasks.Task+SetOnCountdownMres>
 ;* V05 loc2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V06 loc3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Threading.Tasks.Task>
 ;* V07 loc4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V08 loc5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Threading.Tasks.Task>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T18] (  6, 12   )     ref  ->   r5         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+SetOnCountdownMres>
+;  V10 tmp1         [V10,T19] (  6, 12   )     ref  ->   r5         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+SetOnCountdownMres>
 ;* V11 tmp2         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp3         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp4         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V14 tmp5         [V14,T24] (  3,  6   )     int  ->   r6         "Inlining Arg"
+;  V14 tmp5         [V14,T26] (  3,  6   )     int  ->   r6         "Inlining Arg"
 ;* V15 tmp6         [V15    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V17 tmp8         [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;* V18 tmp9         [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V19 tmp10        [V19    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
-;  V21 tmp12        [V21,T23] (  5,  8   )     int  ->   r7         "Inlining Arg"
+;  V21 tmp12        [V21,T25] (  5,  8   )     int  ->   r7         "Inlining Arg"
 ;* V22 tmp13        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp14        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp15        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -37,41 +37,43 @@
 ;* V26 tmp17        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp18        [V27    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V28 tmp19        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
-;  V29 tmp20        [V29,T14] (  2,  8   )   ubyte  ->   r0         "Inline return value spill temp"
+;  V29 tmp20        [V29,T13] (  2,  8   )   ubyte  ->   r0         "Inline return value spill temp"
 ;* V30 tmp21        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V31 tmp22        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V32 tmp23        [V32    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V33 tmp24        [V33,T09] (  3, 24   )   byref  ->   r1         "Inlining Arg"
 ;  V34 tmp25        [V34,T10] (  3, 24   )   byref  ->   r1         "Inlining Arg"
 ;* V35 tmp26        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V36 tmp27        [V36,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V36 tmp27        [V36,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V37 tmp28        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
 ;* V38 tmp29        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V39 tmp30        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V40 tmp31        [V40,T16] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V40 tmp31        [V40,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V41 tmp32        [V41    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
-;  V42 tmp33        [V42,T17] (  4, 11   )     ref  ->  [sp+0x3C]  do-not-enreg[] single-def "field V02._source (fldOffset=0x0)" P-DEP
-;  V43 tmp34        [V43,T05] (  4, 25   )     ref  ->   r8         single-def "field V05._list (fldOffset=0x0)" P-INDEP
+;  V42 tmp33        [V42,T18] (  4, 11   )     ref  ->  [sp+0x3C]  do-not-enreg[] single-def "field V02._source (fldOffset=0x0)" P-DEP
+;  V43 tmp34        [V43,T06] (  4, 25   )     ref  ->   r8         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V44 tmp35        [V44,T04] (  6, 28   )     ref  ->   r7         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V45 tmp36        [V45,T00] (  6, 41   )     int  ->   r6         "field V05._index (fldOffset=0x8)" P-INDEP
-;  V46 tmp37        [V46,T13] (  3, 17   )     int  ->   r9         "field V05._version (fldOffset=0xc)" P-INDEP
-;  V47 tmp38        [V47,T07] (  4, 25   )     ref  ->   r6         single-def "field V07._list (fldOffset=0x0)" P-INDEP
+;  V46 tmp37        [V46,T23] (  2,  9   )     int  ->   r9         "field V05._version (fldOffset=0xc)" P-INDEP
+;  V47 tmp38        [V47,T07] (  4, 25   )     ref  ->   r7         single-def "field V07._list (fldOffset=0x0)" P-INDEP
 ;  V48 tmp39        [V48,T08] (  3, 16   )     ref  ->   r0         "field V07._current (fldOffset=0x4)" P-INDEP
-;  V49 tmp40        [V49,T01] (  6, 41   )     int  ->   r9         "field V07._index (fldOffset=0x8)" P-INDEP
-;  V50 tmp41        [V50,T22] (  2,  9   )     int  ->   r8         "field V07._version (fldOffset=0xc)" P-INDEP
-;  V51 tmp42        [V51,T25] (  3,  3   )     ref  ->   r8         single-def "field V28._list (fldOffset=0x0)" P-INDEP
+;  V49 tmp40        [V49,T01] (  6, 41   )     int  ->   r8         "field V07._index (fldOffset=0x8)" P-INDEP
+;  V50 tmp41        [V50,T24] (  2,  9   )     int  ->   r6         "field V07._version (fldOffset=0xc)" P-INDEP
+;  V51 tmp42        [V51,T27] (  3,  3   )     ref  ->   r8         single-def "field V28._list (fldOffset=0x0)" P-INDEP
 ;* V52 tmp43        [V52    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V28._current (fldOffset=0x4)" P-INDEP
-;* V53 tmp44        [V53,T29] (  0,  0   )     int  ->  zero-ref    "field V28._index (fldOffset=0x8)" P-INDEP
-;  V54 tmp45        [V54,T27] (  2,  2   )     int  ->   r9         "field V28._version (fldOffset=0xc)" P-INDEP
-;  V55 tmp46        [V55,T26] (  3,  3   )     ref  ->   r6         single-def "field V38._list (fldOffset=0x0)" P-INDEP
+;* V53 tmp44        [V53,T31] (  0,  0   )     int  ->  zero-ref    "field V28._index (fldOffset=0x8)" P-INDEP
+;  V54 tmp45        [V54,T29] (  2,  2   )     int  ->   r9         "field V28._version (fldOffset=0xc)" P-INDEP
+;  V55 tmp46        [V55,T28] (  3,  3   )     ref  ->   r7         single-def "field V38._list (fldOffset=0x0)" P-INDEP
 ;* V56 tmp47        [V56    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V38._current (fldOffset=0x4)" P-INDEP
-;* V57 tmp48        [V57,T30] (  0,  0   )     int  ->  zero-ref    "field V38._index (fldOffset=0x8)" P-INDEP
-;  V58 tmp49        [V58,T28] (  2,  2   )     int  ->   r8         "field V38._version (fldOffset=0xc)" P-INDEP
+;* V57 tmp48        [V57,T32] (  0,  0   )     int  ->  zero-ref    "field V38._index (fldOffset=0x8)" P-INDEP
+;  V58 tmp49        [V58,T30] (  2,  2   )     int  ->   r6         "field V38._version (fldOffset=0xc)" P-INDEP
 ;  V59 tmp50        [V59,T02] (  3, 48   )     ref  ->   r1         "arr expr"
 ;  V60 tmp51        [V60,T03] (  3, 48   )     ref  ->   r0         "arr expr"
-;  V61 PSPSym       [V61,T31] (  1,  1   )     int  ->  [sp+0x14]  do-not-enreg[V] "PSPSym"
-;  V62 cse0         [V62,T11] (  3, 24   )     int  ->   r7         "CSE - moderate"
-;  V63 cse1         [V63,T12] (  2, 16   )     int  ->   r0         "CSE - moderate"
+;  V61 PSPSym       [V61,T33] (  1,  1   )     int  ->  [sp+0x14]  do-not-enreg[V] "PSPSym"
+;  V62 cse0         [V62,T16] (  2, 16   )     int  ->   r1         "CSE - moderate"
+;  V63 cse1         [V63,T11] (  2, 16   )     int  ->   r1         "CSE - moderate"
+;  V64 cse2         [V64,T17] (  2, 16   )     int  ->   r0         "CSE - moderate"
+;  V65 cse3         [V65,T12] (  2, 16   )     int  ->   r0         "CSE - moderate"
 ;
 ; Lcl frame size = 24
 
@@ -86,13 +88,13 @@ G_M12834_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; GC ptr vars +{V00}
             mov     r4, r1
                        ;; size=20 bbWeight=1 PerfScore 8.00
-G_M12834_IG02:        ; bbWeight=1, gcVars=00200000 {V00}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M12834_IG02:        ; bbWeight=1, gcVars=0000000000400000 {V00}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r0]
             cmp     r0, 0
-            beq     G_M12834_IG24
+            beq     G_M12834_IG23
             ldr     r3, [r0+0x08]
             cmp     r3, 0
-            ble     G_M12834_IG25
+            ble     G_M12834_IG24
                         ;; size=14 bbWeight=1 PerfScore 5.00
 G_M12834_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
@@ -114,7 +116,7 @@ G_M12834_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldr     r1, [r1]
             and     r1, r1, 1
             cmp     r1, 1
-            bne     G_M12834_IG26
+            bne     G_M12834_IG25
                         ;; size=48 bbWeight=1 PerfScore 16.00
 G_M12834_IG04:        ; bbWeight=1, gcrefRegs=0021 {r0 r5}, byrefRegs=0000 {}, byref, isz
             movw    r1, 0xd1ff
@@ -124,10 +126,10 @@ G_M12834_IG04:        ; bbWeight=1, gcrefRegs=0021 {r0 r5}, byrefRegs=0000 {}, b
             dmb     15
             str     r1, [r5+0x0C]
             cmp     r7, 0
-            blt     G_M12834_IG27
+            blt     G_M12834_IG26
             movw    r1, 0xd1ff
             cmp     r7, r1
-            bgt     G_M12834_IG28
+            bgt     G_M12834_IG27
                        ;; size=34 bbWeight=1 PerfScore 11.00
 G_M12834_IG05:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
@@ -142,14 +144,14 @@ G_M12834_IG05:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             orrs    r1, r2
             str     r1, [r5+0x0C]
             cmp     r6, 0
-            ble     G_M12834_IG29
+            ble     G_M12834_IG28
                         ;; size=30 bbWeight=1 PerfScore 11.00
 G_M12834_IG06:        ; bbWeight=1, gcrefRegs=0021 {r0 r5}, byrefRegs=0000 {}, byref
             str     r6, [r5+0x10]
             str     r5, [sp+0x04]  // [V04 loc1]
             ; GC ptr vars +{V04}
                        ;; size=4 bbWeight=1 PerfScore 2.00
-G_M12834_IG07:        ; bbWeight=1, gcVars=00200040 {V00 V04}, gcrefRegs=0021 {r0 r5}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M12834_IG07:        ; bbWeight=1, gcVars=0000000000400020 {V00 V04}, gcrefRegs=0021 {r0 r5}, byrefRegs=0000 {}, gcvars, byref, isz
             mov     r8, r0
             ; gcrRegs +[r8]
             ldr     r9, [r8+0x0C]
@@ -254,12 +256,12 @@ G_M12834_IG13:        ; bbWeight=4, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, b
             blt     SHORT G_M12834_IG09
                        ;; size=6 bbWeight=4 PerfScore 12.00
 G_M12834_IG14:        ; bbWeight=8, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, byref, isz
-            ldr     r7, [r8+0x0C]
-            cmp     r9, r7
-            bne     SHORT G_M12834_IG18
+            ldr     r1, [r8+0x0C]
+            cmp     r9, r1
+            bne     SHORT G_M12834_IG17
             ldr     r1, [r8+0x08]
             cmp     r6, r1
-            bhs     SHORT G_M12834_IG19
+            bhs     SHORT G_M12834_IG18
             ldr     r1, [r8+0x04]
             ; gcrRegs +[r1]
             ldr     r2, [r1+0x04]
@@ -299,11 +301,7 @@ G_M12834_IG17:        ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M12834_IG18:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
-            cmp     r9, r7
-            bne     SHORT G_M12834_IG17
-                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M12834_IG19:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
+G_M12834_IG18:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             mov     r0, r5
             ; gcrRegs +[r0]
             mov     r1, r4
@@ -317,25 +315,25 @@ G_M12834_IG19:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             ; gcr arg pop 0
             str     r0, [sp+0x0C]  // [V03 loc0]
                        ;; size=20 bbWeight=8 PerfScore 64.00
-G_M12834_IG20:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
-            bl      G_M12834_IG30
+G_M12834_IG19:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
+            bl      G_M12834_IG29
                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M12834_IG21:        ; bbWeight=1, nogc, extend
+G_M12834_IG20:        ; bbWeight=1, nogc, extend
             nop     
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M12834_IG22:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M12834_IG21:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r5]
             ; GC ptr vars -{V00 V04}
             ldr     r0, [sp+0x0C]  // [V03 loc0]
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M12834_IG23:        ; bbWeight=1, epilog, nogc, extend
+G_M12834_IG22:        ; bbWeight=1, epilog, nogc, extend
             add     sp, 24
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             add     sp, 4
             bx      lr
                        ;; size=10 bbWeight=1 PerfScore 4.00
-G_M12834_IG24:        ; bbWeight=0, gcVars=00200000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; GC ptr vars +{V00 V21}
+G_M12834_IG23:        ; bbWeight=0, gcVars=0000000000400000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; GC ptr vars +{V00}
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movw    r1, 0xd1ff
@@ -351,7 +349,7 @@ G_M12834_IG24:        ; bbWeight=0, gcVars=00200000 {V00}, gcrefRegs=0000 {}, by
             cmp     r1, 0
             bgt     G_M12834_IG03
                        ;; size=38 bbWeight=0 PerfScore 0.00
-G_M12834_IG25:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M12834_IG24:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -364,7 +362,7 @@ G_M12834_IG25:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcr arg pop 0
             b       SHORT G_M12834_IG03
                        ;; size=30 bbWeight=0 PerfScore 0.00
-G_M12834_IG26:        ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+G_M12834_IG25:        ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r5]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -377,7 +375,7 @@ G_M12834_IG26:        ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             ; gcrRegs +[r0]
             b       SHORT G_M12834_IG04
                        ;; size=26 bbWeight=0 PerfScore 0.00
-G_M12834_IG27:        ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+G_M12834_IG26:        ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -392,7 +390,7 @@ G_M12834_IG27:        ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             cmp     r7, r0
             ble     G_M12834_IG05
                        ;; size=38 bbWeight=0 PerfScore 0.00
-G_M12834_IG28:        ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+G_M12834_IG27:        ; bbWeight=0, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
...
  
+2 (+0.18%) : 15987.dasm - System.Text.RegularExpressions.RegexNode:g_ExtractCommonPrefixOneNotoneSet|411(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (Tier0-FullOpts)
@@ -8,7 +8,7 @@
 ; 4 inlinees with PGO data; 39 single block inlinees; 14 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T29] ( 15, 23   )     ref  ->   r4         class-hnd single-def <System.Text.RegularExpressions.RegexNode>
+;  V00 arg0         [V00,T34] ( 14, 21   )     ref  ->   r4         class-hnd single-def <System.Text.RegularExpressions.RegexNode>
 ;  V01 loc0         [V01,T02] ( 16,137.50)     ref  ->   r5         class-hnd single-def <<unknown class>>
 ;* V02 loc1         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Text.RegularExpressions.RegexNode]>
 ;* V03 loc2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
@@ -16,7 +16,7 @@
 ;  V05 loc4         [V05,T23] ( 14, 42   )     int  ->   r6        
 ;  V06 loc5         [V06,T07] ( 11,110   )     ref  ->   r8         class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V07 loc6         [V07,T05] ( 12,122   )     int  ->   r7        
-;  V08 loc7         [V08,T31] (  5, 24   )     ref  ->   r9         class-hnd <System.Text.RegularExpressions.RegexNode>
+;  V08 loc7         [V08,T30] (  5, 24   )     ref  ->   r9         class-hnd <System.Text.RegularExpressions.RegexNode>
 ;* V09 loc8         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V10 loc9         [V10,T45] (  4, 12   )   ubyte  ->   r0        
 ;* V11 loc10        [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
@@ -24,8 +24,8 @@
 ;  V13 loc12        [V13,T59] (  3,  6   )     ref  ->   r0         class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;* V14 loc13        [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V15 OutArgs      [V15    ] (  1,  1   )  struct ( 4) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V16 tmp1         [V16,T64] (  3,  4.25)     ref  ->   r1         single-def "CASTCLASS eval op1"
-;  V17 tmp2         [V17,T65] (  3,  1.25)     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V16 tmp1         [V16,T65] (  3,  4.25)     ref  ->   r1         single-def "CASTCLASS eval op1"
+;  V17 tmp2         [V17,T66] (  3,  1.25)     int  ->   r3         "fgMakeTemp is creating a new local variable"
 ;  V18 tmp3         [V18,T58] (  5,  6.75)     ref  ->   r5         class-hnd "spilling QMark2" <<unknown class>>
 ;* V19 tmp4         [V19    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V20 tmp5         [V20    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
@@ -50,7 +50,7 @@
 ;* V39 tmp24        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V40 tmp25        [V40,T47] (  4, 11   )     ref  ->   r7         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V41 tmp26        [V41,T49] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V42 tmp27        [V42,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V42 tmp27        [V42,T63] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V43 tmp28        [V43,T39] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V44 tmp29        [V44,T06] (  8,112   )     ref  ->   r2         class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
 ;  V45 tmp30        [V45,T13] (  3, 80   )     ref  ->   r0         class-hnd "Inlining Arg" <System.__Canon>
@@ -75,21 +75,21 @@
 ;  V64 tmp49        [V64,T56] (  2,  8   )     int  ->   r0         "Inlining Arg"
 ;  V65 tmp50        [V65,T57] (  2,  8   )     int  ->   r0         "Inlining Arg"
 ;  V66 tmp51        [V66,T41] (  4, 16   )     ref  ->   r8         class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-;  V67 tmp52        [V67,T53] (  2,  8   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V68 tmp53        [V68,T48] (  3, 10   )     ref  ->   r1         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
+;  V67 tmp52        [V67,T53] (  2,  8   )     ref  ->   r0         "CASTCLASS eval op1"
+;  V68 tmp53        [V68,T48] (  3, 10   )     ref  ->   r0         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V69 tmp54        [V69,T50] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V70 tmp55        [V70,T63] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V70 tmp55        [V70,T64] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
 ;  V71 tmp56        [V71,T28] (  8, 27   )     ref  ->   r9         class-hnd "spilling QMark2" <<unknown class>>
-;* V72 tmp57        [V72,T68] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._list (fldOffset=0x0)" P-INDEP
+;* V72 tmp57        [V72,T69] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._list (fldOffset=0x0)" P-INDEP
 ;  V73 tmp58        [V73,T44] (  3,  8   )     ref  ->   r1         "field V02._current (fldOffset=0x4)" P-INDEP
-;  V74 tmp59        [V74,T30] (  6, 20.50)     int  ->   r6         "field V02._index (fldOffset=0x8)" P-INDEP
-;* V75 tmp60        [V75,T70] (  0,  0   )     int  ->  zero-ref    "field V02._version (fldOffset=0xc)" P-INDEP
-;* V76 tmp61        [V76,T69] (  0,  0   )     ref  ->  zero-ref    single-def "field V31._list (fldOffset=0x0)" P-INDEP
+;  V74 tmp59        [V74,T29] (  6, 20.50)     int  ->   r6         "field V02._index (fldOffset=0x8)" P-INDEP
+;* V75 tmp60        [V75,T71] (  0,  0   )     int  ->  zero-ref    "field V02._version (fldOffset=0xc)" P-INDEP
+;* V76 tmp61        [V76,T70] (  0,  0   )     ref  ->  zero-ref    single-def "field V31._list (fldOffset=0x0)" P-INDEP
 ;* V77 tmp62        [V77    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V31._current (fldOffset=0x4)" P-INDEP
-;* V78 tmp63        [V78,T71] (  0,  0   )     int  ->  zero-ref    "field V31._index (fldOffset=0x8)" P-INDEP
-;* V79 tmp64        [V79,T66] (  0,  0   )     int  ->  zero-ref    "field V31._version (fldOffset=0xc)" P-INDEP
-;  V80 tmp65        [V80,T32] (  3, 24   )     ref  ->   r1         "arr expr"
-;  V81 tmp66        [V81,T33] (  3, 24   )     ref  ->   r0         "arr expr"
+;* V78 tmp63        [V78,T72] (  0,  0   )     int  ->  zero-ref    "field V31._index (fldOffset=0x8)" P-INDEP
+;* V79 tmp64        [V79,T67] (  0,  0   )     int  ->  zero-ref    "field V31._version (fldOffset=0xc)" P-INDEP
+;  V80 tmp65        [V80,T31] (  3, 24   )     ref  ->   r1         "arr expr"
+;  V81 tmp66        [V81,T32] (  3, 24   )     ref  ->   r0         "arr expr"
 ;  V82 tmp67        [V82,T46] (  3, 12   )     ref  ->   r0         "arr expr"
 ;  V83 tmp68        [V83,T08] (  3, 96   )     ref  ->   r0         "arr expr"
 ;  V84 tmp69        [V84,T20] (  3, 48   )     ref  ->   r2         "arr expr"
@@ -100,11 +100,12 @@
 ;  V89 tmp74        [V89,T18] (  2, 64   )     ref  ->   r1         "argument with side effect"
 ;  V90 cse0         [V90,T19] (  4, 56   )     int  ->   r0         "CSE - moderate"
 ;  V91 cse1         [V91,T21] (  3, 48   )     int  ->   r0         "CSE - moderate"
-;* V92 cse2         [V92,T67] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
-;  V93 cse3         [V93,T34] (  3, 24   )     ref  ->   r2         "CSE - moderate"
+;* V92 cse2         [V92,T68] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
+;  V93 cse3         [V93,T33] (  3, 24   )     ref  ->   r2         "CSE - moderate"
 ;  V94 cse4         [V94,T42] (  3, 12   )     int  ->   r7         "CSE - conservative"
 ;  V95 cse5         [V95,T61] (  3,  6   )     ref  ->   r1         "CSE - conservative"
-;  V96 cse6         [V96,T26] (  3, 32   )     int  ->   r2         "CSE - moderate"
+;  V96 cse6         [V96,T62] (  3,  6   )     ref  ->   r1         "CSE - conservative"
+;  V97 cse7         [V97,T26] (  3, 32   )     int  ->   r2         "CSE - moderate"
 ;
 ; Lcl frame size = 20
 
@@ -698,20 +699,26 @@ G_M3603_IG42:        ; bbWeight=2, gcrefRegs=0330 {r4 r5 r8 r9}, byrefRegs=0000
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            ldr     r1, [r4+0x04]
+            ldr     r2, [r4+0x04]
+            ; gcrRegs +[r2]
+            mov     r1, r2
             ; gcrRegs +[r1]
-            cmp     r1, 0
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            cmp     r0, 0
             beq     SHORT G_M3603_IG45
-                      ;; size=118 bbWeight=2 PerfScore 82.00
-G_M3603_IG43:        ; bbWeight=1, gcrefRegs=0132 {r1 r4 r5 r8}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [r1]
-            ; gcrRegs -[r1]
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            cmp     r1, r0
+                       ;; size=122 bbWeight=2 PerfScore 86.00
+G_M3603_IG43:        ; bbWeight=1, gcrefRegs=0133 {r0 r1 r4 r5 r8}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2]
+            ldr     r0, [r0]
+            ; gcrRegs -[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            cmp     r0, r3
             bne     SHORT G_M3603_IG45
                        ;; size=14 bbWeight=1 PerfScore 5.00
 G_M3603_IG44:        ; bbWeight=2, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r1]
             adds    r0, r4, 4
             ; byrRegs +[r0]
             mov     r1, r8
@@ -723,15 +730,13 @@ G_M3603_IG44:        ; bbWeight=2, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {},
             ; byrRegs -[r0]
             b       SHORT G_M3603_IG49
                        ;; size=16 bbWeight=2 PerfScore 12.00
-G_M3603_IG45:        ; bbWeight=2, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r8]
-            ldr     r1, [r4+0x04]
-            ; gcrRegs +[r1]
+G_M3603_IG45:        ; bbWeight=2, gcrefRegs=0132 {r1 r4 r5 r8}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r1 r8]
             mov     r9, r1
             ; gcrRegs +[r9]
             cmp     r9, 0
             beq     SHORT G_M3603_IG48
-                       ;; size=10 bbWeight=2 PerfScore 8.00
+                      ;; size=8 bbWeight=2 PerfScore 6.00
 G_M3603_IG46:        ; bbWeight=1, gcrefRegs=0332 {r1 r4 r5 r8 r9}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r9]
             movw    r3, 0xd1ff
@@ -821,7 +826,7 @@ G_M3603_IG54:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1110, prolog size 12, PerfScore 2493.38, instruction count 428, allocated bytes for code 1110 (MethodHash=ab1ef1ec) for method System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (Tier0-FullOpts)
+; Total bytes of code 1112, prolog size 12, PerfScore 2495.38, instruction count 429, allocated bytes for code 1112 (MethodHash=ab1ef1ec) for method System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -833,7 +838,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 555 (0x0022b) Actual length = 1110 (0x000456)
+  Function Length   : 556 (0x0022c) Actual length = 1112 (0x000458)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+2 (+0.21%) : 9965.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
@@ -8,12 +8,12 @@
 ; 0 inlinees with PGO data; 14 single block inlinees; 15 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T57] (  4,  3   )     ref  ->   r4         this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
-;  V01 loc0         [V01,T00] ( 27, 93   )     ref  ->   r4         class-hnd <System.Text.RegularExpressions.RegexNode>
+;  V00 this         [V00,T58] (  4,  3   )     ref  ->   r4         this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
+;  V01 loc0         [V01,T00] ( 26, 91   )     ref  ->   r4         class-hnd <System.Text.RegularExpressions.RegexNode>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V03 loc2         [V03,T32] (  3, 12   )   ubyte  ->   r0        
 ;  V04 loc3         [V04,T26] (  4, 12   )   ubyte  ->   r0        
-;* V05 loc4         [V05,T63] (  0,  0   )   ubyte  ->  zero-ref   
+;* V05 loc4         [V05,T64] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V07 loc6         [V07,T12] (  3, 24   )     int  ->   r6        
 ;  V08 loc7         [V08,T01] (  7, 76   )     int  ->   r5        
@@ -25,7 +25,7 @@
 ;* V14 tmp4         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V15 tmp5         [V15,T34] (  4, 11   )     ref  ->   r4         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V16 tmp6         [V16,T41] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V17 tmp7         [V17,T58] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V17 tmp7         [V17,T59] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V18 tmp8         [V18,T16] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V19 tmp9         [V19,T39] (  4, 10   )     int  ->   r6         "Inline return value spill temp"
 ;  V20 tmp10        [V20,T52] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
@@ -34,7 +34,7 @@
 ;* V23 tmp13        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V24 tmp14        [V24,T35] (  4, 11   )     ref  ->   r7         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V25 tmp15        [V25,T42] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V26 tmp16        [V26,T59] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V26 tmp16        [V26,T60] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V27 tmp17        [V27,T17] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V28 tmp18        [V28,T14] (  4, 20   )     int  ->   r6         "Inlining Arg"
 ;* V29 tmp19        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
@@ -42,10 +42,10 @@
 ;  V31 tmp21        [V31,T46] (  4,  8   )     int  ->   r7         "Inline return value spill temp"
 ;  V32 tmp22        [V32,T53] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V33 tmp23        [V33,T21] (  4, 16   )     ref  ->   r6         class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-;  V34 tmp24        [V34,T50] (  2,  8   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V35 tmp25        [V35,T38] (  3, 10   )     ref  ->   r1         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
+;  V34 tmp24        [V34,T50] (  2,  8   )     ref  ->   r0         "CASTCLASS eval op1"
+;  V35 tmp25        [V35,T38] (  3, 10   )     ref  ->   r0         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V36 tmp26        [V36,T43] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V37 tmp27        [V37,T60] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V37 tmp27        [V37,T61] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
 ;  V38 tmp28        [V38,T10] (  8, 27   )     ref  ->   r4         class-hnd "spilling QMark2" <<unknown class>>
 ;  V39 tmp29        [V39,T33] (  3, 12   )     int  ->   r7         "Inlining Arg"
 ;  V40 tmp30        [V40,T40] (  4, 10   )     int  ->   r6         "Inline return value spill temp"
@@ -62,7 +62,7 @@
 ;* V51 tmp41        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V52 tmp42        [V52,T36] (  4, 11   )     ref  ->   r3         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V53 tmp43        [V53,T44] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V54 tmp44        [V54,T61] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V54 tmp44        [V54,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V55 tmp45        [V55,T18] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;* V56 tmp46        [V56    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V57 tmp47        [V57,T49] (  3,  8   )     ref  ->   r4         class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
@@ -70,7 +70,7 @@
 ;* V59 tmp49        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V60 tmp50        [V60,T37] (  4, 11   )     ref  ->   r4         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V61 tmp51        [V61,T45] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V62 tmp52        [V62,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V62 tmp52        [V62,T63] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V63 tmp53        [V63,T19] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V64 tmp54        [V64,T28] (  3, 12   )     ref  ->   r1         "arr expr"
 ;  V65 tmp55        [V65,T29] (  3, 12   )     ref  ->   r0         "arr expr"
@@ -81,7 +81,8 @@
 ;  V70 cse1         [V70,T07] (  3, 40   )     ref  ->   r1         "CSE - aggressive"
 ;  V71 cse2         [V71,T55] (  3,  6   )     ref  ->   r0         "CSE - conservative"
 ;  V72 cse3         [V72,T56] (  3,  6   )     ref  ->   r1         "CSE - conservative"
-;  V73 rat0         [V73,T13] (  3, 24   )     int  ->   r5         "ReplaceWithLclVar is creating a new local variable"
+;  V73 cse4         [V73,T57] (  3,  6   )     ref  ->   r1         "CSE - conservative"
+;  V74 rat0         [V74,T13] (  3, 24   )     int  ->   r5         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -109,7 +110,7 @@ G_M35244_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs -[r4]
             pop     {r4,r5,r6,r7,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG05:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35244_IG05:        ; bbWeight=4, gcVars=000000000000000000000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r4]
             ldrb    r0, [r4+0x1E]
             subs    r3, r0, 3
@@ -397,20 +398,26 @@ G_M35244_IG30:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            ldr     r1, [r4+0x04]
+            ldr     r2, [r4+0x04]
+            ; gcrRegs +[r2]
+            mov     r1, r2
             ; gcrRegs +[r1]
-            cmp     r1, 0
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            cmp     r0, 0
             beq     SHORT G_M35244_IG33
-                     ;; size=56 bbWeight=2 PerfScore 40.00
-G_M35244_IG31:        ; bbWeight=1, gcrefRegs=0072 {r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [r1]
-            ; gcrRegs -[r1]
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            cmp     r1, r0
+                       ;; size=60 bbWeight=2 PerfScore 44.00
+G_M35244_IG31:        ; bbWeight=1, gcrefRegs=0073 {r0 r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2]
+            ldr     r0, [r0]
+            ; gcrRegs -[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            cmp     r0, r3
             bne     SHORT G_M35244_IG33
                        ;; size=14 bbWeight=1 PerfScore 5.00
 G_M35244_IG32:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r1]
             adds    r0, r4, 4
             ; byrRegs +[r0]
             mov     r1, r6
@@ -422,14 +429,13 @@ G_M35244_IG32:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             ; byrRegs -[r0]
             b       SHORT G_M35244_IG37
                        ;; size=16 bbWeight=2 PerfScore 12.00
-G_M35244_IG33:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r4 r6]
-            ldr     r1, [r4+0x04]
-            ; gcrRegs +[r1]
+G_M35244_IG33:        ; bbWeight=2, gcrefRegs=0062 {r1 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r1 r6]
             mov     r4, r1
+            ; gcrRegs +[r4]
             cmp     r4, 0
             beq     SHORT G_M35244_IG36
-                      ;; size=8 bbWeight=2 PerfScore 8.00
+                       ;; size=6 bbWeight=2 PerfScore 6.00
 G_M35244_IG34:        ; bbWeight=1, gcrefRegs=0072 {r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4]
             movw    r3, 0xd1ff
@@ -748,7 +754,7 @@ G_M35244_IG68:        ; bbWeight=0.50, epilog, nogc, extend
             bx      r3     // <unknown method>
             ; gcr arg pop 0
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M35244_IG69:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG69:        ; bbWeight=0, gcVars=000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0 r4]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -776,7 +782,7 @@ RWD00   dd  G_M35244_IG38
            dd  G_M35244_IG38
 
 
-; Total bytes of code 938, prolog size 10, PerfScore 1002.00, instruction count 372, allocated bytes for code 938 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
+; Total bytes of code 940, prolog size 10, PerfScore 1004.00, instruction count 373, allocated bytes for code 940 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -788,7 +794,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 469 (0x001d5) Actual length = 938 (0x0003aa)
+  Function Length   : 470 (0x001d6) Actual length = 940 (0x0003ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+4 (+0.45%) : 43857.dasm - System.Threading.TimerQueue:TimerThread() (Tier0-FullOpts)
@@ -8,14 +8,14 @@
 ; 4 inlinees with PGO data; 13 single block inlinees; 9 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T17] (  8, 260   )     ref  ->   r4         class-hnd exact single-def <<unknown class>>
-;  V01 loc1         [V01,T00] ( 16,1249   )     ref  ->   r5         class-hnd single-def <<unknown class>>
+;  V00 loc0         [V00,T18] (  8, 260   )     ref  ->   r4         class-hnd exact single-def <<unknown class>>
+;  V01 loc1         [V01,T00] ( 15,1121   )     ref  ->   r5         class-hnd single-def <<unknown class>>
 ;  V02 loc2         [V02,T06] (  9, 641   )     ref  ->   r6         class-hnd single-def <<unknown class>>
 ;  V03 loc3         [V03,T09] (  8, 392   )     int  ->  registers  
-;  V04 loc4         [V04,T38] (  2,   0   )     ref  ->  [sp+0x10]  class-hnd exact EH-live single-def <<unknown class>>
+;  V04 loc4         [V04,T39] (  2,   0   )     ref  ->  [sp+0x10]  class-hnd exact EH-live single-def <<unknown class>>
 ;  V05 loc5         [V05    ] (  6,   5   )   ubyte  ->  [sp+0x2C]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V06 loc6         [V06    ] (  1,  64   )    long  ->  [sp+0x20]  multireg-ret
-;  V07 loc7         [V07,T30] (  3,  80   )     ref  ->  [sp+0x0C]  do-not-enreg[Z] class-hnd exact EH-live <<unknown class>>
+;  V07 loc7         [V07,T31] (  3,  80   )     ref  ->  [sp+0x0C]  do-not-enreg[Z] class-hnd exact EH-live <<unknown class>>
 ;  V08 loc8         [V08    ] (  6, 320   )   ubyte  ->  [sp+0x1C]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V09 loc9         [V09,T01] ( 11,1088   )     int  ->  [sp+0x18] 
 ;  V10 loc10        [V10,T08] (  5, 448   )     ref  ->   r1         class-hnd exact <System.Threading.TimerQueue>
@@ -24,41 +24,42 @@
 ;* V13 loc13        [V13    ] (  0,   0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Threading.TimerQueue]>
 ;* V14 loc14        [V14    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact <System.Threading.TimerQueue>
 ;  V15 OutArgs      [V15    ] (  1,   1   )  struct ( 4) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V16 tmp1         [V16,T36] (  2,   4   )   ubyte  ->   r0         "Inlining Arg"
+;  V16 tmp1         [V16,T37] (  2,   4   )   ubyte  ->   r0         "Inlining Arg"
 ;* V17 tmp2         [V17    ] (  0,   0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V18 tmp3         [V18,T31] (  0,   0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V19 tmp4         [V19,T22] (  2, 256   )   ubyte  ->   r1         "Inlining Arg"
-;  V20 tmp5         [V20,T24] (  3, 192   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V21 tmp6         [V21,T18] (  4, 256   )     int  ->   r3         "Inline stloc first use temp"
-;  V22 tmp7         [V22,T20] (  2, 256   )     ref  ->   lr         class-hnd "Inlining Arg" <System.__Canon>
+;* V18 tmp3         [V18,T32] (  0,   0   )     int  ->  zero-ref    "Inline return value spill temp"
+;  V19 tmp4         [V19,T23] (  2, 256   )   ubyte  ->   r1         "Inlining Arg"
+;  V20 tmp5         [V20,T25] (  3, 192   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V21 tmp6         [V21,T19] (  4, 256   )     int  ->   r3         "Inline stloc first use temp"
+;  V22 tmp7         [V22,T21] (  2, 256   )     ref  ->   lr         class-hnd "Inlining Arg" <System.__Canon>
 ;* V23 tmp8         [V23    ] (  0,   0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Threading.TimerQueue]>
-;* V24 tmp9         [V24,T23] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V24 tmp9         [V24,T24] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V25 tmp10        [V25    ] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V26 tmp11        [V26,T16] (  3, 272   )     int  ->   r2         "Inline stloc first use temp"
-;* V27 tmp12        [V27,T34] (  0,   0   )     ref  ->  zero-ref    "field V13._list (fldOffset=0x0)" P-INDEP
-;  V28 tmp13        [V28,T14] (  2, 192   )     ref  ->  [sp+0x08]  spill-single-def "field V13._current (fldOffset=0x4)" P-INDEP
+;  V26 tmp11        [V26,T17] (  3, 272   )     int  ->   r2         "Inline stloc first use temp"
+;* V27 tmp12        [V27,T35] (  0,   0   )     ref  ->  zero-ref    "field V13._list (fldOffset=0x0)" P-INDEP
+;  V28 tmp13        [V28,T15] (  2, 192   )     ref  ->  [sp+0x08]  spill-single-def "field V13._current (fldOffset=0x4)" P-INDEP
 ;  V29 tmp14        [V29,T02] (  6, 656   )     int  ->   r8         "field V13._index (fldOffset=0x8)" P-INDEP
-;  V30 tmp15        [V30,T28] (  2, 144   )     int  ->   r7         "field V13._version (fldOffset=0xc)" P-INDEP
-;  V31 tmp16        [V31,T32] (  2,  32   )     ref  ->   r0         "field V23._list (fldOffset=0x0)" P-INDEP
+;  V30 tmp15        [V30,T29] (  2, 144   )     int  ->   r7         "field V13._version (fldOffset=0xc)" P-INDEP
+;  V31 tmp16        [V31,T33] (  2,  32   )     ref  ->   r0         "field V23._list (fldOffset=0x0)" P-INDEP
 ;* V32 tmp17        [V32    ] (  0,   0   )     ref  ->  zero-ref    "field V23._current (fldOffset=0x4)" P-INDEP
-;* V33 tmp18        [V33,T35] (  0,   0   )     int  ->  zero-ref    "field V23._index (fldOffset=0x8)" P-INDEP
-;  V34 tmp19        [V34,T33] (  2,  32   )     int  ->   r7         "field V23._version (fldOffset=0xc)" P-INDEP
-;  V35 tmp20        [V35,T39] (  2,   0   )     ref  ->   r2         "argument with side effect"
+;* V33 tmp18        [V33,T36] (  0,   0   )     int  ->  zero-ref    "field V23._index (fldOffset=0x8)" P-INDEP
+;  V34 tmp19        [V34,T34] (  2,  32   )     int  ->   r7         "field V23._version (fldOffset=0xc)" P-INDEP
+;  V35 tmp20        [V35,T40] (  2,   0   )     ref  ->   r2         "argument with side effect"
 ;  V36 tmp21        [V36,T03] (  3, 768   )     ref  ->   r1         "arr expr"
 ;  V37 tmp22        [V37,T12] (  3, 384   )     ref  ->   lr         "arr expr"
 ;  V38 tmp23        [V38,T04] (  3, 768   )     ref  ->   r0         "arr expr"
-;  V39 tmp24        [V39,T21] (  2, 256   )     ref  ->   r0         "argument with side effect"
-;  V40 PSPSym       [V40,T37] (  1,   1   )     int  ->  [sp+0x30]  do-not-enreg[V] "PSPSym"
-;  V41 cse0         [V41,T07] (  3, 384   )     int  ->   r2         "CSE - aggressive"
-;  V42 cse1         [V42,T19] (  4, 256   )     int  ->   r0         "CSE - moderate"
-;  V43 cse2         [V43,T25] (  3, 192   )     ref  ->   r1         "CSE - moderate"
-;  V44 cse3         [V44,T29] (  2, 128   )     int  ->   lr         "CSE - moderate"
-;  V45 rat0         [V45,T26] (  2, 192   )     int  ->   r7         "field V06.lo (fldOffset=0x0)" P-INDEP
-;  V46 rat1         [V46,T27] (  2, 192   )     int  ->   r8         "field V06.hi (fldOffset=0x4)" P-INDEP
-;  V47 rat2         [V47,T11] (  4, 384   )     int  ->   r3         "field V11.lo (fldOffset=0x0)" P-INDEP
-;  V48 rat3         [V48,T15] (  3, 320   )     int  ->   lr         "field V11.hi (fldOffset=0x4)" P-INDEP
-;  V49 rat4         [V49,T05] (  3, 768   )   byref  ->   r0         "ReplaceWithLclVar is creating a new local variable"
-;  V50 rat5         [V50,T13] (  3, 384   )     int  ->   r0         "ReplaceWithLclVar is creating a new local variable"
+;  V39 tmp24        [V39,T22] (  2, 256   )     ref  ->   r0         "argument with side effect"
+;  V40 PSPSym       [V40,T38] (  1,   1   )     int  ->  [sp+0x30]  do-not-enreg[V] "PSPSym"
+;  V41 cse0         [V41,T13] (  3, 384   )     int  ->   r3         "CSE - aggressive"
+;  V42 cse1         [V42,T07] (  3, 384   )     int  ->   r2         "CSE - aggressive"
+;  V43 cse2         [V43,T20] (  4, 256   )     int  ->   r0         "CSE - moderate"
+;  V44 cse3         [V44,T26] (  3, 192   )     ref  ->   r1         "CSE - moderate"
+;  V45 cse4         [V45,T30] (  2, 128   )     int  ->   lr         "CSE - moderate"
+;  V46 rat0         [V46,T27] (  2, 192   )     int  ->   r7         "field V06.lo (fldOffset=0x0)" P-INDEP
+;  V47 rat1         [V47,T28] (  2, 192   )     int  ->   r8         "field V06.hi (fldOffset=0x4)" P-INDEP
+;  V48 rat2         [V48,T11] (  4, 384   )     int  ->   r3         "field V11.lo (fldOffset=0x0)" P-INDEP
+;  V49 rat3         [V49,T16] (  3, 320   )     int  ->   lr         "field V11.hi (fldOffset=0x4)" P-INDEP
+;  V50 rat4         [V50,T05] (  3, 768   )   byref  ->   r0         "ReplaceWithLclVar is creating a new local variable"
+;  V51 rat5         [V51,T14] (  3, 384   )     int  ->   r0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 52
 
@@ -83,7 +84,7 @@ G_M45973_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movs    r1, 0
             str     r1, [sp+0x2C]  // [V05 loc5]
                        ;; size=26 bbWeight=1 PerfScore 9.00
-G_M45973_IG03:        ; bbWeight=1, gcVars=0000004000000000 {V04}, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M45973_IG03:        ; bbWeight=1, gcVars=0000008000000000 {V04}, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x2C]   // [V05 loc5]
             cmp     r1, 0
             beq     SHORT G_M45973_IG06
@@ -175,7 +176,7 @@ G_M45973_IG10:        ; bbWeight=64, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {
             movs    r1, 0
             str     r1, [sp+0x1C]  // [V08 loc8]
                        ;; size=64 bbWeight=64 PerfScore 1472.00
-G_M45973_IG11:        ; bbWeight=64, gcVars=0000000040000000 {V07}, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M45973_IG11:        ; bbWeight=64, gcVars=0000000080000000 {V07}, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x1C]   // [V08 loc8]
             cmp     r1, 0
             bne     G_M45973_IG25
@@ -405,8 +406,8 @@ G_M45973_IG29:        ; bbWeight=16, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {
             mov     r8, 0
             b       SHORT G_M45973_IG32
                        ;; size=10 bbWeight=16 PerfScore 64.00
-G_M45973_IG30:        ; bbWeight=64, gcVars=0000000000004000 {V28}, gcrefRegs=0078 {r3 r4 r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[r0] +[r3]
+G_M45973_IG30:        ; bbWeight=64, gcVars=0000000000008000 {V28}, gcrefRegs=4070 {r4 r5 r6 lr}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[r0] +[lr]
             ; GC ptr vars +{V28}
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -415,26 +416,25 @@ G_M45973_IG30:        ; bbWeight=64, gcVars=0000000000004000 {V28}, gcrefRegs=00
             cmp     r0, 1
             bne     SHORT G_M45973_IG38
                        ;; size=18 bbWeight=64 PerfScore 384.00
-G_M45973_IG31:        ; bbWeight=64, gcrefRegs=0078 {r3 r4 r5 r6}, byrefRegs=0000 {}, byref
+G_M45973_IG31:        ; bbWeight=64, gcrefRegs=4070 {r4 r5 r6 lr}, byrefRegs=0000 {}, byref
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             ldr     r0, [r0]
             ; gcrRegs +[r0]
-            mov     r1, r3
+            mov     r1, lr
             ; gcrRegs +[r1]
             movw    r3, 0xd1ff
-            ; gcrRegs -[r3]
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             ldr     r2, [r0]
             ; GC ptr vars -{V28}
             blx     r3     // System.Threading.ThreadPoolWorkQueue:EnqueueAtHighPriority(System.Object):this
-            ; gcrRegs -[r0-r1]
+            ; gcrRegs -[r0-r1 lr]
             ; gcr arg pop 0
                        ;; size=26 bbWeight=64 PerfScore 576.00
 G_M45973_IG32:        ; bbWeight=128, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r5+0x0C]
-            cmp     r7, r0
+            ldr     r3, [r5+0x0C]
+            cmp     r7, r3
             bne     SHORT G_M45973_IG40
             ldr     r2, [r5+0x08]
             cmp     r8, r2
@@ -448,25 +448,24 @@ G_M45973_IG32:        ; bbWeight=128, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
             lsl     r1, r8, 2
-            ldr     r3, [r0+r1]
-            ; gcrRegs +[r3]
-            str     r3, [sp+0x08]  // [V28 tmp13]
+            ldr     lr, [r0+r1]
+            ; gcrRegs +[lr]
+            str     lr, [sp+0x08]  // [V28 tmp13]
             ; GC ptr vars +{V28}
             add     r8, r8, 1
             b       SHORT G_M45973_IG30
-                      ;; size=36 bbWeight=128 PerfScore 2048.00
+                     ;; size=40 bbWeight=128 PerfScore 2048.00
 G_M45973_IG33:        ; bbWeight=128, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r3]
+            ; gcrRegs -[lr]
             ; byrRegs -[r0]
             ; GC ptr vars -{V28}
-            ldr     r0, [r5+0x0C]
-            adds    r0, r0, 1
+            adds    r0, r3, 1
             str     r0, [r5+0x0C]
             movs    r0, 0
             str     r0, [r5+0x08]
             cmp     r2, 0
             ble     SHORT G_M45973_IG35
-                      ;; size=14 bbWeight=128 PerfScore 896.00
+                      ;; size=12 bbWeight=128 PerfScore 768.00
 G_M45973_IG34:        ; bbWeight=16, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref
             ldr     r0, [r5+0x04]
             ; gcrRegs +[r0]
@@ -494,23 +493,23 @@ G_M45973_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M45973_IG38:        ; bbWeight=0, gcVars=0000000000004000 {V28}, gcrefRegs=0078 {r3 r4 r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[r3-r6]
+G_M45973_IG38:        ; bbWeight=0, gcVars=0000000000008000 {V28}, gcrefRegs=4070 {r4 r5 r6 lr}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[r4-r6 lr]
             ; GC ptr vars +{V28}
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             mov     r1, 740
-            movw    r2, 0xd1ff
-            movt    r2, 0xd1ff
-            blx     r2     // CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
-            ; gcrRegs -[r3]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+            ; gcrRegs -[lr]
             ; gcr arg pop 0
-            ldr     r3, [sp+0x08]  // [V28 tmp13]
-            ; gcrRegs +[r3]
+            ldr     lr, [sp+0x08] // [V28 tmp13]
+            ; gcrRegs +[lr]
             b       SHORT G_M45973_IG31
-                       ;; size=26 bbWeight=0 PerfScore 0.00
+                      ;; size=28 bbWeight=0 PerfScore 0.00
 G_M45973_IG39:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r3-r6]
+            ; gcrRegs -[r4-r6 lr]
             ; GC ptr vars -{V28}
             movw    r0, 0xd1ff
             movw    r1, 0xd1ff
@@ -541,14 +540,14 @@ G_M45973_IG40:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M45973_IG41:        ; bbWeight=0, gcVars=0000004000000000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
-            ; GC ptr vars +{V04 V38}
+G_M45973_IG41:        ; bbWeight=0, gcVars=0000008000000000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+            ; GC ptr vars +{V04 V39}
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             sub     sp, 12
             add     r3, r11, 8
             str     r3, [sp+0x08]
                        ;; size=12 bbWeight=0 PerfScore 0.00
-G_M45973_IG42:        ; bbWeight=0, gcVars=0000004000000000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M45973_IG42:        ; bbWeight=0, gcVars=0000008000000000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r0, [r11-0x24]    // [V05 loc5]
             cmp     r0, 0
             beq     SHORT G_M45973_IG43
@@ -556,7 +555,7 @@ G_M45973_IG42:        ; bbWeight=0, gcVars=0000004000000000 {V04}, gcrefRegs=000
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
-            ; GC ptr vars -{V04 V38}
+            ; GC ptr vars -{V04 V39}
             blx     r3       // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
@@ -565,14 +564,14 @@ G_M45973_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             add     sp, 12
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=0 PerfScore 0.00
-G_M45973_IG44:        ; bbWeight=0, gcVars=0000000040000000 {V07}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
-            ; GC ptr vars +{V07 V30}
...
  
  
benchmarks.run_tiered.linux.arm.checked.mch
-10 (-3.12%) : 15877.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (Tier0-FullOpts)
@@ -8,44 +8,45 @@
 ; 0 inlinees with PGO data; 5 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00    ] (  5,  7.50)  struct ( 4) [sp+0x2C]  single-def <System.Net.Http.Headers.HeaderDescriptor>
+;  V00 arg0         [V00    ] (  5,  7.50)  struct ( 4) [sp+0x24]  single-def <System.Net.Http.Headers.HeaderDescriptor>
 ;  V01 arg1         [V01,T03] (  8, 13.50)     ref  ->   r4         class-hnd single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
-;  V02 loc0         [V02,T17] (  3,  0.50)     ref  ->  [sp+0x00]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V02 loc0         [V02,T18] (  3,  0.50)     ref  ->  [sp+0x00]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
 ;  V03 loc1         [V03    ] (  6,  5   )   ubyte  ->  [sp+0x04]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V04 loc2         [V04,T13] (  3,  1.50)     ref  ->   r0         class-hnd single-def <<unknown class>>
+;  V04 loc2         [V04,T14] (  3,  1.50)     ref  ->   r0         class-hnd single-def <<unknown class>>
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V07 loc5         [V07,T12] (  4,  1.62)     ref  ->   r2         class-hnd exact <System.String>
+;  V07 loc5         [V07,T13] (  4,  1.62)     ref  ->   r2         class-hnd exact <System.String>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T11] (  2,  2   )     ref  ->   r2         single-def "CASTCLASS eval op1"
+;  V09 tmp1         [V09,T12] (  2,  2   )     ref  ->   r2         single-def "CASTCLASS eval op1"
 ;* V10 tmp2         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.String>
-;  V11 tmp3         [V11,T09] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
+;  V11 tmp3         [V11,T10] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
 ;* V12 tmp4         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
-;* V13 tmp5         [V13,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V13 tmp5         [V13,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V14 tmp6         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V15 tmp7         [V15,T06] (  5,  7.50)     ref  ->  [sp+0x2C]  do-not-enreg[] single-def "field V00._descriptor (fldOffset=0x0)" P-DEP
+;  V15 tmp7         [V15,T06] (  5,  7.50)     ref  ->  [sp+0x24]  do-not-enreg[] single-def "field V00._descriptor (fldOffset=0x0)" P-DEP
 ;  V16 tmp8         [V16,T02] (  4, 12.50)     ref  ->   r5         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V17 tmp9         [V17,T04] (  2,  8   )     ref  ->   r2         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V18 tmp10        [V18,T00] (  6, 20.50)     int  ->   r7         "field V05._index (fldOffset=0x8)" P-INDEP
-;  V19 tmp11        [V19,T07] (  3,  8.50)     int  ->   r6         "field V05._version (fldOffset=0xc)" P-INDEP
-;  V20 tmp12        [V20,T14] (  3,  1.50)     ref  ->   r5         single-def "field V12._list (fldOffset=0x0)" P-INDEP
+;  V19 tmp11        [V19,T09] (  2,  4.50)     int  ->   r6         "field V05._version (fldOffset=0xc)" P-INDEP
+;  V20 tmp12        [V20,T15] (  3,  1.50)     ref  ->   r5         single-def "field V12._list (fldOffset=0x0)" P-INDEP
 ;* V21 tmp13        [V21    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V12._current (fldOffset=0x4)" P-INDEP
-;* V22 tmp14        [V22,T18] (  0,  0   )     int  ->  zero-ref    "field V12._index (fldOffset=0x8)" P-INDEP
-;  V23 tmp15        [V23,T15] (  2,  1   )     int  ->   r6         "field V12._version (fldOffset=0xc)" P-INDEP
+;* V22 tmp14        [V22,T19] (  0,  0   )     int  ->  zero-ref    "field V12._index (fldOffset=0x8)" P-INDEP
+;  V23 tmp15        [V23,T16] (  2,  1   )     int  ->   r6         "field V12._version (fldOffset=0xc)" P-INDEP
 ;  V24 tmp16        [V24,T01] (  3, 24   )     ref  ->   r0         "arr expr"
-;  V25 PSPSym       [V25,T16] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
-;  V26 cse0         [V26,T05] (  3, 12   )     int  ->   r8         "CSE - aggressive"
-;  V27 cse1         [V27,T10] (  4,  3   )     ref  ->   r5         "CSE - aggressive"
+;  V25 PSPSym       [V25,T17] (  1,  1   )     int  ->  [sp+0x08]  do-not-enreg[V] "PSPSym"
+;  V26 cse0         [V26,T08] (  2,  8   )     int  ->   r0         "CSE - aggressive"
+;  V27 cse1         [V27,T05] (  2,  8   )     int  ->   r0         "CSE - aggressive"
+;  V28 cse2         [V28,T11] (  4,  3   )     ref  ->   r5         "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 12
 
 G_M53769_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r0}
-            push    {r4,r5,r6,r7,r8,r11,lr}
-            sub     sp, 16
-            add     r11, sp, 36
-            add     r0, sp, 48
-            str     r0, [sp+0x0C]  // [V25 PSPSym]
+            push    {r4,r5,r6,r7,r11,lr}
+            sub     sp, 12
+            add     r11, sp, 28
+            add     r0, sp, 40
+            str     r0, [sp+0x08]  // [V25 PSPSym]
             mov     r4, r1
             ; gcrRegs +[r4]
                        ;; size=18 bbWeight=1 PerfScore 7.00
@@ -55,7 +56,7 @@ G_M53769_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             movs    r1, 0
             str     r1, [sp+0x04]  // [V03 loc1]
                        ;; size=6 bbWeight=1 PerfScore 3.00
-G_M53769_IG03:        ; bbWeight=1, gcVars=00020000 {V02}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M53769_IG03:        ; bbWeight=1, gcVars=00040000 {V02}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x04]  // [V03 loc1]
             cmp     r1, 0
             bne     SHORT G_M53769_IG08
@@ -86,7 +87,7 @@ G_M53769_IG05:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ldr     r5, [r4+0x04]
             ; gcrRegs +[r5]
             cmp     r5, 0
-            beq     SHORT G_M53769_IG16
+            beq     SHORT G_M53769_IG15
                         ;; size=6 bbWeight=1 PerfScore 3.00
 G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             mov     r1, r5
@@ -99,24 +100,24 @@ G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}
             ; gcrRegs -[r1] +[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M53769_IG13
+            beq     SHORT G_M53769_IG12
             mov     r5, r0
             ldr     r6, [r5+0x0C]
             movs    r7, 0
                        ;; size=30 bbWeight=0.50 PerfScore 5.50
 G_M53769_IG07:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
-            ldr     r8, [r5+0x0C]
-            cmp     r6, r8
-            bne     SHORT G_M53769_IG09
+            ldr     r0, [r5+0x0C]
+            cmp     r6, r0
+            bne     SHORT G_M53769_IG11
             ldr     r0, [r5+0x08]
             cmp     r7, r0
-            bhs     SHORT G_M53769_IG10
+            bhs     SHORT G_M53769_IG09
             ldr     r0, [r5+0x04]
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x04]
             cmp     r7, r1
-            bhs     SHORT G_M53769_IG11
+            bhs     SHORT G_M53769_IG10
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -127,7 +128,7 @@ G_M53769_IG07:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             mov     r0, r4
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
-            ldr     r1, [sp+0x2C] // [V15 tmp7]
+            ldr     r1, [sp+0x24]    // [V15 tmp7]
             ; gcrRegs +[r1]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -136,7 +137,7 @@ G_M53769_IG07:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0-r2]
             ; gcr arg pop 0
             b       SHORT G_M53769_IG07
-                      ;; size=48 bbWeight=4 PerfScore 84.00
+                     ;; size=46 bbWeight=4 PerfScore 84.00
 G_M53769_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r4-r5]
             movw    r3, 0xd1ff
@@ -148,22 +149,18 @@ G_M53769_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=14 bbWeight=0 PerfScore 0.00
 G_M53769_IG09:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4]
-            cmp     r6, r8
-            bne     SHORT G_M53769_IG12
-                       ;; size=4 bbWeight=4 PerfScore 8.00
-G_M53769_IG10:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             movs    r0, 0
             str     r0, [r4+0x04]
-            b       SHORT G_M53769_IG16
+            b       SHORT G_M53769_IG15
                         ;; size=6 bbWeight=4 PerfScore 12.00
-G_M53769_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53769_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r4]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M53769_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53769_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -171,7 +168,7 @@ G_M53769_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M53769_IG13:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+G_M53769_IG12:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4-r5]
             mov     r2, r5
             ; gcrRegs +[r2]
@@ -179,17 +176,17 @@ G_M53769_IG13:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
             cmp     r0, r1
-            beq     SHORT G_M53769_IG15
+            beq     SHORT G_M53769_IG14
                        ;; size=16 bbWeight=0.50 PerfScore 3.00
-G_M53769_IG14:        ; bbWeight=0.12, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M53769_IG13:        ; bbWeight=0.12, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r2 r5]
             movs    r2, 0
                        ;; size=2 bbWeight=0.12 PerfScore 0.12
-G_M53769_IG15:        ; bbWeight=0.50, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, byref, isz
+G_M53769_IG14:        ; bbWeight=0.50, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r2]
             mov     r0, r4
             ; gcrRegs +[r0]
-            ldr     r1, [sp+0x2C] // [V15 tmp7]
+            ldr     r1, [sp+0x24]    // [V15 tmp7]
             ; gcrRegs +[r1]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -197,15 +194,15 @@ G_M53769_IG15:        ; bbWeight=0.50, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}
             blx     r3     // System.Net.Http.Headers.HttpHeaders:ParseSingleRawHeaderValue(System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo,System.Net.Http.Headers.HeaderDescriptor,System.String)
             ; gcrRegs -[r0-r2]
             ; gcr arg pop 0
-            b       SHORT G_M53769_IG10
+            b       SHORT G_M53769_IG09
                       ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M53769_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53769_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r4]
             ldrb    r0, [sp+0x04]  // [V03 loc1]
             cmp     r0, 0
-            beq     SHORT G_M53769_IG18
+            beq     SHORT G_M53769_IG17
                         ;; size=8 bbWeight=1 PerfScore 3.00
-G_M53769_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53769_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ldr     r0, [sp] // [V02 loc0]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
@@ -215,38 +212,36 @@ G_M53769_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M53769_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            add     sp, 16
-            pop     {r4,r5,r6,r7,r8,r11,lr}
+G_M53769_IG17:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            add     sp, 12
+            pop     {r4,r5,r6,r7,r11,lr}
             add     sp, 4
             bx      lr
                        ;; size=10 bbWeight=1 PerfScore 4.00
-G_M53769_IG19:        ; bbWeight=0, gcVars=00020000 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
-            ; GC ptr vars +{V02 V17}
-            push    {r4,r5,r6,r7,r8,r11,lr}
-            sub     sp, 12
+G_M53769_IG18:        ; bbWeight=0, gcVars=00040000 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+            ; GC ptr vars +{V02 V18}
+            push    {r2,r3,r4,r5,r6,r7,r11,lr}
             add     r3, r11, 12
-            str     r3, [sp+0x04]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M53769_IG20:        ; bbWeight=0, gcVars=00020000 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldrb    r0, [r11-0x20] // [V03 loc1]
+            str     r3, [sp]
+                       ;; size=10 bbWeight=0 PerfScore 0.00
+G_M53769_IG19:        ; bbWeight=0, gcVars=00040000 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldrb    r0, [r11-0x18] // [V03 loc1]
             cmp     r0, 0
-            beq     SHORT G_M53769_IG21
-            ldr     r0, [r11-0x24] // [V02 loc0]
+            beq     SHORT G_M53769_IG20
+            ldr     r0, [r11-0x1C] // [V02 loc0]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
-            ; GC ptr vars -{V02 V17}
+            ; GC ptr vars -{V02 V18}
...
  
-6 (-1.94%) : 5411.dasm - System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
@@ -8,10 +8,10 @@
 ; 0 inlinees with PGO data; 12 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T18] (  3,  3   )     int  ->   r4         single-def
-;  V01 arg1         [V01,T19] (  3,  3   )     int  ->   r5         single-def
+;  V00 arg0         [V00,T19] (  3,  3   )     int  ->   r4         single-def
+;  V01 arg1         [V01,T20] (  3,  3   )     int  ->   r5         single-def
 ;  V02 loc0         [V02    ] (  4, 17   )  struct ( 8) [sp+0x08]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[ushort]>
-;  V03 loc1         [V03,T20] (  4, 11   )     int  ->   r5        
+;  V03 loc1         [V03,T21] (  4, 11   )     int  ->   r5        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V05 loc3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
@@ -19,14 +19,14 @@
 ;  V08 tmp1         [V08,T10] (  7, 84   )     ref  ->   r4         class-hnd single-def "non-inline candidate call" <<unknown class>>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V10 tmp3         [V10    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V11 tmp4         [V11,T28] (  3,  0   )     ref  ->   r0         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-;  V12 tmp5         [V12,T22] (  2,  4   )     ref  ->   r4         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V11 tmp4         [V11,T29] (  3,  0   )     ref  ->   r0         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V12 tmp5         [V12,T23] (  2,  4   )     ref  ->   r4         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V13 tmp6         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V14 tmp7         [V14    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V15 tmp8         [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V16 tmp9         [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V17 tmp10        [V17,T08] (  2, 16   )     int  ->   lr         "Inlining Arg"
-;  V18 tmp11        [V18,T07] (  2, 16   )   byref  ->   r3         "Inlining Arg"
+;  V17 tmp10        [V17,T07] (  2, 16   )     int  ->   lr         "Inlining Arg"
+;  V18 tmp11        [V18,T06] (  2, 16   )   byref  ->   r3         "Inlining Arg"
 ;* V19 tmp12        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp13        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V21 tmp14        [V21,T12] (  2,  8   )   ubyte  ->   r0         "Inline return value spill temp"
@@ -40,30 +40,30 @@
 ;* V29 tmp22        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V30 tmp23        [V30    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V31 tmp24        [V31    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V32 tmp25        [V32,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V32 tmp25        [V32,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V33 tmp26        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V34 tmp27        [V34,T23] (  3, 17   )     ref  ->   r0         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V35 tmp28        [V35,T21] (  4, 18   )     int  ->   r3         "Inline stloc first use temp"
-;  V36 tmp29        [V36,T17] (  3, 20   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V34 tmp27        [V34,T24] (  3, 17   )     ref  ->   r0         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V35 tmp28        [V35,T22] (  4, 18   )     int  ->   r3         "Inline stloc first use temp"
+;  V36 tmp29        [V36,T18] (  3, 20   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V37 tmp30        [V37    ] (  3,  3   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] addr-exposed "Reverse Pinvoke FrameVar"
 ;  V38 tmp31        [V38    ] (  3, 13   )   byref  ->  [sp+0x08]  do-not-enreg[X] addr-exposed "field V02._reference (fldOffset=0x0)" P-DEP
 ;  V39 tmp32        [V39    ] (  3, 13   )     int  ->  [sp+0x0C]  do-not-enreg[X] addr-exposed "field V02._length (fldOffset=0x4)" P-DEP
-;  V40 tmp33        [V40,T02] (  4, 25   )     ref  ->   r4         single-def "field V04._list (fldOffset=0x0)" P-INDEP
-;  V41 tmp34        [V41,T03] (  4, 20   )     ref  ->   r2         "field V04._current (fldOffset=0x4)" P-INDEP
+;  V40 tmp33        [V40,T03] (  4, 25   )     ref  ->   r4         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V41 tmp34        [V41,T02] (  4, 20   )     ref  ->   r2         "field V04._current (fldOffset=0x4)" P-INDEP
 ;  V42 tmp35        [V42,T00] (  6, 41   )     int  ->   r7         "field V04._index (fldOffset=0x8)" P-INDEP
-;  V43 tmp36        [V43,T05] (  3, 17   )     int  ->   r6         "field V04._version (fldOffset=0xc)" P-INDEP
-;  V44 tmp37        [V44,T13] (  2,  8   )   byref  ->   r0         "field V09._reference (fldOffset=0x0)" P-INDEP
-;  V45 tmp38        [V45,T15] (  2,  8   )     int  ->   r1         "field V09._length (fldOffset=0x4)" P-INDEP
+;  V43 tmp36        [V43,T13] (  2,  9   )     int  ->   r6         "field V04._version (fldOffset=0xc)" P-INDEP
+;  V44 tmp37        [V44,T14] (  2,  8   )   byref  ->   r0         "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V45 tmp38        [V45,T16] (  2,  8   )     int  ->   r1         "field V09._length (fldOffset=0x4)" P-INDEP
 ;* V46 tmp39        [V46    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V47 tmp40        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x4)" P-INDEP
-;  V48 tmp41        [V48,T24] (  3,  3   )     ref  ->   r4         single-def "field V13._list (fldOffset=0x0)" P-INDEP
+;  V48 tmp41        [V48,T25] (  3,  3   )     ref  ->   r4         single-def "field V13._list (fldOffset=0x0)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V13._current (fldOffset=0x4)" P-INDEP
-;* V50 tmp43        [V50,T26] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
-;  V51 tmp44        [V51,T25] (  2,  2   )     int  ->   r6         "field V13._version (fldOffset=0xc)" P-INDEP
+;* V50 tmp43        [V50,T27] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
+;  V51 tmp44        [V51,T26] (  2,  2   )     int  ->   r6         "field V13._version (fldOffset=0xc)" P-INDEP
 ;  V52 tmp45        [V52,T11] (  3, 12   )   byref  ->   r3         "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V53 tmp46        [V53,T06] (  4, 16   )     int  ->   lr         "field V14._length (fldOffset=0x4)" P-INDEP
-;  V54 tmp47        [V54,T14] (  2,  8   )   byref  ->   r3         "field V15._reference (fldOffset=0x0)" P-INDEP
-;  V55 tmp48        [V55,T16] (  2,  8   )     int  ->   lr         "field V15._length (fldOffset=0x4)" P-INDEP
+;  V53 tmp46        [V53,T05] (  4, 16   )     int  ->   lr         "field V14._length (fldOffset=0x4)" P-INDEP
+;  V54 tmp47        [V54,T15] (  2,  8   )   byref  ->   r3         "field V15._reference (fldOffset=0x0)" P-INDEP
+;  V55 tmp48        [V55,T17] (  2,  8   )     int  ->   lr         "field V15._length (fldOffset=0x4)" P-INDEP
 ;* V56 tmp49        [V56    ] (  0,  0   )   byref  ->  zero-ref    "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V57 tmp50        [V57    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x4)" P-INDEP
 ;* V58 tmp51        [V58    ] (  0,  0   )   byref  ->  zero-ref    "field V22._reference (fldOffset=0x0)" P-INDEP
@@ -79,19 +79,20 @@
 ;* V68 tmp61        [V68    ] (  0,  0   )   byref  ->  zero-ref    "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V69 tmp62        [V69    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x4)" P-INDEP
 ;  V70 tmp63        [V70,T01] (  3, 48   )     ref  ->   r2         "arr expr"
-;  V71 PSPSym       [V71,T27] (  1,  1   )     int  ->  [sp+0x14]  do-not-enreg[V] "PSPSym"
-;  V72 cse0         [V72,T04] (  3, 24   )     int  ->   r8         "CSE - aggressive"
+;  V71 PSPSym       [V71,T28] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
+;  V72 cse0         [V72,T09] (  2, 16   )     int  ->   r2         "CSE - aggressive"
+;  V73 cse1         [V73,T04] (  2, 16   )     int  ->   r2         "CSE - aggressive"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 20
 
 G_M58652_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r10,r11,lr}
-            sub     sp, 24
-            add     r11, sp, 48
+            push    {r4,r5,r6,r7,r10,r11,lr}
+            sub     sp, 20
+            add     r11, sp, 40
             movs    r2, 0
             str     r2, [sp+0x08]
-            add     r2, sp, 56
-            str     r2, [sp+0x14]
+            add     r2, sp, 48
+            str     r2, [sp+0x10]
             mov     r4, r0
             mov     r5, r1
                        ;; size=22 bbWeight=1 PerfScore 9.00
@@ -112,7 +113,7 @@ G_M58652_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcr arg pop 0
             ldrb    r2, [r5+0x04]
             cmp     r2, 0
-            beq     SHORT G_M58652_IG11
+            beq     SHORT G_M58652_IG10
             ldr     r4, [r5]
             ; gcrRegs +[r4]
             ldr     r6, [r4+0x0C]
@@ -150,15 +151,15 @@ G_M58652_IG06:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0009 {r0 r3},
             ; byrRegs -[r0-r1]
             ; gcr arg pop 0
             cmp     r0, 0
-            bne     SHORT G_M58652_IG14
+            bne     SHORT G_M58652_IG13
                         ;; size=26 bbWeight=4 PerfScore 40.00
 G_M58652_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r8, [r4+0x0C]
-            cmp     r6, r8
-            bne     SHORT G_M58652_IG10
+            ldr     r2, [r4+0x0C]
+            cmp     r6, r2
+            bne     SHORT G_M58652_IG09
             ldr     r2, [r4+0x08]
             cmp     r7, r2
-            bhs     SHORT G_M58652_IG11
+            bhs     SHORT G_M58652_IG10
             ldr     r2, [r4+0x04]
             ; gcrRegs +[r2]
             ldr     r0, [r2+0x04]
@@ -173,7 +174,7 @@ G_M58652_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ; byrRegs -[r2]
             adds    r7, r7, 1
             b       SHORT G_M58652_IG04
-                      ;; size=32 bbWeight=8 PerfScore 120.00
+                        ;; size=30 bbWeight=8 PerfScore 120.00
 G_M58652_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r2 r4]
             movw    r3, 0xd1ff
@@ -190,10 +191,6 @@ G_M58652_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
 G_M58652_IG10:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            cmp     r6, r8
-            bne     SHORT G_M58652_IG09
-                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M58652_IG11:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ldr     r4, [r5]
             ; gcrRegs +[r4]
             add     r0, sp, 8
@@ -214,9 +211,9 @@ G_M58652_IG11:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldr     r3, [r4+0x08]
             ldr     lr, [r0+0x04]
             cmp     lr, r3
-            bls     SHORT G_M58652_IG13
+            bls     SHORT G_M58652_IG12
                        ;; size=36 bbWeight=8 PerfScore 120.00
-G_M58652_IG12:        ; bbWeight=1, gcrefRegs=0013 {r0 r1 r4}, byrefRegs=0000 {}, byref, isz
+G_M58652_IG11:        ; bbWeight=1, gcrefRegs=0013 {r0 r1 r4}, byrefRegs=0000 {}, byref, isz
             add     lr, r3, 1
             str     lr, [r4+0x08]
             adds    r0, 8
@@ -229,9 +226,9 @@ G_M58652_IG12:        ; bbWeight=1, gcrefRegs=0013 {r0 r1 r4}, byrefRegs=0000 {}
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1 r4]
             ; byrRegs -[r0]
-            b       SHORT G_M58652_IG14
+            b       SHORT G_M58652_IG13
                       ;; size=26 bbWeight=1 PerfScore 9.00
-G_M58652_IG13:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref
+G_M58652_IG12:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r1 r4]
             mov     r0, r4
             ; gcrRegs +[r0]
@@ -242,24 +239,24 @@ G_M58652_IG13:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0-r1 r4]
             ; gcr arg pop 0
                        ;; size=14 bbWeight=1 PerfScore 5.00
-G_M58652_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M58652_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             add     r0, sp, 0
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_JIT_REVERSE_PINVOKE_EXIT
             ; gcr arg pop 0
                        ;; size=12 bbWeight=1 PerfScore 4.00
-G_M58652_IG15:        ; bbWeight=1, epilog, nogc, extend
-            add     sp, 24
-            pop     {r4,r5,r6,r7,r8,r10,r11,pc}
+G_M58652_IG14:        ; bbWeight=1, epilog, nogc, extend
+            add     sp, 20
+            pop     {r4,r5,r6,r7,r10,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M58652_IG16:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M58652_IG15:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             ; gcrRegs +[r0]
-            push    {r2,r3,r4,r5,r6,r7,r8,r10,r11,lr}
+            push    {r3,r4,r5,r6,r7,r10,r11,lr}
             add     r3, r11, 8
-            str     r3, [sp+0x04]
+            str     r3, [sp]
                      ;; size=10 bbWeight=0 PerfScore 0.00
-G_M58652_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
+G_M58652_IG16:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
             ldr     r3, [r0]
             ldr     r3, [r3+0x2C]
             ldr     r3, [r3+0x04]
@@ -271,14 +268,14 @@ G_M58652_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byr
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            movw    r0, LOW ADDRESS G_M58652_IG14
-            movt    r0, HIGH ADDRESS G_M58652_IG14
+            movw    r0, LOW ADDRESS G_M58652_IG13
+            movt    r0, HIGH ADDRESS G_M58652_IG13
                      ;; size=28 bbWeight=0 PerfScore 0.00
-G_M58652_IG18:        ; bbWeight=0, funclet epilog, nogc, extend
-            pop     {r2,r3,r4,r5,r6,r7,r8,r10,r11,pc}
+G_M58652_IG17:        ; bbWeight=0, funclet epilog, nogc, extend
+            pop     {r3,r4,r5,r6,r7,r10,r11,pc}
                         ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 310, prolog size 22, PerfScore 378.00, instruction count 119, allocated bytes for code 310 (MethodHash=943d1ae3) for method System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
+; Total bytes of code 304, prolog size 22, PerfScore 362.00, instruction count 117, allocated bytes for code 304 (MethodHash=943d1ae3) for method System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -290,12 +287,12 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 134 (0x00086) Actual length = 268 (0x00010c)
+  Function Length   : 131 (0x00083) Actual length = 262 (0x000106)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    06          add sp, sp, #24                     ; opsize 16
-    AD F0       pop {r4,r5,r6,r7,r8,r10,r11,lr}     ; opsize 32
+    05          add sp, sp, #20                     ; opsize 16
+    AC F0       pop {r4,r5,r6,r7,r10,r11,lr}        ; opsize 32
     FF          end
 
...
  
-8 (-1.31%) : 3199.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (Tier0-FullOpts)
@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 20 single block inlinees; 14 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T07] (  8, 14   )     ref  ->   r4         class-hnd exact single-def <<unknown class>>
-;  V01 loc1         [V01,T31] (  4,  1.50)     ref  ->  [sp+0x00]  class-hnd EH-live spill-single-def <System.Object>
+;  V00 loc0         [V00,T08] (  8, 14   )     ref  ->   r4         class-hnd exact single-def <<unknown class>>
+;  V01 loc1         [V01,T33] (  4,  1.50)     ref  ->  [sp+0x00]  class-hnd EH-live spill-single-def <System.Object>
 ;  V02 loc2         [V02    ] (  6,  5   )   ubyte  ->  [sp+0x04]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V03 loc3         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.WeakReference`1[System.Diagnostics.Tracing.EventSource]]>
 ;* V04 loc4         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.WeakReference`1[System.Diagnostics.Tracing.EventSource]>
@@ -17,55 +17,57 @@
 ;* V06 loc6         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.EventSource]>
 ;* V07 loc7         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Diagnostics.Tracing.EventSource>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T21] (  3,  6   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V10 tmp2         [V10,T26] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
+;  V09 tmp1         [V09,T23] (  3,  6   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V10 tmp2         [V10,T28] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
 ;* V11 tmp3         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V12 tmp4         [V12,T25] (  2,  4   )     ref  ->   r5         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V12 tmp4         [V12,T27] (  2,  4   )     ref  ->   r5         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V13 tmp5         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.WeakReference`1[System.Diagnostics.Tracing.EventSource]]>
 ;* V14 tmp6         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V15 tmp7         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
-;  V16 tmp8         [V16,T14] (  5, 10   )     ref  ->   r2         class-hnd "Inline return value spill temp" <System.Diagnostics.Tracing.EventSource>
-;  V17 tmp9         [V17,T09] (  5, 14   )     int  ->   r0         "Inline stloc first use temp"
+;  V16 tmp8         [V16,T15] (  5, 10   )     ref  ->   r2         class-hnd "Inline return value spill temp" <System.Diagnostics.Tracing.EventSource>
+;  V17 tmp9         [V17,T10] (  5, 14   )     int  ->   r0         "Inline stloc first use temp"
 ;* V18 tmp10        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Diagnostics.Tracing.EventSource>
-;  V19 tmp11        [V19,T22] (  3,  6   )     ref  ->   r2         class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
+;  V19 tmp11        [V19,T24] (  3,  6   )     ref  ->   r2         class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
 ;* V20 tmp12        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Diagnostics.Tracing.EventSource>
 ;* V21 tmp13        [V21    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Diagnostics.Tracing.EventSource>
 ;  V22 tmp14        [V22,T12] (  3, 12   )     ref  ->   r9         class-hnd "updating class info" <System.ComAwareWeakReference>
 ;* V23 tmp15        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp16        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V25 tmp17        [V25,T18] (  2,  8   )     ref  ->   r0         class-hnd "dup spill" <System.Object>
-;  V26 tmp18        [V26,T16] (  4,  8   )     ref  ->   r0        
-;  V27 tmp19        [V27,T23] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V28 tmp20        [V28,T17] (  4,  8   )     int  ->   r1         "Inline stloc first use temp"
+;  V25 tmp17        [V25,T20] (  2,  8   )     ref  ->   r0         class-hnd "dup spill" <System.Object>
+;  V26 tmp18        [V26,T18] (  4,  8   )     ref  ->   r0        
+;  V27 tmp19        [V27,T25] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V28 tmp20        [V28,T19] (  4,  8   )     int  ->   r1         "Inline stloc first use temp"
 ;* V29 tmp21        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Diagnostics.Tracing.EventSource>
-;* V30 tmp22        [V30,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V30 tmp22        [V30,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V31 tmp23        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;* V32 tmp24        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp25        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.EventSource]>
-;* V34 tmp26        [V34,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V34 tmp26        [V34,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V35 tmp27        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V36 tmp28        [V36,T04] (  4, 17   )     ref  ->   r5         single-def "field V03._list (fldOffset=0x0)" P-INDEP
-;  V37 tmp29        [V37,T10] (  3, 10   )     ref  ->   r8         "field V03._current (fldOffset=0x4)" P-INDEP
+;  V37 tmp29        [V37,T11] (  3, 10   )     ref  ->   r8         "field V03._current (fldOffset=0x4)" P-INDEP
 ;  V38 tmp30        [V38,T00] (  6, 21   )     int  ->   r7         "field V03._index (fldOffset=0x8)" P-INDEP
-;  V39 tmp31        [V39,T11] (  3, 13   )     int  ->   r6         "field V03._version (fldOffset=0xc)" P-INDEP
-;  V40 tmp32        [V40,T06] (  4, 17   )     ref  ->   r4         single-def "field V06._list (fldOffset=0x0)" P-INDEP
-;  V41 tmp33        [V41,T08] (  4, 10   )     ref  ->   r7         "field V06._current (fldOffset=0x4)" P-INDEP
+;  V39 tmp31        [V39,T16] (  2,  9   )     int  ->   r6         "field V03._version (fldOffset=0xc)" P-INDEP
+;  V40 tmp32        [V40,T05] (  4, 17   )     ref  ->   r4         single-def "field V06._list (fldOffset=0x0)" P-INDEP
+;  V41 tmp33        [V41,T09] (  4, 10   )     ref  ->   r7         "field V06._current (fldOffset=0x4)" P-INDEP
 ;  V42 tmp34        [V42,T01] (  6, 21   )     int  ->   r6         "field V06._index (fldOffset=0x8)" P-INDEP
-;  V43 tmp35        [V43,T15] (  2,  9   )     int  ->   r5         "field V06._version (fldOffset=0xc)" P-INDEP
-;  V44 tmp36        [V44,T27] (  3,  3   )     ref  ->   r5         single-def "field V13._list (fldOffset=0x0)" P-INDEP
+;  V43 tmp35        [V43,T17] (  2,  9   )     int  ->   r5         "field V06._version (fldOffset=0xc)" P-INDEP
+;  V44 tmp36        [V44,T29] (  3,  3   )     ref  ->   r5         single-def "field V13._list (fldOffset=0x0)" P-INDEP
 ;* V45 tmp37        [V45    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V13._current (fldOffset=0x4)" P-INDEP
-;* V46 tmp38        [V46,T32] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
-;  V47 tmp39        [V47,T29] (  2,  2   )     int  ->   r6         "field V13._version (fldOffset=0xc)" P-INDEP
-;  V48 tmp40        [V48,T28] (  3,  3   )     ref  ->   r4         single-def "field V33._list (fldOffset=0x0)" P-INDEP
+;* V46 tmp38        [V46,T34] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
+;  V47 tmp39        [V47,T31] (  2,  2   )     int  ->   r6         "field V13._version (fldOffset=0xc)" P-INDEP
+;  V48 tmp40        [V48,T30] (  3,  3   )     ref  ->   r4         single-def "field V33._list (fldOffset=0x0)" P-INDEP
 ;* V49 tmp41        [V49    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V33._current (fldOffset=0x4)" P-INDEP
-;* V50 tmp42        [V50,T33] (  0,  0   )     int  ->  zero-ref    "field V33._index (fldOffset=0x8)" P-INDEP
-;  V51 tmp43        [V51,T30] (  2,  2   )     int  ->   r5         "field V33._version (fldOffset=0xc)" P-INDEP
+;* V50 tmp42        [V50,T35] (  0,  0   )     int  ->  zero-ref    "field V33._index (fldOffset=0x8)" P-INDEP
+;  V51 tmp43        [V51,T32] (  2,  2   )     int  ->   r5         "field V33._version (fldOffset=0xc)" P-INDEP
 ;  V52 tmp44        [V52,T02] (  3, 24   )     ref  ->   r0         "arr expr"
 ;  V53 tmp45        [V53,T03] (  3, 24   )     ref  ->   r0         "arr expr"
-;  V54 PSPSym       [V54,T34] (  1,  1   )     int  ->  [sp+0x08]  do-not-enreg[V] "PSPSym"
+;  V54 PSPSym       [V54,T36] (  1,  1   )     int  ->  [sp+0x08]  do-not-enreg[V] "PSPSym"
 ;  V55 cse0         [V55,T13] (  2,  8   )     int  ->   r0         "CSE - moderate"
-;  V56 cse1         [V56,T05] (  3, 20   )     int  ->   r8         "CSE - aggressive"
-;  V57 cse2         [V57,T24] (  9,  4.50)     ref  ->   r1         multi-def "CSE - moderate"
+;  V56 cse1         [V56,T14] (  2,  8   )     int  ->   r0         "CSE - moderate"
+;  V57 cse2         [V57,T06] (  2, 16   )     int  ->   r0         "CSE - aggressive"
+;  V58 cse3         [V58,T07] (  2, 16   )     int  ->   r0         "CSE - aggressive"
+;  V59 cse4         [V59,T26] (  9,  4.50)     ref  ->   r1         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 12
 
@@ -116,7 +118,7 @@ G_M64982_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movs    r1, 0
             str     r1, [sp+0x04]  // [V02 loc2]
                        ;; size=80 bbWeight=1 PerfScore 26.00
-G_M64982_IG03:        ; bbWeight=1, gcVars=0000000080000000 {V01}, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M64982_IG03:        ; bbWeight=1, gcVars=0000000200000000 {V01}, gcrefRegs=0011 {r0 r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x04]  // [V02 loc2]
             cmp     r1, 0
             bne     SHORT G_M64982_IG12
@@ -172,19 +174,19 @@ G_M64982_IG07:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             movs    r7, 0
                        ;; size=14 bbWeight=1 PerfScore 5.00
 G_M64982_IG08:        ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ldr     r8, [r5+0x0C]
-            cmp     r6, r8
-            bne     SHORT G_M64982_IG18
-                       ;; size=8 bbWeight=8 PerfScore 24.00
+            ldr     r0, [r5+0x0C]
+            cmp     r6, r0
+            bne     SHORT G_M64982_IG19
+                       ;; size=6 bbWeight=8 PerfScore 24.00
 G_M64982_IG09:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r5+0x08]
             cmp     r7, r0
-            bhs     SHORT G_M64982_IG21
+            bhs     SHORT G_M64982_IG20
             ldr     r0, [r5+0x04]
             ; gcrRegs +[r0]
             ldr     r3, [r0+0x04]
             cmp     r7, r3
-            bhs     SHORT G_M64982_IG19
+            bhs     SHORT G_M64982_IG18
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -298,20 +300,14 @@ G_M64982_IG17:        ; bbWeight=2, gcrefRegs=0034 {r2 r4 r5}, byrefRegs=0000 {}
             ; gcr arg pop 0
             b       SHORT G_M64982_IG08
                        ;; size=18 bbWeight=2 PerfScore 14.00
-G_M64982_IG18:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r5]
-            cmp     r6, r8
-            bne     SHORT G_M64982_IG20
-            b       SHORT G_M64982_IG21
-                       ;; size=6 bbWeight=4 PerfScore 12.00
-G_M64982_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r4]
+G_M64982_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r4-r5]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M64982_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M64982_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -319,13 +315,13 @@ G_M64982_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M64982_IG21:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M64982_IG20:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4]
             ldrb    r0, [sp+0x04]  // [V02 loc2]
             cmp     r0, 0
-            beq     SHORT G_M64982_IG23
+            beq     SHORT G_M64982_IG22
                         ;; size=8 bbWeight=1 PerfScore 3.00
-G_M64982_IG22:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M64982_IG21:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ldr     r0, [sp] // [V01 loc1]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
@@ -335,7 +331,7 @@ G_M64982_IG22:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M64982_IG23:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M64982_IG22:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -349,9 +345,9 @@ G_M64982_IG23:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M64982_IG25
+            beq     SHORT G_M64982_IG24
                         ;; size=28 bbWeight=1 PerfScore 10.00
-G_M64982_IG24:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M64982_IG23:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
             mov     r0, r1
@@ -363,12 +359,12 @@ G_M64982_IG24:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M64982_IG25:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M64982_IG24:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r5, [r4+0x0C]
             movs    r6, 0
-            b       SHORT G_M64982_IG27
+            b       SHORT G_M64982_IG26
                         ;; size=6 bbWeight=1 PerfScore 3.00
-G_M64982_IG26:        ; bbWeight=2, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref
+G_M64982_IG25:        ; bbWeight=2, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r7]
             mov     r0, r7
             ; gcrRegs +[r0]
@@ -387,20 +383,20 @@ G_M64982_IG26:        ; bbWeight=2, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0 r7]
             ; gcr arg pop 0
                        ;; size=24 bbWeight=2 PerfScore 20.00
-G_M64982_IG27:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M64982_IG26:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x0C]
             cmp     r5, r0
-            bne     SHORT G_M64982_IG31
+            bne     SHORT G_M64982_IG30
                        ;; size=6 bbWeight=8 PerfScore 24.00
-G_M64982_IG28:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M64982_IG27:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4+0x08]
             cmp     r6, r0
-            bhs     SHORT G_M64982_IG29
+            bhs     SHORT G_M64982_IG28
             ldr     r0, [r4+0x04]
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x04]
             cmp     r6, r1
-            bhs     SHORT G_M64982_IG30
+            bhs     SHORT G_M64982_IG29
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -408,21 +404,21 @@ G_M64982_IG28:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ldr     r7, [r0+r1]
             ; gcrRegs +[r7]
             adds    r6, r6, 1
-            b       SHORT G_M64982_IG26
+            b       SHORT G_M64982_IG25
                         ;; size=24 bbWeight=4 PerfScore 48.00
-G_M64982_IG29:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M64982_IG28:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r4 r7]
             ; byrRegs -[r0]
             add     sp, 12
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=4 PerfScore 8.00
-G_M64982_IG30:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M64982_IG29:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
...
  
+2 (+0.18%) : 6875.dasm - System.Text.RegularExpressions.RegexNode:g_ExtractCommonPrefixOneNotoneSet|411(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (Tier0-FullOpts)
@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 39 single block inlinees; 18 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T28] ( 15, 23   )     ref  ->   r4         class-hnd single-def <System.Text.RegularExpressions.RegexNode>
+;  V00 arg0         [V00,T34] ( 14, 21   )     ref  ->   r4         class-hnd single-def <System.Text.RegularExpressions.RegexNode>
 ;  V01 loc0         [V01,T02] ( 16,137.50)     ref  ->   r5         class-hnd single-def <<unknown class>>
 ;* V02 loc1         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Text.RegularExpressions.RegexNode]>
 ;* V03 loc2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
@@ -16,7 +16,7 @@
 ;  V05 loc4         [V05,T22] ( 14, 42   )     int  ->   r6        
 ;  V06 loc5         [V06,T07] ( 11,110   )     ref  ->   r8         class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V07 loc6         [V07,T03] ( 12,122   )     int  ->   r7        
-;  V08 loc7         [V08,T30] (  5, 24   )     ref  ->   r9         class-hnd <System.Text.RegularExpressions.RegexNode>
+;  V08 loc7         [V08,T29] (  5, 24   )     ref  ->   r9         class-hnd <System.Text.RegularExpressions.RegexNode>
 ;* V09 loc8         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V10 loc9         [V10,T45] (  4, 12   )   ubyte  ->   r0        
 ;* V11 loc10        [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
@@ -24,8 +24,8 @@
 ;  V13 loc12        [V13,T59] (  3,  6   )     ref  ->   r0         class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;* V14 loc13        [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V15 OutArgs      [V15    ] (  1,  1   )  struct ( 4) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V16 tmp1         [V16,T64] (  3,  4.25)     ref  ->   r1         single-def "CASTCLASS eval op1"
-;  V17 tmp2         [V17,T65] (  3,  1.25)     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V16 tmp1         [V16,T65] (  3,  4.25)     ref  ->   r1         single-def "CASTCLASS eval op1"
+;  V17 tmp2         [V17,T66] (  3,  1.25)     int  ->   r3         "fgMakeTemp is creating a new local variable"
 ;  V18 tmp3         [V18,T58] (  5,  6.75)     ref  ->   r5         class-hnd "spilling QMark2" <<unknown class>>
 ;* V19 tmp4         [V19    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V20 tmp5         [V20    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
@@ -50,7 +50,7 @@
 ;* V39 tmp24        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V40 tmp25        [V40,T47] (  4, 11   )     ref  ->   r7         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V41 tmp26        [V41,T49] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V42 tmp27        [V42,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V42 tmp27        [V42,T63] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V43 tmp28        [V43,T39] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V44 tmp29        [V44,T04] (  8,112   )     ref  ->   r2         class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
 ;  V45 tmp30        [V45,T13] (  3, 80   )     ref  ->   r0         class-hnd "Inlining Arg" <System.__Canon>
@@ -75,21 +75,21 @@
 ;  V64 tmp49        [V64,T56] (  2,  8   )     int  ->   r0         "Inlining Arg"
 ;  V65 tmp50        [V65,T57] (  2,  8   )     int  ->   r0         "Inlining Arg"
 ;  V66 tmp51        [V66,T41] (  4, 16   )     ref  ->   r8         class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-;  V67 tmp52        [V67,T53] (  2,  8   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V68 tmp53        [V68,T48] (  3, 10   )     ref  ->   r1         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
+;  V67 tmp52        [V67,T53] (  2,  8   )     ref  ->   r0         "CASTCLASS eval op1"
+;  V68 tmp53        [V68,T48] (  3, 10   )     ref  ->   r0         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V69 tmp54        [V69,T50] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V70 tmp55        [V70,T63] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V70 tmp55        [V70,T64] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
 ;  V71 tmp56        [V71,T27] (  8, 27   )     ref  ->   r9         class-hnd "spilling QMark2" <<unknown class>>
-;* V72 tmp57        [V72,T68] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._list (fldOffset=0x0)" P-INDEP
+;* V72 tmp57        [V72,T69] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._list (fldOffset=0x0)" P-INDEP
 ;  V73 tmp58        [V73,T44] (  3,  8   )     ref  ->   r1         "field V02._current (fldOffset=0x4)" P-INDEP
-;  V74 tmp59        [V74,T29] (  6, 20.50)     int  ->   r6         "field V02._index (fldOffset=0x8)" P-INDEP
-;* V75 tmp60        [V75,T70] (  0,  0   )     int  ->  zero-ref    "field V02._version (fldOffset=0xc)" P-INDEP
-;* V76 tmp61        [V76,T69] (  0,  0   )     ref  ->  zero-ref    single-def "field V31._list (fldOffset=0x0)" P-INDEP
+;  V74 tmp59        [V74,T28] (  6, 20.50)     int  ->   r6         "field V02._index (fldOffset=0x8)" P-INDEP
+;* V75 tmp60        [V75,T71] (  0,  0   )     int  ->  zero-ref    "field V02._version (fldOffset=0xc)" P-INDEP
+;* V76 tmp61        [V76,T70] (  0,  0   )     ref  ->  zero-ref    single-def "field V31._list (fldOffset=0x0)" P-INDEP
 ;* V77 tmp62        [V77    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V31._current (fldOffset=0x4)" P-INDEP
-;* V78 tmp63        [V78,T71] (  0,  0   )     int  ->  zero-ref    "field V31._index (fldOffset=0x8)" P-INDEP
-;* V79 tmp64        [V79,T66] (  0,  0   )     int  ->  zero-ref    "field V31._version (fldOffset=0xc)" P-INDEP
-;  V80 tmp65        [V80,T31] (  3, 24   )     ref  ->   r1         "arr expr"
-;  V81 tmp66        [V81,T32] (  3, 24   )     ref  ->   r0         "arr expr"
+;* V78 tmp63        [V78,T72] (  0,  0   )     int  ->  zero-ref    "field V31._index (fldOffset=0x8)" P-INDEP
+;* V79 tmp64        [V79,T67] (  0,  0   )     int  ->  zero-ref    "field V31._version (fldOffset=0xc)" P-INDEP
+;  V80 tmp65        [V80,T30] (  3, 24   )     ref  ->   r1         "arr expr"
+;  V81 tmp66        [V81,T31] (  3, 24   )     ref  ->   r0         "arr expr"
 ;  V82 tmp67        [V82,T46] (  3, 12   )     ref  ->   r0         "arr expr"
 ;  V83 tmp68        [V83,T08] (  3, 96   )     ref  ->   r0         "arr expr"
 ;  V84 tmp69        [V84,T19] (  3, 48   )     ref  ->   r2         "arr expr"
@@ -100,11 +100,12 @@
 ;  V89 tmp74        [V89,T17] (  2, 64   )     ref  ->   r1         "argument with side effect"
 ;  V90 cse0         [V90,T18] (  4, 56   )     int  ->   r0         "CSE - moderate"
 ;  V91 cse1         [V91,T20] (  3, 48   )     int  ->   r0         "CSE - moderate"
-;* V92 cse2         [V92,T67] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
-;  V93 cse3         [V93,T33] (  3, 24   )     ref  ->   r2         "CSE - moderate"
+;* V92 cse2         [V92,T68] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
+;  V93 cse3         [V93,T32] (  3, 24   )     ref  ->   r2         "CSE - moderate"
 ;  V94 cse4         [V94,T42] (  3, 12   )     int  ->   r7         "CSE - conservative"
 ;  V95 cse5         [V95,T61] (  3,  6   )     ref  ->   r1         "CSE - conservative"
-;  V96 cse6         [V96,T34] (  3, 24   )     int  ->   r2         "CSE - moderate"
+;  V96 cse6         [V96,T62] (  3,  6   )     ref  ->   r1         "CSE - conservative"
+;  V97 cse7         [V97,T33] (  3, 24   )     int  ->   r2         "CSE - moderate"
 ;
 ; Lcl frame size = 20
 
@@ -696,20 +697,26 @@ G_M3603_IG41:        ; bbWeight=2, gcrefRegs=0330 {r4 r5 r8 r9}, byrefRegs=0000
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            ldr     r1, [r4+0x04]
+            ldr     r2, [r4+0x04]
+            ; gcrRegs +[r2]
+            mov     r1, r2
             ; gcrRegs +[r1]
-            cmp     r1, 0
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            cmp     r0, 0
             beq     SHORT G_M3603_IG44
-                      ;; size=118 bbWeight=2 PerfScore 82.00
-G_M3603_IG42:        ; bbWeight=1, gcrefRegs=0132 {r1 r4 r5 r8}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [r1]
-            ; gcrRegs -[r1]
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            cmp     r1, r0
+                       ;; size=122 bbWeight=2 PerfScore 86.00
+G_M3603_IG42:        ; bbWeight=1, gcrefRegs=0133 {r0 r1 r4 r5 r8}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2]
+            ldr     r0, [r0]
+            ; gcrRegs -[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            cmp     r0, r3
             bne     SHORT G_M3603_IG44
                        ;; size=14 bbWeight=1 PerfScore 5.00
 G_M3603_IG43:        ; bbWeight=2, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r1]
             adds    r0, r4, 4
             ; byrRegs +[r0]
             mov     r1, r8
@@ -721,15 +728,13 @@ G_M3603_IG43:        ; bbWeight=2, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {},
             ; byrRegs -[r0]
             b       SHORT G_M3603_IG48
                        ;; size=16 bbWeight=2 PerfScore 12.00
-G_M3603_IG44:        ; bbWeight=2, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r8]
-            ldr     r1, [r4+0x04]
-            ; gcrRegs +[r1]
+G_M3603_IG44:        ; bbWeight=2, gcrefRegs=0132 {r1 r4 r5 r8}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r1 r8]
             mov     r9, r1
             ; gcrRegs +[r9]
             cmp     r9, 0
             beq     SHORT G_M3603_IG47
-                       ;; size=10 bbWeight=2 PerfScore 8.00
+                      ;; size=8 bbWeight=2 PerfScore 6.00
 G_M3603_IG45:        ; bbWeight=1, gcrefRegs=0332 {r1 r4 r5 r8 r9}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r9]
             movw    r3, 0xd1ff
@@ -819,7 +824,7 @@ G_M3603_IG53:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1110, prolog size 12, PerfScore 2413.38, instruction count 428, allocated bytes for code 1110 (MethodHash=ab1ef1ec) for method System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (Tier0-FullOpts)
+; Total bytes of code 1112, prolog size 12, PerfScore 2415.38, instruction count 429, allocated bytes for code 1112 (MethodHash=ab1ef1ec) for method System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -831,7 +836,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 555 (0x0022b) Actual length = 1110 (0x000456)
+  Function Length   : 556 (0x0022c) Actual length = 1112 (0x000458)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+2 (+0.21%) : 6889.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
@@ -8,12 +8,12 @@
 ; 0 inlinees with PGO data; 14 single block inlinees; 15 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T57] (  4,  3   )     ref  ->   r4         this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
-;  V01 loc0         [V01,T00] ( 27, 93   )     ref  ->   r4         class-hnd <System.Text.RegularExpressions.RegexNode>
+;  V00 this         [V00,T58] (  4,  3   )     ref  ->   r4         this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
+;  V01 loc0         [V01,T00] ( 26, 91   )     ref  ->   r4         class-hnd <System.Text.RegularExpressions.RegexNode>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V03 loc2         [V03,T32] (  3, 12   )   ubyte  ->   r0        
 ;  V04 loc3         [V04,T26] (  4, 12   )   ubyte  ->   r0        
-;* V05 loc4         [V05,T63] (  0,  0   )   ubyte  ->  zero-ref   
+;* V05 loc4         [V05,T64] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V07 loc6         [V07,T12] (  3, 24   )     int  ->   r6        
 ;  V08 loc7         [V08,T01] (  7, 76   )     int  ->   r5        
@@ -25,7 +25,7 @@
 ;* V14 tmp4         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V15 tmp5         [V15,T34] (  4, 11   )     ref  ->   r4         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V16 tmp6         [V16,T41] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V17 tmp7         [V17,T58] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V17 tmp7         [V17,T59] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V18 tmp8         [V18,T16] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V19 tmp9         [V19,T39] (  4, 10   )     int  ->   r6         "Inline return value spill temp"
 ;  V20 tmp10        [V20,T52] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
@@ -34,7 +34,7 @@
 ;* V23 tmp13        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V24 tmp14        [V24,T35] (  4, 11   )     ref  ->   r7         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V25 tmp15        [V25,T42] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V26 tmp16        [V26,T59] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V26 tmp16        [V26,T60] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V27 tmp17        [V27,T17] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V28 tmp18        [V28,T14] (  4, 20   )     int  ->   r6         "Inlining Arg"
 ;* V29 tmp19        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
@@ -42,10 +42,10 @@
 ;  V31 tmp21        [V31,T46] (  4,  8   )     int  ->   r7         "Inline return value spill temp"
 ;  V32 tmp22        [V32,T53] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V33 tmp23        [V33,T21] (  4, 16   )     ref  ->   r6         class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-;  V34 tmp24        [V34,T50] (  2,  8   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V35 tmp25        [V35,T38] (  3, 10   )     ref  ->   r1         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
+;  V34 tmp24        [V34,T50] (  2,  8   )     ref  ->   r0         "CASTCLASS eval op1"
+;  V35 tmp25        [V35,T38] (  3, 10   )     ref  ->   r0         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V36 tmp26        [V36,T43] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V37 tmp27        [V37,T60] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V37 tmp27        [V37,T61] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
 ;  V38 tmp28        [V38,T10] (  8, 27   )     ref  ->   r4         class-hnd "spilling QMark2" <<unknown class>>
 ;  V39 tmp29        [V39,T33] (  3, 12   )     int  ->   r7         "Inlining Arg"
 ;  V40 tmp30        [V40,T40] (  4, 10   )     int  ->   r6         "Inline return value spill temp"
@@ -62,7 +62,7 @@
 ;* V51 tmp41        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V52 tmp42        [V52,T36] (  4, 11   )     ref  ->   r3         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V53 tmp43        [V53,T44] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V54 tmp44        [V54,T61] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V54 tmp44        [V54,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V55 tmp45        [V55,T18] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;* V56 tmp46        [V56    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V57 tmp47        [V57,T49] (  3,  8   )     ref  ->   r4         class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
@@ -70,7 +70,7 @@
 ;* V59 tmp49        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V60 tmp50        [V60,T37] (  4, 11   )     ref  ->   r4         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V61 tmp51        [V61,T45] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V62 tmp52        [V62,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V62 tmp52        [V62,T63] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V63 tmp53        [V63,T19] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V64 tmp54        [V64,T28] (  3, 12   )     ref  ->   r1         "arr expr"
 ;  V65 tmp55        [V65,T29] (  3, 12   )     ref  ->   r0         "arr expr"
@@ -81,7 +81,8 @@
 ;  V70 cse1         [V70,T07] (  3, 40   )     ref  ->   r1         "CSE - aggressive"
 ;  V71 cse2         [V71,T55] (  3,  6   )     ref  ->   r0         "CSE - conservative"
 ;  V72 cse3         [V72,T56] (  3,  6   )     ref  ->   r1         "CSE - conservative"
-;  V73 rat0         [V73,T13] (  3, 24   )     int  ->   r5         "ReplaceWithLclVar is creating a new local variable"
+;  V73 cse4         [V73,T57] (  3,  6   )     ref  ->   r1         "CSE - conservative"
+;  V74 rat0         [V74,T13] (  3, 24   )     int  ->   r5         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -109,7 +110,7 @@ G_M35244_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs -[r4]
             pop     {r4,r5,r6,r7,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG05:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35244_IG05:        ; bbWeight=4, gcVars=000000000000000000000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r4]
             ldrb    r0, [r4+0x1E]
             subs    r3, r0, 3
@@ -397,20 +398,26 @@ G_M35244_IG30:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            ldr     r1, [r4+0x04]
+            ldr     r2, [r4+0x04]
+            ; gcrRegs +[r2]
+            mov     r1, r2
             ; gcrRegs +[r1]
-            cmp     r1, 0
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            cmp     r0, 0
             beq     SHORT G_M35244_IG33
-                     ;; size=56 bbWeight=2 PerfScore 40.00
-G_M35244_IG31:        ; bbWeight=1, gcrefRegs=0072 {r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [r1]
-            ; gcrRegs -[r1]
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            cmp     r1, r0
+                       ;; size=60 bbWeight=2 PerfScore 44.00
+G_M35244_IG31:        ; bbWeight=1, gcrefRegs=0073 {r0 r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2]
+            ldr     r0, [r0]
+            ; gcrRegs -[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            cmp     r0, r3
             bne     SHORT G_M35244_IG33
                        ;; size=14 bbWeight=1 PerfScore 5.00
 G_M35244_IG32:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r1]
             adds    r0, r4, 4
             ; byrRegs +[r0]
             mov     r1, r6
@@ -422,14 +429,13 @@ G_M35244_IG32:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             ; byrRegs -[r0]
             b       SHORT G_M35244_IG37
                        ;; size=16 bbWeight=2 PerfScore 12.00
-G_M35244_IG33:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r4 r6]
-            ldr     r1, [r4+0x04]
-            ; gcrRegs +[r1]
+G_M35244_IG33:        ; bbWeight=2, gcrefRegs=0062 {r1 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r1 r6]
             mov     r4, r1
+            ; gcrRegs +[r4]
             cmp     r4, 0
             beq     SHORT G_M35244_IG36
-                      ;; size=8 bbWeight=2 PerfScore 8.00
+                       ;; size=6 bbWeight=2 PerfScore 6.00
 G_M35244_IG34:        ; bbWeight=1, gcrefRegs=0072 {r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4]
             movw    r3, 0xd1ff
@@ -748,7 +754,7 @@ G_M35244_IG68:        ; bbWeight=0.50, epilog, nogc, extend
             bx      r3     // <unknown method>
             ; gcr arg pop 0
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M35244_IG69:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG69:        ; bbWeight=0, gcVars=000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0 r4]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -776,7 +782,7 @@ RWD00   dd  G_M35244_IG38
            dd  G_M35244_IG38
 
 
-; Total bytes of code 938, prolog size 10, PerfScore 1002.00, instruction count 372, allocated bytes for code 938 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
+; Total bytes of code 940, prolog size 10, PerfScore 1004.00, instruction count 373, allocated bytes for code 940 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -788,7 +794,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 469 (0x001d5) Actual length = 938 (0x0003aa)
+  Function Length   : 470 (0x001d6) Actual length = 940 (0x0003ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+14 (+3.03%) : 11723.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (Tier0-FullOpts)
@@ -12,22 +12,22 @@
 ;  V01 arg1         [V01,T13] (  4,  3   )     int  ->   r6         single-def
 ;  V02 arg2         [V02,T11] (  3,  4   )     int  ->   r4         single-def
 ;  V03 arg3         [V03,T12] (  5,  3.50)     int  ->   r5         single-def
-;  V04 arg4         [V04,T22] (  1,  0.50)     int  ->  [sp+0x38]  single-def
+;  V04 arg4         [V04,T22] (  1,  0.50)     int  ->  [sp+0x30]  single-def
 ;* V05 loc0         [V05    ] (  0,  0   )     int  ->  zero-ref   
 ;  V06 loc1         [V06,T16] (  3,  1.50)     int  ->   r7        
 ;* V07 loc2         [V07,T23] (  0,  0   )     ref  ->  zero-ref    class-hnd exact EH-live single-def <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V08 loc3         [V08    ] (  6,  2.50)   ubyte  ->  [sp+0x0C]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V09 loc4         [V09,T14] (  3,  4.50)     ref  ->   r6         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
 ;  V10 loc5         [V10,T02] ( 10, 13.25)     int  ->  registers  
-;  V11 loc6         [V11,T07] (  5, 10   )     ref  ->   r5         class-hnd <System.Array>
-;  V12 loc7         [V12,T08] (  4,  8   )     int  ->   r3        
+;  V11 loc6         [V11,T06] (  5, 10   )     ref  ->  registers   class-hnd <System.Array>
+;  V12 loc7         [V12,T08] (  4,  8   )     int  ->   r1        
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct ( 4) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V14 tmp1         [V14,T17] (  3,  1.50)     int  ->   r7        
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V17 tmp4         [V17,T18] (  3,  1.50)     int  ->   r4        
 ;  V18 tmp5         [V18,T00] (  3, 24   )     int  ->   r8         "impSpillLclRefs"
-;  V19 tmp6         [V19,T03] (  3, 12   )     ref  ->   r1         class-hnd "impSpillLclRefs" <<unknown class>>
+;  V19 tmp6         [V19,T03] (  3, 12   )     ref  ->   r3         class-hnd "impSpillLclRefs" <<unknown class>>
 ;  V20 tmp7         [V20,T09] (  2,  8   )     int  ->   r2         "impAppendStmt"
 ;  V21 tmp8         [V21,T15] (  2,  2   )   ubyte  ->   r0         "Inlining Arg"
 ;* V22 tmp9         [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -35,19 +35,19 @@
 ;  V24 tmp11        [V24,T10] (  2,  8   )     int  ->   r3         "Inlining Arg"
 ;  V25 tmp12        [V25,T04] (  3, 12   )     ref  ->   r3         "arr expr"
 ;  V26 tmp13        [V26,T05] (  3, 12   )     int  ->   r2         "index expr"
-;  V27 PSPSym       [V27,T21] (  1,  1   )     int  ->  [sp+0x14]  do-not-enreg[V] "PSPSym"
-;  V28 cse0         [V28,T06] (  4, 10.50)     int  ->   r5         "CSE - aggressive"
+;  V27 PSPSym       [V27,T21] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
+;  V28 cse0         [V28,T07] (  3, 10   )     int  ->   r1         "CSE - aggressive"
 ;  V29 cse1         [V29,T19] (  3,  1.50)     int  ->   r1         "CSE - moderate"
 ;  V30 cse2         [V30,T20] (  3,  1.50)     int  ->   r1         "CSE - moderate"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 20
 
 G_M62513_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r9,r11,lr}
-            sub     sp, 24
-            add     r11, sp, 48
-            add     r4, sp, 56
-            str     r4, [sp+0x14]  // [V27 PSPSym]
+            push    {r4,r5,r6,r7,r8,r11,lr}
+            sub     sp, 20
+            add     r11, sp, 40
+            add     r4, sp, 48
+            str     r4, [sp+0x10]  // [V27 PSPSym]
             str     r0, [sp+0x08]    // [V00 this]
             ; GC ptr vars +{V00}
             mov     r6, r1
@@ -63,8 +63,8 @@ G_M62513_IG02:        ; bbWeight=1, gcVars=00000002 {V00}, gcrefRegs=0001 {r0},
 G_M62513_IG03:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
             ; gcrRegs -[r0]
             ; GC ptr vars -{V00}
-            add     sp, 24
-            pop     {r4,r5,r6,r7,r8,r9,r11,pc}
+            add     sp, 20
+            pop     {r4,r5,r6,r7,r8,r11,pc}
                         ;; size=6 bbWeight=1 PerfScore 2.00
 G_M62513_IG04:        ; bbWeight=0.50, gcVars=00000002 {V00}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r0]
@@ -109,12 +109,12 @@ G_M62513_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x0C]
             cmp     r1, 0
-            beq     G_M62513_IG22
+            beq     G_M62513_IG23
             ldr     r1, [r0+0x10]
             cmp     r1, 0
             bne     SHORT G_M62513_IG12
             str     r6, [r0+0x10]
-            b       SHORT G_M62513_IG22
+            b       SHORT G_M62513_IG23
                         ;; size=20 bbWeight=0.50 PerfScore 4.50
 G_M62513_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
@@ -141,7 +141,7 @@ G_M62513_IG12:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             ; gcrRegs +[r0]
             subs    r1, r6, r1
             cmp     r1, r7
-            ble     SHORT G_M62513_IG22
+            ble     SHORT G_M62513_IG23
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
             ldr     r6, [r1]
@@ -152,7 +152,7 @@ G_M62513_IG12:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             cmp     r5, 2
             bne     SHORT G_M62513_IG17
             mov     r8, 32
-            ldr     r5, [sp+0x38]  // [V04 arg4]
+            ldr     r5, [sp+0x30]    // [V04 arg4]
             cmp     r5, 0x4000
             ble     SHORT G_M62513_IG13
             mov     r8, 33
@@ -172,34 +172,34 @@ G_M62513_IG14:        ; bbWeight=1.75, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}
             b       SHORT G_M62513_IG17
                        ;; size=6 bbWeight=1.75 PerfScore 3.50
 G_M62513_IG15:        ; bbWeight=2, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [r0+0x04]
-            ; gcrRegs +[r1]
-            subs    r3, r5, 1
-            str     r3, [r0+0x0C]
-            ldr     r2, [r1+0x04]
-            cmp     r3, r2
+            ldr     r3, [r0+0x04]
+            ; gcrRegs +[r3]
+            subs    r1, r1, 1
+            str     r1, [r0+0x0C]
+            ldr     r2, [r3+0x04]
+            cmp     r1, r2
             bhs     SHORT G_M62513_IG10
-            adds    r1, 8
-            ; gcrRegs -[r1]
-            ; byrRegs +[r1]
-            lsls    r3, r3, 2
-            ldr     r5, [r1+r3]
-            ; gcrRegs +[r5]
-            cmp     r5, 0
+            adds    r3, 8
+            ; gcrRegs -[r3]
+            ; byrRegs +[r3]
+            lsls    r1, r1, 2
+            ldr     r8, [r3+r1]
+            ; gcrRegs +[r8]
+            cmp     r8, 0
             bne     SHORT G_M62513_IG16
             movw    r0, 0xd1ff
             ; gcrRegs -[r0]
             movt    r0, 0xd1ff
             movw    r1, 0xd1ff
-            ; byrRegs -[r1]
             movt    r1, 0xd1ff
             movw    r3, 0xd1ff
+            ; byrRegs -[r3]
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
-                      ;; size=50 bbWeight=2 PerfScore 38.00
-G_M62513_IG16:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
+                        ;; size=54 bbWeight=2 PerfScore 38.00
+G_M62513_IG16:        ; bbWeight=2, gcrefRegs=0140 {r6 r8}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [sp+0x08] // [V00 this]
             ; gcrRegs +[r0]
             ldr     r3, [r0+0x04]
@@ -217,9 +217,15 @@ G_M62513_IG16:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
             ldrb    r3, [r6+0x5D]
             ; byrRegs -[r3]
             cmp     r3, 0
-            mov     r8, r9
-            beq     SHORT G_M62513_IG17
+            beq     SHORT G_M62513_IG19
             mov     r0, r5
+            ; gcrRegs -[r0]
+            mov     r5, r8
+            ; gcrRegs +[r5]
+            mov     r8, r0
+            ; gcrRegs -[r8]
+            mov     r0, r5
+            ; gcrRegs +[r0]
             ldr     r3, [r5]
             ldr     r3, [r3+0x2C]
             ldr     r3, [r3+0x0C]
@@ -241,29 +247,35 @@ G_M62513_IG16:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
             blx     lr     // <unknown method>
             ; gcrRegs -[r0 r5]
             ; gcr arg pop 0
-                      ;; size=70 bbWeight=2 PerfScore 62.00
-G_M62513_IG17:        ; bbWeight=4, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [sp+0x08]    // [V00 this]
             ; gcrRegs +[r0]
-            ldr     r5, [r0+0x0C]
-            cmp     r5, 0
-            ble     SHORT G_M62513_IG19
-            add     r1, r8, -1
-            mov     r9, r1
+                       ;; size=76 bbWeight=2 PerfScore 68.00
+G_M62513_IG17:        ; bbWeight=4, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}, byref, isz
+            ldr     r1, [r0+0x0C]
+            cmp     r1, 0
+            ble     SHORT G_M62513_IG20
+            add     r3, r8, -1
+            mov     r5, r3
             cmp     r8, 0
             bgt     SHORT G_M62513_IG15
-                      ;; size=20 bbWeight=4 PerfScore 32.00
+                     ;; size=18 bbWeight=4 PerfScore 28.00
 G_M62513_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r6]
-            b       SHORT G_M62513_IG20
-                       ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M62513_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            cmp     r5, 0
-            bgt     SHORT G_M62513_IG20
-            movs    r4, 0
             b       SHORT G_M62513_IG21
-                     ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M62513_IG20:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+                     ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M62513_IG19:        ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0] +[r6]
+            mov     r8, r5
+            ldr     r0, [sp+0x08]  // [V00 this]
+            ; gcrRegs +[r0]
+            b       SHORT G_M62513_IG17
+                       ;; size=6 bbWeight=1 PerfScore 3.00
+G_M62513_IG20:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r6]
+            movs    r4, 0
+            b       SHORT G_M62513_IG22
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M62513_IG21:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
             ldr     r4, [r0+0x10]
             mov     r0, r7
             ; gcrRegs -[r0]
@@ -276,10 +288,10 @@ G_M62513_IG20:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             ldr     r0, [sp+0x08]  // [V00 this]
             ; gcrRegs +[r0]
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M62513_IG21:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+G_M62513_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
             str     r4, [r0+0x10]
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M62513_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+G_M62513_IG23:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ldrb    r3, [sp+0x0C]   // [V08 loc3]
             cmp     r3, 0
             beq     G_M62513_IG03
@@ -291,17 +303,18 @@ G_M62513_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             ; gcr arg pop 0
             b       SHORT G_M62513_IG03
                        ;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M62513_IG23:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M62513_IG24:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
             ; GC ptr vars +{V00 V01}
-            push    {r2,r3,r4,r5,r6,r7,r8,r9,r11,lr}
+            push    {r4,r5,r6,r7,r8,r11,lr}
+            sub     sp, 12
             add     r3, r11, 8
-            str     r3, [sp+0x04]
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M62513_IG24:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldrb    r0, [r11-0x24] // [V08 loc3]
+            str     r3, [sp+0x08]
+                       ;; size=12 bbWeight=0 PerfScore 0.00
...
  
  
coreclr_tests.run.linux.arm.checked.mch
-32 (-19.75%) : 418649.dasm - Program:M49() (FullOpts)
@@ -10,11 +10,12 @@
 ;  V00 loc0         [V00,T01] (  4, 13   )     int  ->   r4        
 ;* V01 loc1         [V01    ] (  0,  0   )    long  ->  zero-ref   
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  3, 12   )     ref  ->   r2         "arr expr"
-;  V04 tmp2         [V04,T00] (  3, 24   )     ref  ->   r3         "arr expr"
-;  V05 PSPSym       [V05,T05] (  1,  1   )     int  ->  [sp+0x04]  do-not-enreg[V] "PSPSym"
-;  V06 cse0         [V06,T03] (  3, 12   )     int  ->   r3         "CSE - aggressive"
-;  V07 cse1         [V07,T04] (  4,  9   )     int  ->   r5         hoist "CSE - aggressive"
+;  V03 tmp1         [V03,T00] (  3, 24   )     ref  ->   r3         "arr expr"
+;* V04 tmp2         [V04,T05] (  0,  0   )     ref  ->  zero-ref    "arr expr"
+;  V05 PSPSym       [V05,T06] (  1,  1   )     int  ->  [sp+0x04]  do-not-enreg[V] "PSPSym"
+;  V06 cse0         [V06,T02] (  3, 12   )   byref  ->   r3         "CSE - aggressive"
+;  V07 cse1         [V07,T03] (  2,  8   )     ref  ->   r3         "CSE - aggressive"
+;  V08 cse2         [V08,T04] (  4,  9   )     int  ->   r5         hoist "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -32,7 +33,7 @@ G_M37813_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             cmp     r0, 0
-            ble     SHORT G_M37813_IG09
+            ble     SHORT G_M37813_IG07
                         ;; size=18 bbWeight=1 PerfScore 7.00
 G_M37813_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r5, 0xd1ff
@@ -41,34 +42,7 @@ G_M37813_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
 G_M37813_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ldrb    r3, [r5]
             cmp     r3, 0
-            bne     SHORT G_M37813_IG07
-                       ;; size=6 bbWeight=4 PerfScore 12.00
-G_M37813_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            movw    r2, 0xd1ff
-            movt    r2, 0xd1ff
-            ldr     r2, [r2]
-            ; gcrRegs +[r2]
-            movs    r1, 0
-            ldr     r0, [r2+0x04]
-            cmp     r1, r0
-            bhs     SHORT G_M37813_IG14
-                       ;; size=18 bbWeight=2 PerfScore 14.00
-G_M37813_IG06:        ; bbWeight=2, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, byref
-            str     r1, [r2+0x08]
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M37813_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r2]
-            cmp     r3, 0
-            beq     SHORT G_M37813_IG10
-                       ;; size=4 bbWeight=4 PerfScore 8.00
-G_M37813_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movs    r3, 0
-            str     r3, [r5-0x08]
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M37813_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            pop     {r2,r3,r4,r5,r11,pc}
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M37813_IG10:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            bne     SHORT G_M37813_IG06
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -77,19 +51,29 @@ G_M37813_IG10:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             ldr     r1, [r3+0x04]
             cmp     r2, r1
             bhs     SHORT G_M37813_IG11
-            ldr     r2, [r5-0x08]
-            str     r2, [r3+0x08]
-            b       SHORT G_M37813_IG12
-                       ;; size=26 bbWeight=4 PerfScore 40.00
-G_M37813_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            adds    r3, 8
             ; gcrRegs -[r3]
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_RNGCHKFAIL
-            ; gcr arg pop 0
-            bkpt    
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M37813_IG12:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs +[r3]
+                       ;; size=26 bbWeight=4 PerfScore 44.00
+G_M37813_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+            str     r2, [r3]
+            b       SHORT G_M37813_IG08
+                       ;; size=4 bbWeight=4 PerfScore 8.00
+G_M37813_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; byrRegs -[r3]
+            movs    r3, 0
+            str     r3, [r5-0x08]
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M37813_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            pop     {r2,r3,r4,r5,r11,pc}
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M37813_IG08:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, gcvars, byref
+            ; byrRegs +[r3]
+            ldr     r2, [r5-0x08]
+            str     r2, [r3]
+                       ;; size=6 bbWeight=4 PerfScore 8.00
+G_M37813_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs -[r3]
             adds    r4, r4, 1
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -99,26 +83,26 @@ G_M37813_IG12:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             cmp     r0, r4
             bgt     SHORT G_M37813_IG04
                        ;; size=18 bbWeight=4 PerfScore 28.00
-G_M37813_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            b       SHORT G_M37813_IG09
+G_M37813_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M37813_IG07
                         ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M37813_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M37813_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
-G_M37813_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M37813_IG12:        ; 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_M37813_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M37813_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
             pop     {r2,r3,r4,r5,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 162, prolog size 12, PerfScore 118.50, instruction count 59, allocated bytes for code 162 (MethodHash=996e6c4a) for method Program:M49() (FullOpts)
+; Total bytes of code 130, prolog size 12, PerfScore 102.50, instruction count 47, allocated bytes for code 130 (MethodHash=996e6c4a) for method Program:M49() (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -130,7 +114,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 74 (0x0004a) Actual length = 148 (0x000094)
+  Function Length   : 58 (0x0003a) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -161,4 +145,4 @@ Unwind Info:
 
 *************** EH table for Program:M49()
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M37813_IG10..G_M37813_IG12) handled by [G_M37813_IG15..END) (fault)
+EH#0: try [G_M37813_IG08..G_M37813_IG09) handled by [G_M37813_IG12..END) (fault)
  
-32 (-19.75%) : 202699.dasm - Program:M49() (Tier0-FullOpts)
@@ -10,11 +10,12 @@
 ;  V00 loc0         [V00,T01] (  4, 13   )     int  ->   r4        
 ;* V01 loc1         [V01    ] (  0,  0   )    long  ->  zero-ref   
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  3, 12   )     ref  ->   r2         "arr expr"
-;  V04 tmp2         [V04,T00] (  3, 24   )     ref  ->   r3         "arr expr"
-;  V05 PSPSym       [V05,T05] (  1,  1   )     int  ->  [sp+0x04]  do-not-enreg[V] "PSPSym"
-;  V06 cse0         [V06,T03] (  3, 12   )     int  ->   r3         "CSE - aggressive"
-;  V07 cse1         [V07,T04] (  4,  9   )     int  ->   r5         hoist "CSE - aggressive"
+;  V03 tmp1         [V03,T00] (  3, 24   )     ref  ->   r3         "arr expr"
+;* V04 tmp2         [V04,T05] (  0,  0   )     ref  ->  zero-ref    "arr expr"
+;  V05 PSPSym       [V05,T06] (  1,  1   )     int  ->  [sp+0x04]  do-not-enreg[V] "PSPSym"
+;  V06 cse0         [V06,T02] (  3, 12   )   byref  ->   r3         "CSE - aggressive"
+;  V07 cse1         [V07,T03] (  2,  8   )     ref  ->   r3         "CSE - aggressive"
+;  V08 cse2         [V08,T04] (  4,  9   )     int  ->   r5         hoist "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -32,7 +33,7 @@ G_M37813_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             cmp     r0, 0
-            ble     SHORT G_M37813_IG09
+            ble     SHORT G_M37813_IG07
                         ;; size=18 bbWeight=1 PerfScore 7.00
 G_M37813_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r5, 0xd1ff
@@ -41,34 +42,7 @@ G_M37813_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
 G_M37813_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ldrb    r3, [r5]
             cmp     r3, 0
-            bne     SHORT G_M37813_IG07
-                       ;; size=6 bbWeight=4 PerfScore 12.00
-G_M37813_IG05:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            movw    r2, 0xd1ff
-            movt    r2, 0xd1ff
-            ldr     r2, [r2]
-            ; gcrRegs +[r2]
-            movs    r1, 0
-            ldr     r0, [r2+0x04]
-            cmp     r1, r0
-            bhs     SHORT G_M37813_IG14
-                       ;; size=18 bbWeight=2 PerfScore 14.00
-G_M37813_IG06:        ; bbWeight=2, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, byref
-            str     r1, [r2+0x08]
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M37813_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r2]
-            cmp     r3, 0
-            beq     SHORT G_M37813_IG10
-                       ;; size=4 bbWeight=4 PerfScore 8.00
-G_M37813_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movs    r3, 0
-            str     r3, [r5-0x08]
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M37813_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            pop     {r2,r3,r4,r5,r11,pc}
-                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M37813_IG10:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            bne     SHORT G_M37813_IG06
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -77,19 +51,29 @@ G_M37813_IG10:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             ldr     r1, [r3+0x04]
             cmp     r2, r1
             bhs     SHORT G_M37813_IG11
-            ldr     r2, [r5-0x08]
-            str     r2, [r3+0x08]
-            b       SHORT G_M37813_IG12
-                       ;; size=26 bbWeight=4 PerfScore 40.00
-G_M37813_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            adds    r3, 8
             ; gcrRegs -[r3]
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_RNGCHKFAIL
-            ; gcr arg pop 0
-            bkpt    
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M37813_IG12:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs +[r3]
+                       ;; size=26 bbWeight=4 PerfScore 44.00
+G_M37813_IG05:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, byref, isz
+            str     r2, [r3]
+            b       SHORT G_M37813_IG08
+                       ;; size=4 bbWeight=4 PerfScore 8.00
+G_M37813_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; byrRegs -[r3]
+            movs    r3, 0
+            str     r3, [r5-0x08]
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M37813_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            pop     {r2,r3,r4,r5,r11,pc}
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M37813_IG08:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, gcvars, byref
+            ; byrRegs +[r3]
+            ldr     r2, [r5-0x08]
+            str     r2, [r3]
+                       ;; size=6 bbWeight=4 PerfScore 8.00
+G_M37813_IG09:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs -[r3]
             adds    r4, r4, 1
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -99,26 +83,26 @@ G_M37813_IG12:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             cmp     r0, r4
             bgt     SHORT G_M37813_IG04
                        ;; size=18 bbWeight=4 PerfScore 28.00
-G_M37813_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            b       SHORT G_M37813_IG09
+G_M37813_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M37813_IG07
                         ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M37813_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M37813_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
-G_M37813_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M37813_IG12:        ; 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_M37813_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M37813_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
             pop     {r2,r3,r4,r5,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 162, prolog size 12, PerfScore 118.50, instruction count 59, allocated bytes for code 162 (MethodHash=996e6c4a) for method Program:M49() (Tier0-FullOpts)
+; Total bytes of code 130, prolog size 12, PerfScore 102.50, instruction count 47, allocated bytes for code 130 (MethodHash=996e6c4a) for method Program:M49() (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -130,7 +114,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 74 (0x0004a) Actual length = 148 (0x000094)
+  Function Length   : 58 (0x0003a) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -161,4 +145,4 @@ Unwind Info:
 
 *************** EH table for Program:M49()
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M37813_IG10..G_M37813_IG12) handled by [G_M37813_IG15..END) (fault)
+EH#0: try [G_M37813_IG08..G_M37813_IG09) handled by [G_M37813_IG12..END) (fault)
  
-8 (-3.92%) : 424436.dasm - Test.BB:TestEntryPoint() (FullOpts)
@@ -8,29 +8,28 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T08] (  2,  0   )     ref  ->  [sp+0x00]  class-hnd exact EH-live single-def <<unknown class>>
+;  V00 loc0         [V00,T07] (  2,  0   )     ref  ->  [sp+0x00]  class-hnd exact EH-live single-def <<unknown class>>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V02 tmp1         [V02    ] (  0,  0   )   float  ->  zero-ref    "bubbling QMark2"
 ;  V03 tmp2         [V03,T00] (  4, 38   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V04 tmp3         [V04,T02] (  3, 10   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V04 tmp3         [V04,T01] (  3, 10   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
 ;* V05 tmp4         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <double[]>
 ;* V06 tmp5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <<unknown class>>
-;  V07 tmp6         [V07,T09] (  2,  0   )   float  ->  [sp+0x04]  spill-single-def "bubbling QMark2"
-;  V08 tmp7         [V08,T06] (  3,  0   )     ref  ->   r5         single-def "CASTCLASS eval op1"
-;  V09 tmp8         [V09,T07] (  3,  0   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
-;  V10 tmp9         [V10,T05] (  5,  0   )     ref  ->   r0         class-hnd "spilling QMark2" <double[]>
-;  V11 PSPSym       [V11,T04] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
-;  V12 cse0         [V12,T01] (  5, 24   )     ref  ->   r5         multi-def "CSE - aggressive"
-;  V13 cse1         [V13,T03] (  5,  4   )     int  ->   r4         multi-def "CSE - aggressive"
+;  V07 tmp6         [V07,T08] (  2,  0   )   float  ->  [sp+0x04]  spill-single-def "bubbling QMark2"
+;  V08 tmp7         [V08,T05] (  3,  0   )     ref  ->   r1         single-def "CASTCLASS eval op1"
+;  V09 tmp8         [V09,T06] (  3,  0   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V10 tmp9         [V10,T04] (  5,  0   )     ref  ->   r0         class-hnd "spilling QMark2" <double[]>
+;  V11 PSPSym       [V11,T03] (  1,  1   )     int  ->  [sp+0x08]  do-not-enreg[V] "PSPSym"
+;  V12 cse0         [V12,T02] (  5,  4   )     int  ->   r4         multi-def "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 12
 
 G_M52695_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r11,lr}
-            sub     sp, 16
-            add     r11, sp, 24
-            add     r0, sp, 32
-            str     r0, [sp+0x0C]  // [V11 PSPSym]
+            push    {r4,r11,lr}
+            sub     sp, 12
+            add     r11, sp, 16
+            add     r0, sp, 24
+            str     r0, [sp+0x08]  // [V11 PSPSym]
                      ;; size=14 bbWeight=1 PerfScore 5.00
 G_M52695_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r4, 0xd1ff
@@ -45,7 +44,7 @@ G_M52695_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             str     r0, [sp]   // [V00 loc0]
             ; GC ptr vars +{V00}
                        ;; size=24 bbWeight=1 PerfScore 8.00
-G_M52695_IG03:        ; bbWeight=8, gcVars=00000100 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M52695_IG03:        ; bbWeight=8, gcVars=00000080 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0]
             movs    r0, 3
             movs    r1, 2
@@ -53,20 +52,18 @@ G_M52695_IG03:        ; bbWeight=8, gcVars=00000100 {V00}, gcrefRegs=0000 {}, by
             bhs     SHORT G_M52695_IG06
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
-            ldr     r5, [r0]
-            ; gcrRegs +[r5]
-            mov     r1, r5
+            ldr     r1, [r0]
             ; gcrRegs +[r1]
             cmp     r1, 0
-            beq     SHORT G_M52695_IG07
-                       ;; size=24 bbWeight=8 PerfScore 80.00
-G_M52695_IG04:        ; bbWeight=2, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, byref, isz
+            beq     SHORT G_M52695_IG03
+                       ;; size=22 bbWeight=8 PerfScore 72.00
+G_M52695_IG04:        ; bbWeight=2, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r1]
             add     r3, r4, 536
             cmp     r0, r3
             beq     SHORT G_M52695_IG07
                        ;; size=10 bbWeight=2 PerfScore 8.00
-G_M52695_IG05:        ; bbWeight=1, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, byref, isz
+G_M52695_IG05:        ; bbWeight=1, gcrefRegs=0002 {r1}, byrefRegs=0000 {}, byref, isz
             mov     r0, r3
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -76,76 +73,68 @@ G_M52695_IG05:        ; bbWeight=1, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, b
             b       SHORT G_M52695_IG07
                        ;; size=14 bbWeight=1 PerfScore 5.00
 G_M52695_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r0 r5]
+            ; gcrRegs -[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M52695_IG07:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r5]
-            cmp     r5, 0
-            beq     SHORT G_M52695_IG03
-                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M52695_IG08:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
-            ; gcrRegs -[r5]
+G_M52695_IG07:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
             ; GC ptr vars -{V00}
-            add     sp, 16
-            pop     {r4,r5,r11,pc}
+            add     sp, 12
+            pop     {r4,r11,pc}
                         ;; size=6 bbWeight=1 PerfScore 2.00
-G_M52695_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
-            push    {r2,r3,r4,r5,r11,lr}
+G_M52695_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+            push    {r3,r4,r11,lr}
             add     r3, r11, 8
-            str     r3, [sp+0x04]
+            str     r3, [sp]
                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M52695_IG10:        ; bbWeight=0, gcVars=00000100 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; GC ptr vars +{V00 V08}
-            ldr     r0, [r11-0x18] // [V00 loc0]
+G_M52695_IG09:        ; bbWeight=0, gcVars=00000080 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; GC ptr vars +{V00 V07}
+            ldr     r0, [r11-0x10] // [V00 loc0]
             ; gcrRegs +[r0]
             vldr    s0, [r0+0x08]
-            vstr    s0, [r11-0x14]  // [V07 tmp6]
+            vstr    s0, [r11-0x0C]   // [V07 tmp6]
             movw    r0, 0xd1ff
             ; gcrRegs -[r0]
             movt    r0, 0xd1ff
-            ldr     r5, [r0]
-            ; gcrRegs +[r5]
-            mov     r0, r5
+            ldr     r1, [r0]
+            ; gcrRegs +[r1]
+            mov     r0, r1
             ; gcrRegs +[r0]
             cmp     r0, 0
-            beq     SHORT G_M52695_IG11
-            ldr     r1, [r0]
+            beq     SHORT G_M52695_IG10
+            ldr     r3, [r0]
             movw    r4, 0xd1ff
             movt    r4, 0xd1ff
-            add     r3, r4, 536
-            cmp     r1, r3
-            beq     SHORT G_M52695_IG11
-            mov     r0, r3
+            add     r2, r4, 536
+            cmp     r3, r2
+            beq     SHORT G_M52695_IG10
+            mov     r0, r2
             ; gcrRegs -[r0]
-            mov     r1, r5
-            ; gcrRegs +[r1]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
-            ; GC ptr vars -{V00 V08}
+            ; GC ptr vars -{V00 V07}
             blx     r3       // CORINFO_HELP_CHKCASTARRAY
-            ; gcrRegs -[r1 r5] +[r0]
+            ; gcrRegs -[r1] +[r0]
             ; gcr arg pop 0
-                      ;; size=60 bbWeight=0 PerfScore 0.00
-G_M52695_IG11:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
-            vldr    s0, [r11-0x14] // [V07 tmp6]
+                     ;; size=58 bbWeight=0 PerfScore 0.00
+G_M52695_IG10:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+            vldr    s0, [r11-0x0C] // [V07 tmp6]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // Test.BB:Method1(float,double[])
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            movw    r0, LOW ADDRESS G_M52695_IG08
-            movt    r0, HIGH ADDRESS G_M52695_IG08
+            movw    r0, LOW ADDRESS G_M52695_IG07
+            movt    r0, HIGH ADDRESS G_M52695_IG07
                      ;; size=24 bbWeight=0 PerfScore 0.00
-G_M52695_IG12:        ; bbWeight=0, funclet epilog, nogc, extend
-            pop     {r2,r3,r4,r5,r11,pc}
+G_M52695_IG11:        ; bbWeight=0, funclet epilog, nogc, extend
+            pop     {r3,r4,r11,pc}
                      ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 204, prolog size 14, PerfScore 124.00, instruction count 70, allocated bytes for code 204 (MethodHash=459c3228) for method Test.BB:TestEntryPoint() (FullOpts)
+; Total bytes of code 196, prolog size 14, PerfScore 100.00, instruction count 66, allocated bytes for code 196 (MethodHash=459c3228) for method Test.BB:TestEntryPoint() (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -157,12 +146,12 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 53 (0x00035) Actual length = 106 (0x00006a)
+  Function Length   : 50 (0x00032) Actual length = 100 (0x000064)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    04          add sp, sp, #16                     ; opsize 16
-    A8 30       pop {r4,r5,r11,lr}                  ; opsize 32
+    03          add sp, sp, #12                     ; opsize 16
+    A8 10       pop {r4,r11,lr}                     ; opsize 32
     FF          end
 
 Unwind Info:
@@ -174,14 +163,14 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 49 (0x00031) Actual length = 98 (0x000062)
+  Function Length   : 48 (0x00030) Actual length = 96 (0x000060)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 3C       pop {r2,r3,r4,r5,r11,lr}            ; opsize 32
+    A8 18       pop {r3,r4,r11,lr}                  ; opsize 32
     FF          end
     FF          end
 
 *************** EH table for Test.BB:TestEntryPoint()
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M52695_IG03..G_M52695_IG08) handled by [G_M52695_IG09..END) (class: 1000008)
+EH#0: try [G_M52695_IG03..G_M52695_IG07) handled by [G_M52695_IG08..END) (class: 1000008)
  
+2 (+0.21%) : 315517.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
@@ -8,12 +8,12 @@
 ; 6 inlinees with PGO data; 14 single block inlinees; 9 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T57] (  4,  3   )     ref  ->   r4         this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
-;  V01 loc0         [V01,T00] ( 27, 93   )     ref  ->   r4         class-hnd <System.Text.RegularExpressions.RegexNode>
+;  V00 this         [V00,T58] (  4,  3   )     ref  ->   r4         this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
+;  V01 loc0         [V01,T00] ( 26, 91   )     ref  ->   r4         class-hnd <System.Text.RegularExpressions.RegexNode>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V03 loc2         [V03,T32] (  3, 12   )   ubyte  ->   r0        
 ;  V04 loc3         [V04,T26] (  4, 12   )   ubyte  ->   r0        
-;* V05 loc4         [V05,T63] (  0,  0   )   ubyte  ->  zero-ref   
+;* V05 loc4         [V05,T64] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V07 loc6         [V07,T12] (  3, 24   )     int  ->   r6        
 ;  V08 loc7         [V08,T01] (  7, 76   )     int  ->   r5        
@@ -25,7 +25,7 @@
 ;* V14 tmp4         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V15 tmp5         [V15,T34] (  4, 11   )     ref  ->   r4         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V16 tmp6         [V16,T41] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V17 tmp7         [V17,T58] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V17 tmp7         [V17,T59] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V18 tmp8         [V18,T16] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V19 tmp9         [V19,T39] (  4, 10   )     int  ->   r6         "Inline return value spill temp"
 ;  V20 tmp10        [V20,T52] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
@@ -34,7 +34,7 @@
 ;* V23 tmp13        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V24 tmp14        [V24,T35] (  4, 11   )     ref  ->   r7         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V25 tmp15        [V25,T42] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V26 tmp16        [V26,T59] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V26 tmp16        [V26,T60] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V27 tmp17        [V27,T17] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V28 tmp18        [V28,T14] (  4, 20   )     int  ->   r6         "Inlining Arg"
 ;* V29 tmp19        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
@@ -42,10 +42,10 @@
 ;  V31 tmp21        [V31,T46] (  4,  8   )     int  ->   r7         "Inline return value spill temp"
 ;  V32 tmp22        [V32,T53] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V33 tmp23        [V33,T21] (  4, 16   )     ref  ->   r6         class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-;  V34 tmp24        [V34,T50] (  2,  8   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V35 tmp25        [V35,T38] (  3, 10   )     ref  ->   r1         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
+;  V34 tmp24        [V34,T50] (  2,  8   )     ref  ->   r0         "CASTCLASS eval op1"
+;  V35 tmp25        [V35,T38] (  3, 10   )     ref  ->   r0         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V36 tmp26        [V36,T43] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V37 tmp27        [V37,T60] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V37 tmp27        [V37,T61] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
 ;  V38 tmp28        [V38,T10] (  8, 27   )     ref  ->   r4         class-hnd "spilling QMark2" <<unknown class>>
 ;  V39 tmp29        [V39,T33] (  3, 12   )     int  ->   r7         "Inlining Arg"
 ;  V40 tmp30        [V40,T40] (  4, 10   )     int  ->   r6         "Inline return value spill temp"
@@ -62,7 +62,7 @@
 ;* V51 tmp41        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V52 tmp42        [V52,T36] (  4, 11   )     ref  ->   r3         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V53 tmp43        [V53,T44] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V54 tmp44        [V54,T61] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V54 tmp44        [V54,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V55 tmp45        [V55,T18] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;* V56 tmp46        [V56    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V57 tmp47        [V57,T49] (  3,  8   )     ref  ->   r4         class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
@@ -70,7 +70,7 @@
 ;* V59 tmp49        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V60 tmp50        [V60,T37] (  4, 11   )     ref  ->   r4         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V61 tmp51        [V61,T45] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V62 tmp52        [V62,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V62 tmp52        [V62,T63] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V63 tmp53        [V63,T19] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V64 tmp54        [V64,T28] (  3, 12   )     ref  ->   r1         "arr expr"
 ;  V65 tmp55        [V65,T29] (  3, 12   )     ref  ->   r0         "arr expr"
@@ -81,7 +81,8 @@
 ;  V70 cse1         [V70,T07] (  3, 40   )     ref  ->   r1         "CSE - aggressive"
 ;  V71 cse2         [V71,T55] (  3,  6   )     ref  ->   r0         "CSE - conservative"
 ;  V72 cse3         [V72,T56] (  3,  6   )     ref  ->   r1         "CSE - conservative"
-;  V73 rat0         [V73,T13] (  3, 24   )     int  ->   r5         "ReplaceWithLclVar is creating a new local variable"
+;  V73 cse4         [V73,T57] (  3,  6   )     ref  ->   r1         "CSE - conservative"
+;  V74 rat0         [V74,T13] (  3, 24   )     int  ->   r5         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -109,7 +110,7 @@ G_M35244_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs -[r4]
             pop     {r4,r5,r6,r7,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG05:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35244_IG05:        ; bbWeight=4, gcVars=000000000000000000000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r4]
             ldrb    r0, [r4+0x1E]
             subs    r3, r0, 3
@@ -397,20 +398,26 @@ G_M35244_IG30:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            ldr     r1, [r4+0x04]
+            ldr     r2, [r4+0x04]
+            ; gcrRegs +[r2]
+            mov     r1, r2
             ; gcrRegs +[r1]
-            cmp     r1, 0
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            cmp     r0, 0
             beq     SHORT G_M35244_IG33
-                     ;; size=56 bbWeight=2 PerfScore 40.00
-G_M35244_IG31:        ; bbWeight=1, gcrefRegs=0072 {r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [r1]
-            ; gcrRegs -[r1]
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            cmp     r1, r0
+                       ;; size=60 bbWeight=2 PerfScore 44.00
+G_M35244_IG31:        ; bbWeight=1, gcrefRegs=0073 {r0 r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2]
+            ldr     r0, [r0]
+            ; gcrRegs -[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            cmp     r0, r3
             bne     SHORT G_M35244_IG33
                        ;; size=14 bbWeight=1 PerfScore 5.00
 G_M35244_IG32:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r1]
             adds    r0, r4, 4
             ; byrRegs +[r0]
             mov     r1, r6
@@ -422,14 +429,13 @@ G_M35244_IG32:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             ; byrRegs -[r0]
             b       SHORT G_M35244_IG37
                        ;; size=16 bbWeight=2 PerfScore 12.00
-G_M35244_IG33:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r4 r6]
-            ldr     r1, [r4+0x04]
-            ; gcrRegs +[r1]
+G_M35244_IG33:        ; bbWeight=2, gcrefRegs=0062 {r1 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r1 r6]
             mov     r4, r1
+            ; gcrRegs +[r4]
             cmp     r4, 0
             beq     SHORT G_M35244_IG36
-                      ;; size=8 bbWeight=2 PerfScore 8.00
+                       ;; size=6 bbWeight=2 PerfScore 6.00
 G_M35244_IG34:        ; bbWeight=1, gcrefRegs=0072 {r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4]
             movw    r3, 0xd1ff
@@ -748,7 +754,7 @@ G_M35244_IG68:        ; bbWeight=0.50, epilog, nogc, extend
             bx      r3     // <unknown method>
             ; gcr arg pop 0
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M35244_IG69:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG69:        ; bbWeight=0, gcVars=000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0 r4]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -776,7 +782,7 @@ RWD00   dd  G_M35244_IG38
            dd  G_M35244_IG38
 
 
-; Total bytes of code 938, prolog size 10, PerfScore 1002.00, instruction count 372, allocated bytes for code 938 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
+; Total bytes of code 940, prolog size 10, PerfScore 1004.00, instruction count 373, allocated bytes for code 940 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -788,7 +794,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 469 (0x001d5) Actual length = 938 (0x0003aa)
+  Function Length   : 470 (0x001d6) Actual length = 940 (0x0003ac)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+4 (+0.50%) : 275254.dasm - ILCompiler.PEWriter.SectionBuilder:RelocateOutputFile(System.Reflection.Metadata.BlobBuilder,ulong,System.IO.Stream):this (Tier0-FullOpts)
@@ -9,16 +9,16 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T13] (  5,131   )     ref  ->   r5         this class-hnd single-def <ILCompiler.PEWriter.SectionBuilder>
-;  V01 arg1         [V01,T38] (  3,  3   )     ref  ->   r4         class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
+;  V01 arg1         [V01,T39] (  3,  3   )     ref  ->   r4         class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
 ;  V02 arg2         [V02    ] (  4,  4   )    long  ->  [sp+0x30]  single-def
-;  V03 arg3         [V03,T44] (  1,  1   )     ref  ->  [sp+0x60]  class-hnd single-def <System.IO.Stream>
+;  V03 arg3         [V03,T45] (  1,  1   )     ref  ->  [sp+0x60]  class-hnd single-def <System.IO.Stream>
 ;  V04 loc0         [V04,T07] (  5,194   )     ref  ->   r6         class-hnd exact single-def <ILCompiler.PEWriter.RelocationHelper>
-;  V05 loc1         [V05,T32] (  7, 22   )     ref  ->  [sp+0x14]  class-hnd EH-live spill-single-def <<unknown class>>
-;  V06 loc2         [V06,T22] (  5, 80   )     ref  ->  [sp+0x10]  class-hnd spill-single-def <<unknown class>>
+;  V05 loc1         [V05,T33] (  7, 22   )     ref  ->  [sp+0x14]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V06 loc2         [V06,T21] (  5, 80   )     ref  ->   r4         class-hnd <<unknown class>>
 ;  V07 loc3         [V07,T26] (  2, 68   )     int  ->  [sp+0x2C]  spill-single-def
 ;* V08 loc4         [V08    ] (  0,  0   )  struct (20) zero-ref    do-not-enreg[SF] ld-addr-op <System.Collections.Generic.List`1+Enumerator[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V09 loc5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <ILCompiler.PEWriter.PlacedObjectData>
-;  V10 loc6         [V10,T23] (  3, 80   )     ref  ->  [sp+0x0C]  class-hnd exact spill-single-def <ILCompiler.DependencyAnalysis.Relocation[]>
+;  V10 loc6         [V10,T22] (  3, 80   )     ref  ->  [sp+0x10]  class-hnd exact spill-single-def <ILCompiler.DependencyAnalysis.Relocation[]>
 ;  V11 loc7         [V11,T05] (  5,264   )     int  ->  [sp+0x28] 
 ;* V12 loc8         [V12    ] (  0,  0   )  struct (12) zero-ref    <ILCompiler.DependencyAnalysis.Relocation>
 ;  V13 loc9         [V13,T09] (  3,192   )     int  ->   r7        
@@ -28,19 +28,19 @@
 ;  V17 loc13        [V17,T12] (  3,160   )     int  ->   lr        
 ;  V18 loc14        [V18,T15] (  2,128   )     int  ->   r0        
 ;  V19 OutArgs      [V19    ] (  1,  1   )  struct ( 4) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V20 tmp1         [V20,T35] (  3,  6   )     ref  ->   r6         class-hnd exact single-def "NewObj constructor temp" <ILCompiler.PEWriter.RelocationHelper>
-;  V21 tmp2         [V21,T42] (  2,  4   )     ref  ->   r7         class-hnd single-def "dup spill" <<unknown class>>
-;  V22 tmp3         [V22,T36] (  3,  6   )     ref  ->   r4         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V20 tmp1         [V20,T36] (  3,  6   )     ref  ->   r6         class-hnd exact single-def "NewObj constructor temp" <ILCompiler.PEWriter.RelocationHelper>
+;  V21 tmp2         [V21,T43] (  2,  4   )     ref  ->   r7         class-hnd single-def "dup spill" <<unknown class>>
+;  V22 tmp3         [V22,T37] (  3,  6   )     ref  ->   r4         class-hnd single-def "impAppendStmt" <<unknown class>>
 ;* V23 tmp4         [V23    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V24 tmp5         [V24,T41] (  5,  4.50)     ref  ->   r7        
-;  V25 tmp6         [V25,T37] (  5,  5   )     ref  ->   r7         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V26 tmp7         [V26,T43] (  3,  3   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <<unknown class>>
-;  V27 tmp8         [V27,T33] (  7, 14   )     ref  ->   r2         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V24 tmp5         [V24,T42] (  5,  4.50)     ref  ->   r7        
+;  V25 tmp6         [V25,T38] (  5,  5   )     ref  ->   r7         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V26 tmp7         [V26,T44] (  3,  3   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V27 tmp8         [V27,T34] (  7, 14   )     ref  ->   r2         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V28 tmp9         [V28    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V29 tmp10        [V29    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V30 tmp11        [V30    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V31 tmp12        [V31    ] (  0,  0   )     ref  ->  zero-ref   
-;  V32 tmp13        [V32,T31] (  3, 24   )     ref  ->   r9         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.PEWriter.PlacedObjectData]>
+;  V32 tmp13        [V32,T32] (  3, 24   )     ref  ->   r9         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V33 tmp14        [V33    ] (  0,  0   )  struct (20) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V34 tmp15        [V34    ] (  0,  0   )  struct (12) zero-ref    "Inline return value spill temp" <ILCompiler.PEWriter.SymbolTarget>
 ;  V35 tmp16        [V35,T01] (  3,384   )     ref  ->   r0         class-hnd "Inlining Arg" <<unknown class>>
@@ -49,40 +49,41 @@
 ;* V38 tmp19        [V38    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <ILCompiler.PEWriter.SymbolTarget>
 ;* V39 tmp20        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V40 tmp21        [V40,T02] (  3,384   )     ref  ->   r0         class-hnd "Inlining Arg" <<unknown class>>
-;* V41 tmp22        [V41,T30] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V41 tmp22        [V41,T31] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V42 tmp23        [V42    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V43 tmp24        [V43    ] (  0,  0   )     ref  ->  zero-ref    "field V09.Data (fldOffset=0x0)" P-INDEP
-;  V44 tmp25        [V44,T25] (  2, 72   )     int  ->  [sp+0x24]  spill-single-def "field V09.Offset (fldOffset=0x4)" P-INDEP
-;  V45 tmp26        [V45,T14] (  3,128   )     ref  ->  [sp+0x08]  spill-single-def "field V12.Target (fldOffset=0x0)" P-INDEP
-;  V46 tmp27        [V46,T10] (  3,192   )     int  ->   r8         "field V12.RelocType (fldOffset=0x4)" P-INDEP
+;  V44 tmp25        [V44,T24] (  2, 72   )     int  ->  [sp+0x24]  spill-single-def "field V09.Offset (fldOffset=0x4)" P-INDEP
+;  V45 tmp26        [V45,T14] (  3,128   )     ref  ->  [sp+0x0C]  spill-single-def "field V12.Target (fldOffset=0x0)" P-INDEP
+;  V46 tmp27        [V46,T10] (  3,192   )     int  ->   r9         "field V12.RelocType (fldOffset=0x4)" P-INDEP
 ;  V47 tmp28        [V47,T16] (  2,128   )     int  ->   r7         "field V12.Offset (fldOffset=0x8)" P-INDEP
 ;* V48 tmp29        [V48    ] (  0,  0   )     int  ->  zero-ref    "field V15.SectionIndex (fldOffset=0x0)" P-INDEP
 ;* V49 tmp30        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V15.Offset (fldOffset=0x4)" P-INDEP
 ;* V50 tmp31        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V15.Size (fldOffset=0x8)" P-INDEP
 ;  V51 tmp32        [V51,T06] (  4,256   )     int  ->   r1         "field V34.SectionIndex (fldOffset=0x0)" P-INDEP
 ;  V52 tmp33        [V52,T11] (  3,192   )     int  ->   r2         "field V34.Offset (fldOffset=0x4)" P-INDEP
-;  V53 tmp34        [V53,T21] (  2, 96   )     int  ->   r3         "field V34.Size (fldOffset=0x8)" P-INDEP
+;  V53 tmp34        [V53,T20] (  2, 96   )     int  ->   r3         "field V34.Size (fldOffset=0x8)" P-INDEP
 ;* V54 tmp35        [V54    ] (  0,  0   )     int  ->  zero-ref    "field V38.SectionIndex (fldOffset=0x0)" P-INDEP
 ;* V55 tmp36        [V55    ] (  0,  0   )     int  ->  zero-ref    "field V38.Offset (fldOffset=0x4)" P-INDEP
 ;* V56 tmp37        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V38.Size (fldOffset=0x8)" P-INDEP
-;  V57 tmp38        [V57,T18] (  5, 84   )     ref  ->   r9         "V08.[000..004)"
+;  V57 tmp38        [V57,T25] (  4, 68   )     ref  ->  [sp+0x08]  spill-single-def "V08.[000..004)"
 ;  V58 tmp39        [V58,T17] (  6, 84   )     int  ->  [sp+0x20]  "V08.[004..008)"
-;  V59 tmp40        [V59,T27] (  3, 52   )     int  ->  [sp+0x1C]  spill-single-def "V08.[008..012)"
+;  V59 tmp40        [V59,T30] (  2, 36   )     int  ->  [sp+0x1C]  spill-single-def "V08.[008..012)"
 ;  V60 tmp41        [V60,T28] (  2, 24   )     ref  ->   r0         "V08.[012..016)"
 ;  V61 tmp42        [V61,T29] (  2, 24   )     int  ->   lr         "V08.[016..020)"
 ;* V62 tmp43        [V62    ] (  0,  0   )     ref  ->  zero-ref    "V33.[000..004)"
 ;* V63 tmp44        [V63    ] (  0,  0   )     int  ->  zero-ref    "V33.[004..008)"
-;  V64 tmp45        [V64,T34] (  2,  8   )     int  ->   r3         "V33.[008..012)"
+;  V64 tmp45        [V64,T35] (  2,  8   )     int  ->   r3         "V33.[008..012)"
 ;* V65 tmp46        [V65    ] (  0,  0   )     ref  ->  zero-ref    "V33.[012..016)"
 ;* V66 tmp47        [V66    ] (  0,  0   )     int  ->  zero-ref    "V33.[016..020)"
-;  V67 tmp48        [V67,T19] (  3, 96   )   byref  ->   r1         "Spilling address for field-by-field copy"
-;  V68 tmp49        [V68,T20] (  3, 96   )     ref  ->   r1         "arr expr"
+;  V67 tmp48        [V67,T18] (  3, 96   )   byref  ->   r1         "Spilling address for field-by-field copy"
+;  V68 tmp49        [V68,T19] (  3, 96   )     ref  ->   r1         "arr expr"
 ;  V69 tmp50        [V69,T00] (  4,512   )   byref  ->   r7         "BlockOp address local"
 ;  V70 tmp51        [V70,T03] (  3,384   )     ref  ->   r0         "arr expr"
-;  V71 PSPSym       [V71,T45] (  1,  1   )     int  ->  [sp+0x38]  do-not-enreg[V] "PSPSym"
-;  V72 cse0         [V72,T24] (  3, 80   )     int  ->  [sp+0x18]  spill-single-def "CSE - moderate"
-;  V73 rat0         [V73,T39] (  3,  3   )     int  ->  [sp+0x30]  do-not-enreg[] "field V02.lo (fldOffset=0x0)" P-DEP
-;  V74 rat1         [V74,T40] (  3,  3   )     int  ->  [sp+0x34]  do-not-enreg[] "field V02.hi (fldOffset=0x4)" P-DEP
+;  V71 PSPSym       [V71,T46] (  1,  1   )     int  ->  [sp+0x38]  do-not-enreg[V] "PSPSym"
+;  V72 cse0         [V72,T27] (  2, 32   )     int  ->   r1         "CSE - conservative"
+;  V73 cse1         [V73,T23] (  3, 80   )     int  ->  [sp+0x18]  spill-single-def "CSE - moderate"
+;  V74 rat0         [V74,T40] (  3,  3   )     int  ->  [sp+0x30]  do-not-enreg[] "field V02.lo (fldOffset=0x0)" P-DEP
+;  V75 rat1         [V75,T41] (  3,  3   )     int  ->  [sp+0x34]  do-not-enreg[] "field V02.hi (fldOffset=0x4)" P-DEP
 ;
 ; Lcl frame size = 60
 
@@ -114,8 +115,8 @@ G_M14932_IG02:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             mov     r0, r6
             ldr     r1, [sp+0x60]  // [V03 arg3]
             ; gcrRegs +[r1]
-            ldr     r2, [sp+0x30] // [V73 rat0]
-            ldr     r3, [sp+0x34]  // [V74 rat1]
+            ldr     r2, [sp+0x30]    // [V74 rat0]
+            ldr     r3, [sp+0x34]  // [V75 rat1]
             movw    lr, 0xd1ff
             movt    lr, 0xd1ff
             ldr     lr, [lr]
@@ -147,7 +148,7 @@ G_M14932_IG03:        ; bbWeight=0.50, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000
             ldr     r1, [r1]
             ; gcrRegs +[r1]
             cmp     r1, 0
-            beq     G_M14932_IG23
+            beq     G_M14932_IG22
             adds    r0, r7, 4
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -189,9 +190,9 @@ G_M14932_IG04:        ; bbWeight=1, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
             cmp     r4, 0
-            beq     G_M14932_IG24
+            beq     G_M14932_IG23
             cmp     r7, 0
-            beq     G_M14932_IG25
+            beq     G_M14932_IG24
             movs    r1, 0
             str     r1, [r2+0x08]
             add     r0, r2, 12
@@ -229,7 +230,7 @@ G_M14932_IG04:        ; bbWeight=1, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000
             str     r7, [sp+0x14]  // [V05 loc1]
             ; GC ptr vars +{V05}
                        ;; size=112 bbWeight=1 PerfScore 38.00
-G_M14932_IG05:        ; bbWeight=1, gcVars=0000000100000000 {V05}, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M14932_IG05:        ; bbWeight=1, gcVars=0000000200000000 {V05}, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0]
             mov     r0, r7
             ; gcrRegs +[r0]
@@ -240,7 +241,7 @@ G_M14932_IG05:        ; bbWeight=1, gcVars=0000000100000000 {V05}, gcrefRegs=00E
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     G_M14932_IG21
+            beq     G_M14932_IG20
                         ;; size=20 bbWeight=1 PerfScore 7.00
 G_M14932_IG06:        ; bbWeight=4, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
             mov     r0, r7
@@ -253,8 +254,6 @@ G_M14932_IG06:        ; bbWeight=4, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}
             ; gcr arg pop 0
             mov     r4, r0
             ; gcrRegs +[r4]
-            str     r4, [sp+0x10] // [V06 loc2]
-            ; GC ptr vars +{V06}
             ldr     r1, [r4+0x20]
             ldr     r0, [r4+0x1C]
             ; gcrRegs -[r0]
@@ -263,27 +262,29 @@ G_M14932_IG06:        ; bbWeight=4, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}
             ldr     r9, [r4+0x0C]
             ; gcrRegs +[r9]
             ldr     r3, [r9+0x0C]
+            str     r9, [sp+0x08]   // [V57 tmp38]
+            ; GC ptr vars +{V57}
             movs    r2, 0
             str     r3, [sp+0x1C]  // [V59 tmp40]
             ldr     r7, [sp+0x14]  // [V05 loc1]
             ; gcrRegs +[r7]
             b       SHORT G_M14932_IG12
-                      ;; size=46 bbWeight=4 PerfScore 68.00
-G_M14932_IG07:        ; bbWeight=8, gcVars=0000000100400000 {V05 V06}, gcrefRegs=02F1 {r0 r4 r5 r6 r7 r9}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[r0]
+                      ;; size=48 bbWeight=4 PerfScore 68.00
+G_M14932_IG07:        ; bbWeight=8, gcVars=0000000202000000 {V05 V57}, gcrefRegs=00F1 {r0 r4 r5 r6 r7}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[r9] +[r0]
             str     lr, [sp+0x24] // [V44 tmp25]
             ldr     r12, [r0+0x04]
             ; gcrRegs +[r12]
-            str     r12, [sp+0x0C]   // [V10 loc6]
+            str     r12, [sp+0x10]   // [V10 loc6]
             ; GC ptr vars +{V10}
             movs    r0, 0
             ; gcrRegs -[r0]
             ldr     r1, [r12+0x04]
-            str     r1, [sp+0x18]  // [V72 cse0]
+            str     r1, [sp+0x18]    // [V73 cse1]
             cmp     r1, 0
             ble     SHORT G_M14932_IG14
                        ;; size=24 bbWeight=8 PerfScore 64.00
-G_M14932_IG08:        ; bbWeight=64, gcVars=0000000100C00000 {V05 V06 V10}, gcrefRegs=1270 {r4 r5 r6 r9 r12}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M14932_IG08:        ; bbWeight=64, gcVars=0000000202400000 {V05 V10 V57}, gcrefRegs=1070 {r4 r5 r6 r12}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r7]
             movs    r7, 12
             str     r0, [sp+0x28]  // [V11 loc7]
@@ -293,20 +294,18 @@ G_M14932_IG08:        ; bbWeight=64, gcVars=0000000100C00000 {V05 V06 V10}, gcre
             ; byrRegs +[r7]
             ldr     r3, [r7]
             ; gcrRegs +[r3]
-            str     r3, [sp+0x08] // [V45 tmp26]
+            str     r3, [sp+0x0C]   // [V45 tmp26]
             ; GC ptr vars +{V45}
-            ldr     r8, [r7+0x04]
+            ldr     r9, [r7+0x04]
             ldr     r7, [r7+0x08]
             ; byrRegs -[r7]
-            ldr     lr, [r4+0x1C]
-            ldr     r4, [sp+0x24]  // [V44 tmp25]
-            ; gcrRegs -[r4]
-            add     lr, r4
-            add     r7, lr
-            ldr     lr, [sp+0x2C]  // [V07 loc3]
-            add     lr, r7
-            ldr     r4, [r6+0x28]
-            sub     r1, lr, r4
+            ldr     r8, [r4+0x1C]
+            add     r8, lr
+            add     r7, r8
+            ldr     r8, [sp+0x2C]  // [V07 loc3]
+            add     r8, r7
+            ldr     lr, [r6+0x28]
+            sub     r1, r8, lr
             mov     r0, r6
             ; gcrRegs +[r0]
             movw    lr, 0xd1ff
@@ -318,7 +317,7 @@ G_M14932_IG08:        ; bbWeight=64, gcVars=0000000100C00000 {V05 V06 V10}, gcre
             ldr     r0, [r5+0x08]
             ; gcrRegs +[r0]
             ldrsb   r1, [r0]
-            ldr     r1, [sp+0x08]    // [V45 tmp26]
+            ldr     r1, [sp+0x0C]   // [V45 tmp26]
             ; gcrRegs +[r1]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -354,18 +353,18 @@ G_M14932_IG08:        ; bbWeight=64, gcVars=0000000100C00000 {V05 V06 V10}, gcre
             ldr     r0, [r0+0x20]
             ; gcrRegs -[r0]
             adds    r0, r0, r2
-            cmp     r8, 0x1000
+            cmp     r9, 0x1000
             bne     SHORT G_M14932_IG10
-                        ;; size=132 bbWeight=64 PerfScore 3264.00
-G_M14932_IG09:        ; bbWeight=32, gcVars=0000000100C00000 {V05 V06 V10}, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0000 {}, gcvars, byref
+                      ;; size=132 bbWeight=64 PerfScore 3200.00
...
  
+4 (+0.50%) : 463819.dasm - ILCompiler.PEWriter.SectionBuilder:RelocateOutputFile(System.Reflection.Metadata.BlobBuilder,ulong,System.IO.Stream):this (FullOpts)
@@ -9,16 +9,16 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T13] (  5,131   )     ref  ->   r5         this class-hnd single-def <ILCompiler.PEWriter.SectionBuilder>
-;  V01 arg1         [V01,T38] (  3,  3   )     ref  ->   r4         class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
+;  V01 arg1         [V01,T39] (  3,  3   )     ref  ->   r4         class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
 ;  V02 arg2         [V02    ] (  4,  4   )    long  ->  [sp+0x30]  single-def
-;  V03 arg3         [V03,T44] (  1,  1   )     ref  ->  [sp+0x60]  class-hnd single-def <System.IO.Stream>
+;  V03 arg3         [V03,T45] (  1,  1   )     ref  ->  [sp+0x60]  class-hnd single-def <System.IO.Stream>
 ;  V04 loc0         [V04,T07] (  5,194   )     ref  ->   r6         class-hnd exact single-def <ILCompiler.PEWriter.RelocationHelper>
-;  V05 loc1         [V05,T32] (  7, 22   )     ref  ->  [sp+0x14]  class-hnd EH-live spill-single-def <<unknown class>>
-;  V06 loc2         [V06,T22] (  5, 80   )     ref  ->  [sp+0x10]  class-hnd spill-single-def <<unknown class>>
+;  V05 loc1         [V05,T33] (  7, 22   )     ref  ->  [sp+0x14]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V06 loc2         [V06,T21] (  5, 80   )     ref  ->   r4         class-hnd <<unknown class>>
 ;  V07 loc3         [V07,T26] (  2, 68   )     int  ->  [sp+0x2C]  spill-single-def
 ;* V08 loc4         [V08    ] (  0,  0   )  struct (20) zero-ref    do-not-enreg[SF] ld-addr-op <System.Collections.Generic.List`1+Enumerator[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V09 loc5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <ILCompiler.PEWriter.PlacedObjectData>
-;  V10 loc6         [V10,T23] (  3, 80   )     ref  ->  [sp+0x0C]  class-hnd exact spill-single-def <ILCompiler.DependencyAnalysis.Relocation[]>
+;  V10 loc6         [V10,T22] (  3, 80   )     ref  ->  [sp+0x10]  class-hnd exact spill-single-def <ILCompiler.DependencyAnalysis.Relocation[]>
 ;  V11 loc7         [V11,T05] (  5,264   )     int  ->  [sp+0x28] 
 ;* V12 loc8         [V12    ] (  0,  0   )  struct (12) zero-ref    <ILCompiler.DependencyAnalysis.Relocation>
 ;  V13 loc9         [V13,T09] (  3,192   )     int  ->   r7        
@@ -28,19 +28,19 @@
 ;  V17 loc13        [V17,T12] (  3,160   )     int  ->   lr        
 ;  V18 loc14        [V18,T15] (  2,128   )     int  ->   r0        
 ;  V19 OutArgs      [V19    ] (  1,  1   )  struct ( 4) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V20 tmp1         [V20,T35] (  3,  6   )     ref  ->   r6         class-hnd exact single-def "NewObj constructor temp" <ILCompiler.PEWriter.RelocationHelper>
-;  V21 tmp2         [V21,T42] (  2,  4   )     ref  ->   r7         class-hnd single-def "dup spill" <<unknown class>>
-;  V22 tmp3         [V22,T36] (  3,  6   )     ref  ->   r4         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V20 tmp1         [V20,T36] (  3,  6   )     ref  ->   r6         class-hnd exact single-def "NewObj constructor temp" <ILCompiler.PEWriter.RelocationHelper>
+;  V21 tmp2         [V21,T43] (  2,  4   )     ref  ->   r7         class-hnd single-def "dup spill" <<unknown class>>
+;  V22 tmp3         [V22,T37] (  3,  6   )     ref  ->   r4         class-hnd single-def "impAppendStmt" <<unknown class>>
 ;* V23 tmp4         [V23    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V24 tmp5         [V24,T41] (  5,  4.50)     ref  ->   r7        
-;  V25 tmp6         [V25,T37] (  5,  5   )     ref  ->   r7         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V26 tmp7         [V26,T43] (  3,  3   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <<unknown class>>
-;  V27 tmp8         [V27,T33] (  7, 14   )     ref  ->   r2         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V24 tmp5         [V24,T42] (  5,  4.50)     ref  ->   r7        
+;  V25 tmp6         [V25,T38] (  5,  5   )     ref  ->   r7         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V26 tmp7         [V26,T44] (  3,  3   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V27 tmp8         [V27,T34] (  7, 14   )     ref  ->   r2         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V28 tmp9         [V28    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V29 tmp10        [V29    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V30 tmp11        [V30    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V31 tmp12        [V31    ] (  0,  0   )     ref  ->  zero-ref   
-;  V32 tmp13        [V32,T31] (  3, 24   )     ref  ->   r9         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.PEWriter.PlacedObjectData]>
+;  V32 tmp13        [V32,T32] (  3, 24   )     ref  ->   r9         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V33 tmp14        [V33    ] (  0,  0   )  struct (20) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V34 tmp15        [V34    ] (  0,  0   )  struct (12) zero-ref    "Inline return value spill temp" <ILCompiler.PEWriter.SymbolTarget>
 ;  V35 tmp16        [V35,T01] (  3,384   )     ref  ->   r0         class-hnd "Inlining Arg" <<unknown class>>
@@ -49,40 +49,41 @@
 ;* V38 tmp19        [V38    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <ILCompiler.PEWriter.SymbolTarget>
 ;* V39 tmp20        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V40 tmp21        [V40,T02] (  3,384   )     ref  ->   r0         class-hnd "Inlining Arg" <<unknown class>>
-;* V41 tmp22        [V41,T30] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V41 tmp22        [V41,T31] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V42 tmp23        [V42    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V43 tmp24        [V43    ] (  0,  0   )     ref  ->  zero-ref    "field V09.Data (fldOffset=0x0)" P-INDEP
-;  V44 tmp25        [V44,T25] (  2, 72   )     int  ->  [sp+0x24]  spill-single-def "field V09.Offset (fldOffset=0x4)" P-INDEP
-;  V45 tmp26        [V45,T14] (  3,128   )     ref  ->  [sp+0x08]  spill-single-def "field V12.Target (fldOffset=0x0)" P-INDEP
-;  V46 tmp27        [V46,T10] (  3,192   )     int  ->   r8         "field V12.RelocType (fldOffset=0x4)" P-INDEP
+;  V44 tmp25        [V44,T24] (  2, 72   )     int  ->  [sp+0x24]  spill-single-def "field V09.Offset (fldOffset=0x4)" P-INDEP
+;  V45 tmp26        [V45,T14] (  3,128   )     ref  ->  [sp+0x0C]  spill-single-def "field V12.Target (fldOffset=0x0)" P-INDEP
+;  V46 tmp27        [V46,T10] (  3,192   )     int  ->   r9         "field V12.RelocType (fldOffset=0x4)" P-INDEP
 ;  V47 tmp28        [V47,T16] (  2,128   )     int  ->   r7         "field V12.Offset (fldOffset=0x8)" P-INDEP
 ;* V48 tmp29        [V48    ] (  0,  0   )     int  ->  zero-ref    "field V15.SectionIndex (fldOffset=0x0)" P-INDEP
 ;* V49 tmp30        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V15.Offset (fldOffset=0x4)" P-INDEP
 ;* V50 tmp31        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V15.Size (fldOffset=0x8)" P-INDEP
 ;  V51 tmp32        [V51,T06] (  4,256   )     int  ->   r1         "field V34.SectionIndex (fldOffset=0x0)" P-INDEP
 ;  V52 tmp33        [V52,T11] (  3,192   )     int  ->   r2         "field V34.Offset (fldOffset=0x4)" P-INDEP
-;  V53 tmp34        [V53,T21] (  2, 96   )     int  ->   r3         "field V34.Size (fldOffset=0x8)" P-INDEP
+;  V53 tmp34        [V53,T20] (  2, 96   )     int  ->   r3         "field V34.Size (fldOffset=0x8)" P-INDEP
 ;* V54 tmp35        [V54    ] (  0,  0   )     int  ->  zero-ref    "field V38.SectionIndex (fldOffset=0x0)" P-INDEP
 ;* V55 tmp36        [V55    ] (  0,  0   )     int  ->  zero-ref    "field V38.Offset (fldOffset=0x4)" P-INDEP
 ;* V56 tmp37        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V38.Size (fldOffset=0x8)" P-INDEP
-;  V57 tmp38        [V57,T18] (  5, 84   )     ref  ->   r9         "V08.[000..004)"
+;  V57 tmp38        [V57,T25] (  4, 68   )     ref  ->  [sp+0x08]  spill-single-def "V08.[000..004)"
 ;  V58 tmp39        [V58,T17] (  6, 84   )     int  ->  [sp+0x20]  "V08.[004..008)"
-;  V59 tmp40        [V59,T27] (  3, 52   )     int  ->  [sp+0x1C]  spill-single-def "V08.[008..012)"
+;  V59 tmp40        [V59,T30] (  2, 36   )     int  ->  [sp+0x1C]  spill-single-def "V08.[008..012)"
 ;  V60 tmp41        [V60,T28] (  2, 24   )     ref  ->   r0         "V08.[012..016)"
 ;  V61 tmp42        [V61,T29] (  2, 24   )     int  ->   lr         "V08.[016..020)"
 ;* V62 tmp43        [V62    ] (  0,  0   )     ref  ->  zero-ref    "V33.[000..004)"
 ;* V63 tmp44        [V63    ] (  0,  0   )     int  ->  zero-ref    "V33.[004..008)"
-;  V64 tmp45        [V64,T34] (  2,  8   )     int  ->   r3         "V33.[008..012)"
+;  V64 tmp45        [V64,T35] (  2,  8   )     int  ->   r3         "V33.[008..012)"
 ;* V65 tmp46        [V65    ] (  0,  0   )     ref  ->  zero-ref    "V33.[012..016)"
 ;* V66 tmp47        [V66    ] (  0,  0   )     int  ->  zero-ref    "V33.[016..020)"
-;  V67 tmp48        [V67,T19] (  3, 96   )   byref  ->   r1         "Spilling address for field-by-field copy"
-;  V68 tmp49        [V68,T20] (  3, 96   )     ref  ->   r1         "arr expr"
+;  V67 tmp48        [V67,T18] (  3, 96   )   byref  ->   r1         "Spilling address for field-by-field copy"
+;  V68 tmp49        [V68,T19] (  3, 96   )     ref  ->   r1         "arr expr"
 ;  V69 tmp50        [V69,T00] (  4,512   )   byref  ->   r7         "BlockOp address local"
 ;  V70 tmp51        [V70,T03] (  3,384   )     ref  ->   r0         "arr expr"
-;  V71 PSPSym       [V71,T45] (  1,  1   )     int  ->  [sp+0x38]  do-not-enreg[V] "PSPSym"
-;  V72 cse0         [V72,T24] (  3, 80   )     int  ->  [sp+0x18]  spill-single-def "CSE - moderate"
-;  V73 rat0         [V73,T39] (  3,  3   )     int  ->  [sp+0x30]  do-not-enreg[] "field V02.lo (fldOffset=0x0)" P-DEP
-;  V74 rat1         [V74,T40] (  3,  3   )     int  ->  [sp+0x34]  do-not-enreg[] "field V02.hi (fldOffset=0x4)" P-DEP
+;  V71 PSPSym       [V71,T46] (  1,  1   )     int  ->  [sp+0x38]  do-not-enreg[V] "PSPSym"
+;  V72 cse0         [V72,T27] (  2, 32   )     int  ->   r1         "CSE - conservative"
+;  V73 cse1         [V73,T23] (  3, 80   )     int  ->  [sp+0x18]  spill-single-def "CSE - moderate"
+;  V74 rat0         [V74,T40] (  3,  3   )     int  ->  [sp+0x30]  do-not-enreg[] "field V02.lo (fldOffset=0x0)" P-DEP
+;  V75 rat1         [V75,T41] (  3,  3   )     int  ->  [sp+0x34]  do-not-enreg[] "field V02.hi (fldOffset=0x4)" P-DEP
 ;
 ; Lcl frame size = 60
 
@@ -114,8 +115,8 @@ G_M14932_IG02:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             mov     r0, r6
             ldr     r1, [sp+0x60]  // [V03 arg3]
             ; gcrRegs +[r1]
-            ldr     r2, [sp+0x30] // [V73 rat0]
-            ldr     r3, [sp+0x34]  // [V74 rat1]
+            ldr     r2, [sp+0x30]    // [V74 rat0]
+            ldr     r3, [sp+0x34]  // [V75 rat1]
             movw    lr, 0xd1ff
             movt    lr, 0xd1ff
             ldr     lr, [lr]
@@ -147,7 +148,7 @@ G_M14932_IG03:        ; bbWeight=0.50, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000
             ldr     r1, [r1]
             ; gcrRegs +[r1]
             cmp     r1, 0
-            beq     G_M14932_IG23
+            beq     G_M14932_IG22
             adds    r0, r7, 4
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -189,9 +190,9 @@ G_M14932_IG04:        ; bbWeight=1, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
             cmp     r4, 0
-            beq     G_M14932_IG24
+            beq     G_M14932_IG23
             cmp     r7, 0
-            beq     G_M14932_IG25
+            beq     G_M14932_IG24
             movs    r1, 0
             str     r1, [r2+0x08]
             add     r0, r2, 12
@@ -229,7 +230,7 @@ G_M14932_IG04:        ; bbWeight=1, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000
             str     r7, [sp+0x14]  // [V05 loc1]
             ; GC ptr vars +{V05}
                        ;; size=112 bbWeight=1 PerfScore 38.00
-G_M14932_IG05:        ; bbWeight=1, gcVars=0000000100000000 {V05}, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M14932_IG05:        ; bbWeight=1, gcVars=0000000200000000 {V05}, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0]
             mov     r0, r7
             ; gcrRegs +[r0]
@@ -240,7 +241,7 @@ G_M14932_IG05:        ; bbWeight=1, gcVars=0000000100000000 {V05}, gcrefRegs=00E
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     G_M14932_IG21
+            beq     G_M14932_IG20
                         ;; size=20 bbWeight=1 PerfScore 7.00
 G_M14932_IG06:        ; bbWeight=4, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
             mov     r0, r7
@@ -253,8 +254,6 @@ G_M14932_IG06:        ; bbWeight=4, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}
             ; gcr arg pop 0
             mov     r4, r0
             ; gcrRegs +[r4]
-            str     r4, [sp+0x10] // [V06 loc2]
-            ; GC ptr vars +{V06}
             ldr     r1, [r4+0x20]
             ldr     r0, [r4+0x1C]
             ; gcrRegs -[r0]
@@ -263,27 +262,29 @@ G_M14932_IG06:        ; bbWeight=4, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}
             ldr     r9, [r4+0x0C]
             ; gcrRegs +[r9]
             ldr     r3, [r9+0x0C]
+            str     r9, [sp+0x08]   // [V57 tmp38]
+            ; GC ptr vars +{V57}
             movs    r2, 0
             str     r3, [sp+0x1C]  // [V59 tmp40]
             ldr     r7, [sp+0x14]  // [V05 loc1]
             ; gcrRegs +[r7]
             b       SHORT G_M14932_IG12
-                      ;; size=46 bbWeight=4 PerfScore 68.00
-G_M14932_IG07:        ; bbWeight=8, gcVars=0000000100400000 {V05 V06}, gcrefRegs=02F1 {r0 r4 r5 r6 r7 r9}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[r0]
+                      ;; size=48 bbWeight=4 PerfScore 68.00
+G_M14932_IG07:        ; bbWeight=8, gcVars=0000000202000000 {V05 V57}, gcrefRegs=00F1 {r0 r4 r5 r6 r7}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[r9] +[r0]
             str     lr, [sp+0x24] // [V44 tmp25]
             ldr     r12, [r0+0x04]
             ; gcrRegs +[r12]
-            str     r12, [sp+0x0C]   // [V10 loc6]
+            str     r12, [sp+0x10]   // [V10 loc6]
             ; GC ptr vars +{V10}
             movs    r0, 0
             ; gcrRegs -[r0]
             ldr     r1, [r12+0x04]
-            str     r1, [sp+0x18]  // [V72 cse0]
+            str     r1, [sp+0x18]    // [V73 cse1]
             cmp     r1, 0
             ble     SHORT G_M14932_IG14
                        ;; size=24 bbWeight=8 PerfScore 64.00
-G_M14932_IG08:        ; bbWeight=64, gcVars=0000000100C00000 {V05 V06 V10}, gcrefRegs=1270 {r4 r5 r6 r9 r12}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M14932_IG08:        ; bbWeight=64, gcVars=0000000202400000 {V05 V10 V57}, gcrefRegs=1070 {r4 r5 r6 r12}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r7]
             movs    r7, 12
             str     r0, [sp+0x28]  // [V11 loc7]
@@ -293,20 +294,18 @@ G_M14932_IG08:        ; bbWeight=64, gcVars=0000000100C00000 {V05 V06 V10}, gcre
             ; byrRegs +[r7]
             ldr     r3, [r7]
             ; gcrRegs +[r3]
-            str     r3, [sp+0x08] // [V45 tmp26]
+            str     r3, [sp+0x0C]   // [V45 tmp26]
             ; GC ptr vars +{V45}
-            ldr     r8, [r7+0x04]
+            ldr     r9, [r7+0x04]
             ldr     r7, [r7+0x08]
             ; byrRegs -[r7]
-            ldr     lr, [r4+0x1C]
-            ldr     r4, [sp+0x24]  // [V44 tmp25]
-            ; gcrRegs -[r4]
-            add     lr, r4
-            add     r7, lr
-            ldr     lr, [sp+0x2C]  // [V07 loc3]
-            add     lr, r7
-            ldr     r4, [r6+0x28]
-            sub     r1, lr, r4
+            ldr     r8, [r4+0x1C]
+            add     r8, lr
+            add     r7, r8
+            ldr     r8, [sp+0x2C]  // [V07 loc3]
+            add     r8, r7
+            ldr     lr, [r6+0x28]
+            sub     r1, r8, lr
             mov     r0, r6
             ; gcrRegs +[r0]
             movw    lr, 0xd1ff
@@ -318,7 +317,7 @@ G_M14932_IG08:        ; bbWeight=64, gcVars=0000000100C00000 {V05 V06 V10}, gcre
             ldr     r0, [r5+0x08]
             ; gcrRegs +[r0]
             ldrsb   r1, [r0]
-            ldr     r1, [sp+0x08]    // [V45 tmp26]
+            ldr     r1, [sp+0x0C]   // [V45 tmp26]
             ; gcrRegs +[r1]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -354,18 +353,18 @@ G_M14932_IG08:        ; bbWeight=64, gcVars=0000000100C00000 {V05 V06 V10}, gcre
             ldr     r0, [r0+0x20]
             ; gcrRegs -[r0]
             adds    r0, r0, r2
-            cmp     r8, 0x1000
+            cmp     r9, 0x1000
             bne     SHORT G_M14932_IG10
-                        ;; size=132 bbWeight=64 PerfScore 3264.00
-G_M14932_IG09:        ; bbWeight=32, gcVars=0000000100C00000 {V05 V06 V10}, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0000 {}, gcvars, byref
+                      ;; size=132 bbWeight=64 PerfScore 3200.00
...
  
  
libraries.crossgen2.linux.arm.checked.mch
-4 (-3.57%) : 167768.dasm - System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this (FullOpts)
@@ -8,20 +8,20 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4, 14   )     ref  ->   r6         this class-hnd single-def <System.Net.HttpEndPointListener>
-;  V01 arg1         [V01,T01] (  5, 22   )     ref  ->   r5         class-hnd single-def <System.Net.Sockets.SocketAsyncEventArgs>
-;  V02 loc0         [V02,T00] (  3, 24   )   ubyte  ->   r7        
+;  V00 this         [V00,T01] (  4, 18   )     ref  ->   r6         this class-hnd single-def <System.Net.HttpEndPointListener>
+;  V01 arg1         [V01,T00] (  5, 26   )     ref  ->   r5         class-hnd single-def <System.Net.Sockets.SocketAsyncEventArgs>
+;  V02 loc0         [V02,T02] (  2, 16   )   ubyte  ->   r0        
 ;# 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 "impSpillSpecialSideEff" <<unknown class>>
-;  V05 PSPSym       [V05,T03] (  1,  1   )     int  ->  [sp+0x04]  do-not-enreg[V] "PSPSym"
+;  V05 PSPSym       [V05,T03] (  1,  1   )     int  ->  [sp+0x00]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 4
 
 G_M14120_IG01:        ; bbWeight=8, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r2,r3,r4,r5,r6,r7,r11,lr}
-            add     r11, sp, 24
-            add     r2, sp, 32
-            str     r2, [sp+0x04]
+            push    {r3,r4,r5,r6,r11,lr}
+            add     r11, sp, 16
+            add     r2, sp, 24
+            str     r2, [sp]
             mov     r6, r0
             ; gcrRegs +[r6]
             mov     r5, r1
@@ -52,13 +52,10 @@ G_M14120_IG02:        ; bbWeight=8, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; gcr arg pop 0
-            mov     r7, r0
-                       ;; size=42 bbWeight=8 PerfScore 136.00
+                        ;; size=40 bbWeight=8 PerfScore 128.00
 G_M14120_IG03:        ; bbWeight=8, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
-            cmp     r7, 0
-            bne     SHORT G_M14120_IG05
-                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M14120_IG04:        ; bbWeight=4, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref
+            cmp     r0, 0
+            bne     SHORT G_M14120_IG04
             mov     r0, r6
             ; gcrRegs +[r0]
             mov     r1, r5
@@ -70,30 +67,27 @@ G_M14120_IG04:        ; bbWeight=4, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; gcr arg pop 0
-                      ;; size=18 bbWeight=4 PerfScore 28.00
-G_M14120_IG05:        ; bbWeight=8, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
-            cmp     r7, 0
-            beq     SHORT G_M14120_IG02
-                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M14120_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            b       SHORT G_M14120_IG02
+                       ;; size=24 bbWeight=8 PerfScore 80.00
+G_M14120_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r5-r6]
-            pop     {r2,r3,r4,r5,r6,r7,r11,pc}
+            pop     {r3,r4,r5,r6,r11,pc}
                       ;; size=4 bbWeight=1 PerfScore 1.00
-G_M14120_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
-            push    {r2,r3,r4,r5,r6,r7,r11,lr}
+G_M14120_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+            push    {r3,r4,r5,r6,r11,lr}
             add     r3, r11, 8
-            str     r3, [sp+0x04]
+            str     r3, [sp]
                         ;; size=10 bbWeight=0 PerfScore 0.00
-G_M14120_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            movw    r0, LOW ADDRESS G_M14120_IG06
-            movt    r0, HIGH ADDRESS G_M14120_IG06
+G_M14120_IG06:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            movw    r0, LOW ADDRESS G_M14120_IG04
+            movt    r0, HIGH ADDRESS G_M14120_IG04
             add     r0, pc
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M14120_IG09:        ; bbWeight=0, funclet epilog, nogc, extend
-            pop     {r2,r3,r4,r5,r6,r7,r11,pc}
+G_M14120_IG07:        ; bbWeight=0, funclet epilog, nogc, extend
+            pop     {r3,r4,r5,r6,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 112, prolog size 16, PerfScore 245.00, instruction count 42, allocated bytes for code 112 (MethodHash=c2bdc8d7) for method System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this (FullOpts)
+; Total bytes of code 108, prolog size 16, PerfScore 257.00, instruction count 40, allocated bytes for code 108 (MethodHash=c2bdc8d7) for method System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -105,11 +99,11 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 44 (0x0002c) Actual length = 88 (0x000058)
+  Function Length   : 42 (0x0002a) Actual length = 84 (0x000054)
   --- 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
+    A8 78       pop {r3,r4,r5,r6,r11,lr}            ; opsize 32
     FF          end
     FF          end
 
@@ -126,10 +120,10 @@ Unwind Info:
   --- 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
+    A8 78       pop {r3,r4,r5,r6,r11,lr}            ; opsize 32
     FF          end
     FF          end
 
 *************** EH table for System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M14120_IG02..G_M14120_IG03) handled by [G_M14120_IG07..END) (class: 100003E)
+EH#0: try [G_M14120_IG02..G_M14120_IG03) handled by [G_M14120_IG05..END) (class: 100003E)
  
-8 (-1.49%) : 107925.dasm - System.Xml.Linq.Extensions+d__22`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
@@ -9,7 +9,7 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] ( 38, 80.50)     ref  ->  [sp+0x08]  this class-hnd EH-live single-def <System.Xml.Linq.Extensions+<GetDescendantNodes>d__22`1[System.__Canon]>
+;  V00 this         [V00,T00] ( 38, 80.50)     ref  ->  [sp+0x08]  this class-hnd EH-live single-def <System.Xml.Linq.Extensions+<GetDescendantNodes>d__22`1[System.__Canon]>
 ;  V01 loc0         [V01,T08] (  5,  3   )   ubyte  ->   r0        
 ;* V02 loc1         [V02    ] (  0,  0   )     int  ->  zero-ref   
 ;  V03 loc2         [V03,T07] (  3,  6   )     ref  ->   r0         class-hnd <System.Xml.Linq.XContainer>
@@ -21,30 +21,30 @@
 ;  V09 tmp4         [V09,T06] (  4,  6.50)     ref  ->   r1         class-hnd "Inline return value spill temp" <System.Xml.Linq.XNode>
 ;  V10 tmp5         [V10,T03] (  3, 12   )     ref  ->   r0         class-hnd "dup spill" <System.Xml.Linq.XNode>
 ;* V11 tmp6         [V11    ] (  0,  0   )     ref  ->  zero-ref   
-;  V12 PSPSym       [V12,T11] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
+;  V12 PSPSym       [V12,T11] (  1,  1   )     int  ->  [sp+0x14]  do-not-enreg[V] "PSPSym"
 ;  V13 cse0         [V13,T02] (  3, 40   )     ref  ->   r1         "CSE - aggressive"
-;  V14 cse1         [V14,T00] (  8, 84.50)     ref  ->   r6         "CSE - aggressive"
+;  V14 cse1         [V14,T01] (  7, 82.50)     ref  ->   r2         "CSE - aggressive"
 ;  V15 cse2         [V15,T10] (  3,  1.50)     ref  ->   r0         "CSE - moderate"
 ;  V16 rat0         [V16,T05] (  4,  8   )     int  ->   r5         "ReplaceWithLclVar is creating a new local variable"
 ;  TEMP_01                                     ref  ->  [r11-0x1C]
 ;
-; Lcl frame size = 20
+; Lcl frame size = 24
 
 G_M13296_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r11,lr}
-            sub     sp, 20
+            push    {r4,r5,r11,lr}
+            sub     sp, 24
             add     r11, sp, 32
             movs    r1, 0
             str     r1, [sp+0x04]  // [TEMP_01]
             add     r1, sp, 40
-            str     r1, [sp+0x10]  // [V12 PSPSym]
+            str     r1, [sp+0x14]  // [V12 PSPSym]
             str     r0, [r11-0x14]
             str     r0, [sp+0x08]  // [V00 this]
             ; GC ptr vars +{V00}
             mov     r4, r0
             ; gcrRegs +[r4]
                        ;; size=26 bbWeight=1 PerfScore 10.00
-G_M13296_IG02:        ; bbWeight=1, gcVars=00000002 {V00}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M13296_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     r5, [r4+0x1C]
             cmp     r5, 2
             bhi     SHORT G_M13296_IG03
@@ -52,11 +52,11 @@ G_M13296_IG02:        ; bbWeight=1, gcVars=00000002 {V00}, gcrefRegs=0010 {r4},
             beq     SHORT G_M13296_IG04
             cmp     r5, 1
             beq     SHORT G_M13296_IG07
-            b       SHORT G_M13296_IG20
+            b       SHORT G_M13296_IG18
                       ;; size=16 bbWeight=1 PerfScore 8.00
 G_M13296_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             movs    r0, 0
-            b       SHORT G_M13296_IG26
+            b       SHORT G_M13296_IG24
                         ;; size=4 bbWeight=0.50 PerfScore 1.00
 G_M13296_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             mov     r0, -1
@@ -102,7 +102,7 @@ G_M13296_IG04:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     G_M13296_IG23
+            beq     G_M13296_IG21
                         ;; size=84 bbWeight=0.50 PerfScore 15.50
 G_M13296_IG05:        ; bbWeight=2, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r5]
@@ -134,12 +134,12 @@ G_M13296_IG05:        ; bbWeight=2, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             ldr     r1, [r5+0x14]
             ; gcrRegs +[r1]
             cmp     r1, 0
-            beq     G_M13296_IG22
+            beq     SHORT G_M13296_IG20
             ldrb    r1, [r5+0x24]
             ; gcrRegs -[r1]
             cmp     r1, 0
             beq     SHORT G_M13296_IG08
-                      ;; size=64 bbWeight=2 PerfScore 48.00
+                     ;; size=62 bbWeight=2 PerfScore 48.00
 G_M13296_IG06:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ldr     r1, [r5+0x14]
             ; gcrRegs +[r1]
@@ -157,7 +157,7 @@ G_M13296_IG06:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
             mov     r0, r1
             mov     r4, r5
             ; gcrRegs +[r4]
-            b       SHORT G_M13296_IG26
+            b       SHORT G_M13296_IG24
                       ;; size=30 bbWeight=0.50 PerfScore 6.00
 G_M13296_IG07:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r5]
@@ -223,7 +223,7 @@ G_M13296_IG12:        ; bbWeight=0.50, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            b       SHORT G_M13296_IG19
+            b       SHORT G_M13296_IG17
                       ;; size=22 bbWeight=0.50 PerfScore 3.50
 G_M13296_IG13:        ; bbWeight=8, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r1]
@@ -238,37 +238,30 @@ G_M13296_IG13:        ; bbWeight=8, gcrefRegs=0022 {r1 r5}, byrefRegs=0000 {}, b
             ; byrRegs -[r0]
                        ;; size=20 bbWeight=8 PerfScore 48.00
 G_M13296_IG14:        ; bbWeight=16, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
-            ldr     r6, [r5+0x18]
-            ; gcrRegs +[r6]
-            cmp     r6, 0
-            beq     SHORT G_M13296_IG16
+            ldr     r2, [r5+0x18]
+            ; gcrRegs +[r2]
+            cmp     r2, 0
+            beq     SHORT G_M13296_IG19
             ldr     r1, [r5+0x14]
             ; gcrRegs +[r1]
-            cmp     r6, r1
-            beq     SHORT G_M13296_IG17
-            ldr     r1, [r6+0x04]
+            cmp     r2, r1
+            beq     SHORT G_M13296_IG15
+            ldr     r1, [r2+0x04]
             ldr     r0, [r1+0x10]
             ; gcrRegs +[r0]
-            cmp     r6, r0
+            cmp     r2, r0
             beq     SHORT G_M13296_IG13
                        ;; size=20 bbWeight=16 PerfScore 160.00
-G_M13296_IG15:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
+G_M13296_IG15:        ; bbWeight=2, gcrefRegs=0024 {r2 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0-r1]
-            b       SHORT G_M13296_IG17
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M13296_IG16:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
-            cmp     r6, 0
-            beq     SHORT G_M13296_IG21
-                       ;; size=4 bbWeight=2 PerfScore 4.00
-G_M13296_IG17:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r1, [r5+0x14]
             ; gcrRegs +[r1]
-            cmp     r6, r1
-            beq     SHORT G_M13296_IG21
+            cmp     r2, r1
+            beq     SHORT G_M13296_IG19
                         ;; size=6 bbWeight=2 PerfScore 6.00
-G_M13296_IG18:        ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref
+G_M13296_IG16:        ; bbWeight=0.50, gcrefRegs=0024 {r2 r5}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r1]
-            ldr     r1, [r6+0x0C]
+            ldr     r1, [r2+0x0C]
             ; gcrRegs +[r1]
             add     r0, r5, 24
             ; byrRegs +[r0]
@@ -277,10 +270,10 @@ G_M13296_IG18:        ; bbWeight=0.50, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}
             add     r12, pc
             ldr     r12, [r12]
             blx     r12        // CORINFO_HELP_ASSIGN_REF
-            ; gcrRegs -[r1 r6]
+            ; gcrRegs -[r1-r2]
             ; byrRegs -[r0]
                        ;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M13296_IG19:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+G_M13296_IG17:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ldr     r1, [r5+0x18]
             ; gcrRegs +[r1]
             adds    r0, r5, 4
@@ -297,9 +290,9 @@ G_M13296_IG19:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
             movs    r0, 1
             mov     r4, r5
             ; gcrRegs +[r4]
-            b       SHORT G_M13296_IG26
+            b       SHORT G_M13296_IG24
                       ;; size=30 bbWeight=0.50 PerfScore 6.00
-G_M13296_IG20:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M13296_IG18:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r5]
             mvn     r0, 2
             str     r0, [r4+0x1C]
@@ -307,13 +300,13 @@ G_M13296_IG20:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
             ; gcrRegs +[r5]
             b       SHORT G_M13296_IG09
                        ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M13296_IG21:        ; bbWeight=2, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
+G_M13296_IG19:        ; bbWeight=2, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r4]
             movs    r0, 0
             ; gcrRegs +[r0]
             str     r0, [r5+0x18]
                        ;; size=4 bbWeight=2 PerfScore 4.00
-G_M13296_IG22:        ; bbWeight=4, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+G_M13296_IG20:        ; bbWeight=4, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
             movs    r0, 0
             ; gcrRegs +[r0]
@@ -329,13 +322,13 @@ G_M13296_IG22:        ; bbWeight=4, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             cmp     r0, 0
             bne     G_M13296_IG05
                        ;; size=26 bbWeight=4 PerfScore 40.00
-G_M13296_IG23:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+G_M13296_IG21:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             mov     r0, -1
             str     r0, [r5+0x1C]
             ldr     r0, [r5+0x10]
             ; gcrRegs +[r0]
             cmp     r0, 0
-            beq     SHORT G_M13296_IG24
+            beq     SHORT G_M13296_IG22
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
             add     r4, pc
@@ -344,28 +337,28 @@ G_M13296_IG23:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=26 bbWeight=0.50 PerfScore 5.00
-G_M13296_IG24:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
+G_M13296_IG22:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             movs    r0, 0
             ; gcrRegs +[r0]
             str     r0, [r5+0x10]
                        ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M13296_IG25:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
+G_M13296_IG23:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
             mov     r4, r5
             ; gcrRegs +[r4]
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M13296_IG26:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M13296_IG24:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r5]
-            add     sp, 20
-            pop     {r4,r5,r6,r11,pc}
+            add     sp, 24
+            pop     {r4,r5,r11,pc}
                      ;; size=6 bbWeight=1 PerfScore 2.00
-G_M13296_IG27:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M13296_IG25:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             ; gcrRegs -[r4]
-            push    {r3,r4,r5,r6,r11,lr}
+            push    {r2,r3,r4,r5,r11,lr}
             add     r3, r11, 8
-            str     r3, [sp]
+            str     r3, [sp+0x04]
                      ;; size=10 bbWeight=0 PerfScore 0.00
-G_M13296_IG28:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M13296_IG26:        ; bbWeight=0, gcVars=00000001 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ldr     r0, [r11-0x18]  // [V00 this]
             ; gcrRegs +[r0]
             movw    r4, LOW RELOC 0xD1FFAB1E
@@ -376,11 +369,11 @@ G_M13296_IG28:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, by
...
  
-8 (-1.36%) : 19865.dasm - System.Diagnostics.Tracing.EventSource:GetSources():System.Collections.Generic.IEnumerable`1System.Diagnostics.Tracing.EventSource
@@ -9,22 +9,22 @@
 ; 0 inlinees with PGO data; 14 single block inlinees; 9 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T05] (  8, 13   )     ref  ->   r5         class-hnd exact single-def <<unknown class>>
-;  V01 loc1         [V01,T22] (  4,  1   )     ref  ->  [sp+0x08]  class-hnd EH-live spill-single-def <System.Object>
+;  V00 loc0         [V00,T04] (  8, 13   )     ref  ->   r5         class-hnd exact single-def <<unknown class>>
+;  V01 loc1         [V01,T23] (  4,  1   )     ref  ->  [sp+0x08]  class-hnd EH-live spill-single-def <System.Object>
 ;  V02 loc2         [V02    ] (  6,  2.50)   ubyte  ->  [sp+0x0C]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V03 loc3         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.WeakReference`1[System.Diagnostics.Tracing.EventSource]]>
 ;* V04 loc4         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.WeakReference`1[System.Diagnostics.Tracing.EventSource]>
 ;* V05 loc5         [V05    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.Diagnostics.Tracing.EventSource>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07,T17] (  3,  3   )     ref  ->   r5         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V08 tmp2         [V08,T19] (  2,  2   )   ubyte  ->   r1         "Inlining Arg"
+;  V07 tmp1         [V07,T18] (  3,  3   )     ref  ->   r5         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V08 tmp2         [V08,T20] (  2,  2   )   ubyte  ->   r1         "Inlining Arg"
 ;* V09 tmp3         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V10 tmp4         [V10,T18] (  2,  2   )     ref  ->   r6         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V10 tmp4         [V10,T19] (  2,  2   )     ref  ->   r6         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V11 tmp5         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.WeakReference`1[System.Diagnostics.Tracing.EventSource]]>
 ;* V12 tmp6         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V13 tmp7         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
 ;  V14 tmp8         [V14,T06] (  6, 12   )     ref  ->   r2         class-hnd "Inline return value spill temp" <System.Diagnostics.Tracing.EventSource>
-;  V15 tmp9         [V15,T03] (  5, 14   )     int  ->   r0         "Inline stloc first use temp"
+;  V15 tmp9         [V15,T02] (  5, 14   )     int  ->   r0         "Inline stloc first use temp"
 ;* V16 tmp10        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Diagnostics.Tracing.EventSource>
 ;  V17 tmp11        [V17,T14] (  3,  6   )     ref  ->   r2         class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
 ;* V18 tmp12        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Diagnostics.Tracing.EventSource>
@@ -32,27 +32,28 @@
 ;  V20 tmp14        [V20,T07] (  3, 12   )     ref  ->  [sp+0x04]  class-hnd spill-single-def "updating class info" <System.ComAwareWeakReference>
 ;* V21 tmp15        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp16        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V23 tmp17        [V23,T12] (  2,  8   )     ref  ->   r0         class-hnd "dup spill" <System.Object>
-;  V24 tmp18        [V24,T10] (  4,  8   )     ref  ->   r0        
+;  V23 tmp17        [V23,T11] (  2,  8   )     ref  ->   r0         class-hnd "dup spill" <System.Object>
+;  V24 tmp18        [V24,T09] (  4,  8   )     ref  ->   r0        
 ;* V25 tmp19        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Diagnostics.Tracing.EventSource>
 ;  V26 tmp20        [V26,T15] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V27 tmp21        [V27,T11] (  4,  8   )     int  ->   r1         "Inline stloc first use temp"
+;  V27 tmp21        [V27,T10] (  4,  8   )     int  ->   r1         "Inline stloc first use temp"
 ;* V28 tmp22        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Diagnostics.Tracing.EventSource>
-;* V29 tmp23        [V29,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V29 tmp23        [V29,T12] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V30 tmp24        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp25        [V31,T02] (  4, 12.50)     ref  ->   r6         single-def "field V03._list (fldOffset=0x0)" P-INDEP
-;  V32 tmp26        [V32,T04] (  3, 10   )     ref  ->   r9         "field V03._current (fldOffset=0x4)" P-INDEP
+;  V31 tmp25        [V31,T05] (  4, 12.50)     ref  ->   r6         single-def "field V03._list (fldOffset=0x0)" P-INDEP
+;  V32 tmp26        [V32,T03] (  3, 10   )     ref  ->   r9         "field V03._current (fldOffset=0x4)" P-INDEP
 ;  V33 tmp27        [V33,T00] (  6, 20.50)     int  ->   r8         "field V03._index (fldOffset=0x8)" P-INDEP
-;  V34 tmp28        [V34,T09] (  3,  8.50)     int  ->   r7         "field V03._version (fldOffset=0xc)" P-INDEP
-;  V35 tmp29        [V35,T20] (  3,  1.50)     ref  ->   r6         single-def "field V11._list (fldOffset=0x0)" P-INDEP
+;  V34 tmp28        [V34,T16] (  2,  4.50)     int  ->   r7         "field V03._version (fldOffset=0xc)" P-INDEP
+;  V35 tmp29        [V35,T21] (  3,  1.50)     ref  ->   r6         single-def "field V11._list (fldOffset=0x0)" P-INDEP
 ;* V36 tmp30        [V36    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._current (fldOffset=0x4)" P-INDEP
-;* V37 tmp31        [V37,T25] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
-;  V38 tmp32        [V38,T23] (  2,  1   )     int  ->   r7         "field V11._version (fldOffset=0xc)" P-INDEP
+;* V37 tmp31        [V37,T26] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
+;  V38 tmp32        [V38,T24] (  2,  1   )     int  ->   r7         "field V11._version (fldOffset=0xc)" P-INDEP
 ;  V39 tmp33        [V39,T01] (  3, 24   )     ref  ->   r0         "arr expr"
-;  V40 PSPSym       [V40,T24] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
-;  V41 cse0         [V41,T21] (  3,  1.50)   byref  ->   r6         "CSE - moderate"
-;  V42 cse1         [V42,T16] (  6,  3   )     ref  ->   r0         multi-def "CSE - moderate"
-;  V43 cse2         [V43,T08] (  3, 12   )     int  ->   r9         "CSE - aggressive"
+;  V40 PSPSym       [V40,T25] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
+;  V41 cse0         [V41,T22] (  3,  1.50)   byref  ->   r6         "CSE - moderate"
+;  V42 cse1         [V42,T17] (  6,  3   )     ref  ->   r0         multi-def "CSE - moderate"
+;  V43 cse2         [V43,T13] (  2,  8   )     int  ->   r0         "CSE - aggressive"
+;  V44 cse3         [V44,T08] (  2,  8   )     int  ->   r0         "CSE - aggressive"
 ;
 ; Lcl frame size = 20
 
@@ -133,7 +134,7 @@ G_M58508_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, by
             movs    r1, 0
             str     r1, [sp+0x0C]  // [V02 loc2]
                        ;; size=70 bbWeight=0.50 PerfScore 13.00
-G_M58508_IG06:        ; bbWeight=0.50, gcVars=00400000 {V01}, gcrefRegs=0021 {r0 r5}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M58508_IG06:        ; bbWeight=0.50, gcVars=00800000 {V01}, gcrefRegs=0021 {r0 r5}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x0C] // [V02 loc2]
             cmp     r1, 0
             bne     SHORT G_M58508_IG12
@@ -204,17 +205,17 @@ G_M58508_IG08:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6},
             mov     r8, 0
                        ;; size=10 bbWeight=0.50 PerfScore 1.50
 G_M58508_IG09:        ; bbWeight=4, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
-            ldr     r9, [r6+0x0C]
-            cmp     r7, r9
-            bne     SHORT G_M58508_IG18
+            ldr     r0, [r6+0x0C]
+            cmp     r7, r0
+            bne     SHORT G_M58508_IG19
             ldr     r0, [r6+0x08]
             cmp     r8, r0
-            bhs     SHORT G_M58508_IG21
+            bhs     SHORT G_M58508_IG20
             ldr     r0, [r6+0x04]
             ; gcrRegs +[r0]
             ldr     r3, [r0+0x04]
             cmp     r8, r3
-            bhs     SHORT G_M58508_IG19
+            bhs     SHORT G_M58508_IG18
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -228,7 +229,7 @@ G_M58508_IG09:        ; bbWeight=4, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
             ands    r0, r3
             cmp     r0, 0
             bne     SHORT G_M58508_IG13
-                      ;; size=50 bbWeight=4 PerfScore 76.00
+                     ;; size=48 bbWeight=4 PerfScore 76.00
 G_M58508_IG10:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r9]
             movs    r2, 0
@@ -345,14 +346,8 @@ G_M58508_IG17:        ; bbWeight=2, gcrefRegs=0064 {r2 r5 r6}, byrefRegs=0000 {}
             ; gcr arg pop 0
             b       SHORT G_M58508_IG09
                        ;; size=20 bbWeight=2 PerfScore 16.00
-G_M58508_IG18:        ; bbWeight=4, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r6]
-            cmp     r7, r9
-            bne     SHORT G_M58508_IG20
-            b       SHORT G_M58508_IG21
-                       ;; size=6 bbWeight=4 PerfScore 12.00
-G_M58508_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r5]
+G_M58508_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r5-r6]
             movw    r3, LOW RELOC 0xD1FFAB1E
             movt    r3, HIGH RELOC 0xD1FFAB1E
             add     r3, pc
@@ -360,7 +355,7 @@ G_M58508_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M58508_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M58508_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
             add     r4, pc
@@ -369,11 +364,11 @@ G_M58508_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=16 bbWeight=0 PerfScore 0.00
-G_M58508_IG21:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+G_M58508_IG20:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r5]
             ldrb    r0, [sp+0x0C]
             cmp     r0, 0
-            beq     SHORT G_M58508_IG22
+            beq     SHORT G_M58508_IG21
             ldr     r0, [sp+0x08]   // [V01 loc1]
             ; gcrRegs +[r0]
             movw    r4, LOW RELOC 0xD1FFAB1E
@@ -385,41 +380,41 @@ G_M58508_IG21:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=24 bbWeight=0.50 PerfScore 4.50
-G_M58508_IG22:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
+G_M58508_IG21:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             mov     r0, r5
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M58508_IG23:        ; bbWeight=0.50, epilog, nogc, extend
+G_M58508_IG22:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 20
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M58508_IG24:        ; bbWeight=0, gcVars=00400000 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M58508_IG23:        ; bbWeight=0, gcVars=00800000 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
             ; gcrRegs -[r0 r5]
-            ; GC ptr vars +{V01}
+            ; GC ptr vars +{V01 V23}
             push    {r3,r4,r5,r6,r7,r8,r9,r10,r11,lr}
             add     r3, r11, 8
             str     r3, [sp]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M58508_IG25:        ; bbWeight=0, gcVars=00400000 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M58508_IG24:        ; bbWeight=0, gcVars=00800000 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r0, [r11-0x24]    // [V02 loc2]
             cmp     r0, 0
-            beq     SHORT G_M58508_IG26
+            beq     SHORT G_M58508_IG25
             ldr     r0, [r11-0x28]  // [V01 loc1]
             ; gcrRegs +[r0]
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
             add     r4, pc
             ldr     r3, [r4]
-            ; GC ptr vars -{V01}
+            ; GC ptr vars -{V01 V23}
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=26 bbWeight=0 PerfScore 0.00
-G_M58508_IG26:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M58508_IG25:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
             pop     {r3,r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 588, prolog size 14, PerfScore 277.00, instruction count 222, allocated bytes for code 588 (MethodHash=ee0a1b73) for method System.Diagnostics.Tracing.EventSource:GetSources():System.Collections.Generic.IEnumerable`1[System.Diagnostics.Tracing.EventSource] (FullOpts)
+; Total bytes of code 580, prolog size 14, PerfScore 265.00, instruction count 219, allocated bytes for code 580 (MethodHash=ee0a1b73) for method System.Diagnostics.Tracing.EventSource:GetSources():System.Collections.Generic.IEnumerable`1[System.Diagnostics.Tracing.EventSource] (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -431,7 +426,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 274 (0x00112) Actual length = 548 (0x000224)
+  Function Length   : 270 (0x0010e) Actual length = 540 (0x00021c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -467,4 +462,4 @@ Unwind Info:
 
 *************** EH table for System.Diagnostics.Tracing.EventSource:GetSources():System.Collections.Generic.IEnumerable`1[System.Diagnostics.Tracing.EventSource]
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M58508_IG06..G_M58508_IG21) handled by [G_M58508_IG24..END) (fault)
+EH#0: try [G_M58508_IG06..G_M58508_IG20) handled by [G_M58508_IG23..END) (fault)
  
-2 (-0.26%) : 18274.dasm - System.IO.BinaryReader:Read():int:this (FullOpts)
@@ -96,7 +96,7 @@ G_M11311_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M11311_IG02:        ; bbWeight=1, gcVars=00000002 {V00}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r0, [r4+0x1B]
             cmp     r0, 0
-            bne     G_M11311_IG28
+            bne     G_M11311_IG29
             movs    r0, 0
             movs    r3, 0
             str     r0, [r9+0x28]
@@ -234,7 +234,7 @@ G_M11311_IG12:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byre
                        ;; size=38 bbWeight=2 PerfScore 30.00
 G_M11311_IG13:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref, isz
             cmp     r6, 0
-            beq     G_M11311_IG26
+            beq     G_M11311_IG27
                         ;; size=6 bbWeight=2 PerfScore 4.00
 G_M11311_IG14:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref, isz
             subs    r1, r6, 1
@@ -270,12 +270,26 @@ G_M11311_IG16:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byre
             ldr     r7, [r4+0x0C]
             ; gcrRegs +[r7]
             cmp     r6, 128
-            bhi     SHORT G_M11311_IG19
+            bls     SHORT G_M11311_IG18
+                       ;; size=10 bbWeight=4 PerfScore 16.00
+G_M11311_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r4 r7]
+            ; byrRegs -[r5]
+            movw    r4, LOW RELOC 0xD1FFAB1E
+            movt    r4, HIGH RELOC 0xD1FFAB1E
+            add     r4, pc
+            ldr     r3, [r4]
+            blx     r3     // System.ThrowHelper:ThrowArgumentOutOfRangeException()
+            ; gcr arg pop 0
+            bkpt    
+                       ;; size=16 bbWeight=0 PerfScore 0.00
+G_M11311_IG18:        ; bbWeight=4, gcrefRegs=0080 {r7}, byrefRegs=0020 {r5}, byref, isz
+            ; gcrRegs +[r7]
+            ; byrRegs +[r5]
             cmp     r6, 0
-            bge     SHORT G_M11311_IG18
-                       ;; size=14 bbWeight=4 PerfScore 24.00
-G_M11311_IG17:        ; bbWeight=2, gcrefRegs=0080 {r7}, byrefRegs=0020 {r5}, byref
-            ; gcrRegs -[r4]
+            bge     SHORT G_M11311_IG20
+                       ;; size=4 bbWeight=4 PerfScore 8.00
+G_M11311_IG19:        ; bbWeight=2, gcrefRegs=0080 {r7}, byrefRegs=0020 {r5}, byref
             movw    r1, LOW RELOC 0xD1FFAB1E
             movt    r1, HIGH RELOC 0xD1FFAB1E
             add     r1, pc
@@ -306,7 +320,7 @@ G_M11311_IG17:        ; bbWeight=2, gcrefRegs=0080 {r7}, byrefRegs=0020 {r5}, by
             ; gcrRegs -[r0-r1 r8]
             ; gcr arg pop 0
                        ;; size=52 bbWeight=2 PerfScore 40.00
-G_M11311_IG18:        ; bbWeight=4, gcrefRegs=0080 {r7}, byrefRegs=0020 {r5}, byref, isz
+G_M11311_IG20:        ; bbWeight=4, gcrefRegs=0080 {r7}, byrefRegs=0020 {r5}, byref
             mov     r2, r6
             addw    r3, r9, 36 // [V05 loc4]
             ; byrRegs +[r3]
@@ -328,24 +342,12 @@ G_M11311_IG18:        ; bbWeight=4, gcrefRegs=0080 {r7}, byrefRegs=0020 {r5}, by
             ; byrRegs -[r1 r3]
             ; gcr arg pop 0
             mov     r6, r0
-            b       SHORT G_M11311_IG20
-                       ;; size=42 bbWeight=4 PerfScore 64.00
-G_M11311_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; byrRegs -[r5]
-            movw    r4, LOW RELOC 0xD1FFAB1E
-            movt    r4, HIGH RELOC 0xD1FFAB1E
-            add     r4, pc
-            ldr     r3, [r4]
-            blx     r3     // System.ThrowHelper:ThrowArgumentOutOfRangeException()
-            ; gcr arg pop 0
-            bkpt    
-                       ;; size=16 bbWeight=0 PerfScore 0.00
-G_M11311_IG20:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref, isz
-            ; byrRegs +[r5]
+                      ;; size=40 bbWeight=4 PerfScore 60.00
+G_M11311_IG21:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref, isz
             cmp     r6, 2
-            blt     SHORT G_M11311_IG22
+            blt     SHORT G_M11311_IG23
                       ;; size=4 bbWeight=4 PerfScore 8.00
-G_M11311_IG21:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref
+G_M11311_IG22:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref
             movw    r1, LOW RELOC 0xD1FFAB1E
             movt    r1, HIGH RELOC 0xD1FFAB1E
             add     r1, pc
@@ -368,18 +370,18 @@ G_M11311_IG21:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byre
             ; gcrRegs -[r0-r1 r8]
             ; gcr arg pop 0
                        ;; size=46 bbWeight=2 PerfScore 32.00
-G_M11311_IG22:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref, isz
+G_M11311_IG23:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref, isz
             cmp     r6, 0
             ldr     r4, [r9+0x14]  // [V00 this]
             ; gcrRegs +[r4]
             beq     G_M11311_IG07
                        ;; size=10 bbWeight=4 PerfScore 12.00
-G_M11311_IG23:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M11311_IG24:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r4]
             ; byrRegs -[r5]
             ; GC ptr vars -{V00}
             cmp     r6, 0
-            bgt     SHORT G_M11311_IG24
+            bgt     SHORT G_M11311_IG25
             movw    r1, LOW RELOC 0xD1FFAB1E
             movt    r1, HIGH RELOC 0xD1FFAB1E
             add     r1, pc
@@ -398,7 +400,7 @@ G_M11311_IG23:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, by
             ; gcrRegs -[r0-r1 r8]
             ; gcr arg pop 0
                        ;; size=38 bbWeight=0.50 PerfScore 7.00
-G_M11311_IG24:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M11311_IG25:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ldrh    r0, [r9+0x24]  // [V05 loc4]
             movw    r12, LOW RELOC 0xD1FFAB1E
             movt    r12, HIGH RELOC 0xD1FFAB1E
@@ -406,7 +408,7 @@ G_M11311_IG24:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldr     r12, [r12]
             ldr     lr, [r9+0x10]  // [V53 GsCookie]
             cmp     r12, lr
-            beq     SHORT G_M11311_IG25
+            beq     SHORT G_M11311_IG26
             movw    r12, LOW RELOC 0xD1FFAB1E
             movt    r12, HIGH RELOC 0xD1FFAB1E
             add     r12, pc
@@ -414,12 +416,12 @@ G_M11311_IG24:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             blx     r12        // CORINFO_HELP_FAIL_FAST
             ; gcr arg pop 0
                        ;; size=42 bbWeight=0.50 PerfScore 6.50
-G_M11311_IG25:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M11311_IG26:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             mov     sp, r9
             add     sp, 52
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M11311_IG26:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M11311_IG27:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             mov     r0, -1
             movw    r12, LOW RELOC 0xD1FFAB1E
             movt    r12, HIGH RELOC 0xD1FFAB1E
@@ -427,7 +429,7 @@ G_M11311_IG26:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, by
             ldr     r12, [r12]
             ldr     lr, [r9+0x10]  // [V53 GsCookie]
             cmp     r12, lr
-            beq     SHORT G_M11311_IG27
+            beq     SHORT G_M11311_IG28
             movw    r12, LOW RELOC 0xD1FFAB1E
             movt    r12, HIGH RELOC 0xD1FFAB1E
             add     r12, pc
@@ -435,12 +437,12 @@ G_M11311_IG26:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, by
             blx     r12        // CORINFO_HELP_FAIL_FAST
             ; gcr arg pop 0
                        ;; size=42 bbWeight=0.50 PerfScore 6.50
-G_M11311_IG27:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M11311_IG28:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             mov     sp, r9
             add     sp, 52
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M11311_IG28:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M11311_IG29:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
             add     r4, pc
@@ -449,14 +451,14 @@ G_M11311_IG28:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=16 bbWeight=0 PerfScore 0.00
-G_M11311_IG29:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M11311_IG30:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
             ; GC ptr vars +{V00 V01}
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             sub     sp, 12
             add     r3, r11, 8
             str     r3, [sp+0x08]
                        ;; size=12 bbWeight=0 PerfScore 0.00
-G_M11311_IG30:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M11311_IG31:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ldr     r4, [r11-0x3C]    // [V00 this]
             ; gcrRegs +[r4]
             ldr     r0, [r4+0x04]
@@ -471,7 +473,7 @@ G_M11311_IG30:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, by
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M11311_IG31
+            beq     SHORT G_M11311_IG32
             ldr     r4, [r11-0x3C]  // [V00 this]
             ; gcrRegs +[r4]
             ldr     r5, [r4+0x04]
@@ -505,7 +507,7 @@ G_M11311_IG30:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, by
             ; gcrRegs -[r0 r5]
             ; gcr arg pop 0
                        ;; size=86 bbWeight=0 PerfScore 0.00
-G_M11311_IG31:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M11311_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, LOW RELOC 0xD1FFAB1E
             movt    r3, HIGH RELOC 0xD1FFAB1E
             add     r3, pc
@@ -515,7 +517,7 @@ G_M11311_IG31:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 784, prolog size 46, PerfScore 398.00, instruction count 285, allocated bytes for code 784 (MethodHash=2c23d3d0) for method System.IO.BinaryReader:Read():int:this (FullOpts)
+; Total bytes of code 782, prolog size 46, PerfScore 394.00, instruction count 284, allocated bytes for code 782 (MethodHash=2c23d3d0) for method System.IO.BinaryReader:Read():int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -527,7 +529,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 335 (0x0014f) Actual length = 670 (0x00029e)
+  Function Length   : 334 (0x0014e) Actual length = 668 (0x00029c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -564,4 +566,4 @@ Unwind Info:
 
 *************** EH table for System.IO.BinaryReader:Read():int:this
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M11311_IG16..G_M11311_IG20) handled by [G_M11311_IG29..END) (class: 2000063)
+EH#0: try [G_M11311_IG16..G_M11311_IG21) handled by [G_M11311_IG30..END) (class: 2000063)
  
+0 (0.00%) : 159128.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) (FullOpts)
@@ -9,54 +9,55 @@
 ; 0 inlinees with PGO data; 18 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T15] ( 15, 14.50)     ref  ->  [sp+0x3C]  class-hnd <System.Reflection.MemberInfo>
+;  V00 arg0         [V00,T16] ( 15, 14.50)     ref  ->  [sp+0x3C]  class-hnd <System.Reflection.MemberInfo>
 ;  V01 arg1         [V01,T07] ( 12, 39.50)     ref  ->  registers   class-hnd <System.Reflection.ParameterInfo[]>
-;  V02 arg2         [V02,T12] (  6, 19.50)     int  ->   r7         single-def
-;  V03 arg3         [V03,T10] (  8, 29.50)   ubyte  ->   r6         single-def
-;  V04 arg4         [V04,T38] (  1,  0.50)     ref  ->  [sp+0x90]  class-hnd single-def <System.Object[]>
-;  V05 arg5         [V05,T13] (  2, 18   )     int  ->   r8         single-def
-;  V06 arg6         [V06,T39] (  1,  0.50)     ref  ->  [sp+0x98]  class-hnd single-def <System.String[]>
-;  V07 arg7         [V07,T40] (  1,  0.50)     ref  ->  [sp+0x9C]  class-hnd single-def <System.Type[]>
-;  V08 arg8         [V08,T37] (  1,  1   )   ubyte  ->  [sp+0xA0]  single-def
-;  V09 arg9         [V09,T16] (  6, 14   )     ref  ->  [sp+0xA4]  class-hnd single-def <System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method]>
-;  V10 arg10        [V10,T30] (  2,  4   )     ref  ->  [sp+0xA8]  class-hnd single-def <Microsoft.VisualBasic.CompilerServices.Symbols+Container>
-;  V11 loc0         [V11,T27] (  9,  5   )     ref  ->  [sp+0x38]  class-hnd <Microsoft.VisualBasic.CompilerServices.Symbols+Method>
-;  V12 loc1         [V12,T14] (  6, 18.50)     ref  ->  [sp+0x34]  class-hnd spill-single-def <System.Reflection.MethodBase>
-;  V13 loc2         [V13,T28] (  4,  5   )   ubyte  ->  [sp+0x64] 
-;  V14 loc3         [V14,T29] (  3,  5   )     int  ->  [sp+0x60]  spill-single-def
+;  V02 arg2         [V02,T13] (  6, 19.50)     int  ->   r7         single-def
+;  V03 arg3         [V03,T12] (  7, 21.50)   ubyte  ->   r6         single-def
+;  V04 arg4         [V04,T39] (  1,  0.50)     ref  ->  [sp+0x90]  class-hnd single-def <System.Object[]>
+;  V05 arg5         [V05,T14] (  2, 18   )     int  ->  [sp+0x94]  single-def
+;  V06 arg6         [V06,T40] (  1,  0.50)     ref  ->  [sp+0x98]  class-hnd single-def <System.String[]>
+;  V07 arg7         [V07,T41] (  1,  0.50)     ref  ->  [sp+0x9C]  class-hnd single-def <System.Type[]>
+;  V08 arg8         [V08,T38] (  1,  1   )   ubyte  ->  [sp+0xA0]  single-def
+;  V09 arg9         [V09,T17] (  6, 14   )     ref  ->  [sp+0xA4]  class-hnd single-def <System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method]>
+;  V10 arg10        [V10,T31] (  2,  4   )     ref  ->  [sp+0xA8]  class-hnd single-def <Microsoft.VisualBasic.CompilerServices.Symbols+Container>
+;  V11 loc0         [V11,T28] (  9,  5   )     ref  ->  [sp+0x38]  class-hnd <Microsoft.VisualBasic.CompilerServices.Symbols+Method>
+;  V12 loc1         [V12,T15] (  6, 18.50)     ref  ->  [sp+0x34]  class-hnd spill-single-def <System.Reflection.MethodBase>
+;  V13 loc2         [V13,T29] (  4,  5   )   ubyte  ->  [sp+0x64] 
+;  V14 loc3         [V14,T30] (  3,  5   )     int  ->  [sp+0x60]  spill-single-def
 ;  V15 loc4         [V15,T11] (  6, 24.50)     int  ->  [sp+0x5C] 
-;  V16 loc5         [V16,T02] ( 15, 82   )     ref  ->  [sp+0x30]  class-hnd exact spill-single-def <Microsoft.VisualBasic.CompilerServices.Symbols+Method>
+;  V16 loc5         [V16,T02] ( 15, 74   )     ref  ->  [sp+0x30]  class-hnd exact spill-single-def <Microsoft.VisualBasic.CompilerServices.Symbols+Method>
 ;  V17 loc6         [V17,T08] (  3, 34   )     ref  ->  [sp+0x2C]  class-hnd spill-single-def <System.Reflection.ParameterInfo[]>
 ;  V18 loc7         [V18,T09] (  9, 32   )     ref  ->  [sp+0x28]  class-hnd <System.Reflection.MethodBase>
 ;  V19 loc8         [V19,T00] (  8, 84   )     int  ->  [sp+0x58] 
 ;  V20 loc9         [V20,T01] (  8, 84   )     int  ->  [sp+0x54] 
-;* V21 loc10        [V21,T34] (  0,  0   )     int  ->  zero-ref   
-;  V22 loc11        [V22,T06] (  4, 50   )     int  ->  [sp+0x50] 
+;* V21 loc10        [V21,T35] (  0,  0   )     int  ->  zero-ref   
+;  V22 loc11        [V22,T05] (  4, 50   )     int  ->  [sp+0x50] 
 ;  V23 loc12        [V23    ] (  3, 48   )   ubyte  ->  [sp+0x4C]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V24 loc13        [V24    ] (  3, 48   )   ubyte  ->  [sp+0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V25 loc14        [V25    ] (  3, 48   )   ubyte  ->  [sp+0x44]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V26 OutArgs      [V26    ] (  1,  1   )  struct (24) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V27 tmp1         [V27,T17] (  9,  9   )     ref  ->   r9         class-hnd exact single-def "NewObj constructor temp" <Microsoft.VisualBasic.CompilerServices.Symbols+Method>
-;  V28 tmp2         [V28,T19] (  8,  8   )     ref  ->   r8         class-hnd exact single-def "NewObj constructor temp" <Microsoft.VisualBasic.CompilerServices.Symbols+Method>
+;  V27 tmp1         [V27,T18] (  9,  9   )     ref  ->   r9         class-hnd exact single-def "NewObj constructor temp" <Microsoft.VisualBasic.CompilerServices.Symbols+Method>
+;  V28 tmp2         [V28,T20] (  8,  8   )     ref  ->   r8         class-hnd exact single-def "NewObj constructor temp" <Microsoft.VisualBasic.CompilerServices.Symbols+Method>
 ;* V29 tmp3         [V29    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V30 tmp4         [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Reflection.ParameterInfo[]>
 ;* V31 tmp5         [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Type>
-;  V32 tmp6         [V32,T18] (  9,  9   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <Microsoft.VisualBasic.CompilerServices.Symbols+Method>
-;  V33 tmp7         [V33,T35] (  2,  1   )   ubyte  ->   r0         "Inline return value spill temp"
-;  V34 tmp8         [V34,T36] (  2,  1   )   ubyte  ->   r0         "Inline return value spill temp"
-;  V35 tmp9         [V35,T31] (  3,  3   )     ref  ->  [sp+0x24]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodBase>
-;  V36 tmp10        [V36,T25] (  2,  4   )   ubyte  ->   r0         "Inline return value spill temp"
-;  V37 tmp11        [V37,T26] (  2,  4   )   ubyte  ->   r0         "Inline return value spill temp"
-;  V38 tmp12        [V38,T33] (  2,  2   )     ref  ->  [sp+0x20]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.PropertyInfo>
-;  V39 tmp13        [V39,T32] (  3,  3   )     ref  ->  [sp+0x1C]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodBase>
+;  V32 tmp6         [V32,T19] (  9,  9   )     ref  ->   r2         class-hnd exact single-def "NewObj constructor temp" <Microsoft.VisualBasic.CompilerServices.Symbols+Method>
+;  V33 tmp7         [V33,T36] (  2,  1   )   ubyte  ->   r0         "Inline return value spill temp"
+;  V34 tmp8         [V34,T37] (  2,  1   )   ubyte  ->   r0         "Inline return value spill temp"
+;  V35 tmp9         [V35,T32] (  3,  3   )     ref  ->  [sp+0x24]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodBase>
+;  V36 tmp10        [V36,T26] (  2,  4   )   ubyte  ->   r0         "Inline return value spill temp"
+;  V37 tmp11        [V37,T27] (  2,  4   )   ubyte  ->   r0         "Inline return value spill temp"
+;  V38 tmp12        [V38,T34] (  2,  2   )     ref  ->  [sp+0x20]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.PropertyInfo>
+;  V39 tmp13        [V39,T33] (  3,  3   )     ref  ->  [sp+0x1C]  class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodBase>
 ;  V40 tmp14        [V40,T03] (  2, 64   )     ref  ->   r1         "argument with side effect"
-;  V41 tmp15        [V41,T04] (  2, 64   )     ref  ->   r9         "argument with side effect"
-;  V42 tmp16        [V42,T23] (  2,  8   )     int  ->   r3         "argument with side effect"
-;  V43 tmp17        [V43,T24] (  2,  8   )     int  ->  [sp+0x40]  spill-single-def "argument with side effect"
-;  V44 tmp18        [V44,T20] (  2,  8   )     ref  ->  [sp+0x18]  spill-single-def "argument with side effect"
-;  V45 tmp19        [V45,T21] (  2,  8   )     ref  ->   r0         "argument with side effect"
-;  V46 tmp20        [V46,T22] (  2,  8   )     ref  ->   r0         "argument with side effect"
-;  V47 cse0         [V47,T05] (  5, 52   )     int  ->   r3         multi-def "CSE - aggressive"
+;  V41 tmp15        [V41,T04] (  2, 64   )     ref  ->   r3         "argument with side effect"
+;  V42 tmp16        [V42,T24] (  2,  8   )     int  ->   r3         "argument with side effect"
+;  V43 tmp17        [V43,T25] (  2,  8   )     int  ->  [sp+0x40]  spill-single-def "argument with side effect"
+;  V44 tmp18        [V44,T21] (  2,  8   )     ref  ->  [sp+0x18]  spill-single-def "argument with side effect"
+;  V45 tmp19        [V45,T22] (  2,  8   )     ref  ->   r0         "argument with side effect"
+;  V46 tmp20        [V46,T23] (  2,  8   )     ref  ->   r0         "argument with side effect"
+;  V47 cse0         [V47,T10] (  5, 28   )     int  ->   r3         multi-def "CSE - aggressive"
+;  V48 cse1         [V48,T06] (  5, 44   )     int  ->  registers   multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 108
 
@@ -75,27 +76,25 @@ G_M30168_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     r7, r2
             mov     r6, r3
             ldr     r8, [sp+0x94]  // [V05 arg5]
-            ldr     r10, [sp+0xA4]   // [V09 arg9]
-            ; gcrRegs +[r10]
-                       ;; size=34 bbWeight=1 PerfScore 13.00
-G_M30168_IG02:        ; bbWeight=1, gcrefRegs=0620 {r5 r9 r10}, byrefRegs=0000 {}, byref, isz
-            movs    r3, 0
-            ; gcrRegs +[r3]
-            str     r3, [sp+0x38]  // [V11 loc0]
+                     ;; size=30 bbWeight=1 PerfScore 12.00
+G_M30168_IG02:        ; bbWeight=1, gcrefRegs=0220 {r5 r9}, byrefRegs=0000 {}, byref, isz
+            movs    r2, 0
+            ; gcrRegs +[r2]
+            str     r2, [sp+0x38]  // [V11 loc0]
             ; GC ptr vars +{V11}
             ldrb    r0, [sp+0xA0]  // [V08 arg8]
             cmp     r0, 0
             bne     G_M30168_IG12
                        ;; size=14 bbWeight=1 PerfScore 5.00
-G_M30168_IG03:        ; bbWeight=0.50, gcVars=0000000008000000 {V11}, gcrefRegs=0620 {r5 r9 r10}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[r3]
+G_M30168_IG03:        ; bbWeight=0.50, gcVars=0000000010000000 {V11}, gcrefRegs=0220 {r5 r9}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[r2]
             mov     r0, r9
             ; gcrRegs +[r0]
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
             add     r4, pc
-            ldr     r2, [r4]
-            blx     r2     // CORINFO_HELP_READYTORUN_ISINSTANCEOF
+            ldr     r1, [r4]
+            blx     r1     // CORINFO_HELP_READYTORUN_ISINSTANCEOF
             str     r0, [sp+0x34]    // [V12 loc1]
             ; GC ptr vars +{V12}
             movs    r3, 0
@@ -145,9 +144,9 @@ G_M30168_IG03:        ; bbWeight=0.50, gcVars=0000000008000000 {V11}, gcrefRegs=
             ; GC ptr vars -{V11}
             blx     r3     // CORINFO_HELP_READYTORUN_NEW
             ; gcrRegs -[r9] +[r0]
-            mov     r4, r0
-            ; gcrRegs +[r4]
-            add     r0, r4, 12
+            mov     r2, r0
+            ; gcrRegs +[r2]
+            add     r0, r2, 12
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
             mov     r1, r5
@@ -159,7 +158,7 @@ G_M30168_IG03:        ; bbWeight=0.50, gcVars=0000000008000000 {V11}, gcrefRegs=
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            add     r0, r4, 16
+            add     r0, r2, 16
             ; byrRegs +[r0]
             mov     r1, r5
             ; gcrRegs +[r1]
@@ -170,11 +169,11 @@ G_M30168_IG03:        ; bbWeight=0.50, gcVars=0000000008000000 {V11}, gcrefRegs=
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1 r5]
             ; byrRegs -[r0]
-            str     r7, [r4+0x24]
-            strb    r6, [r4+0x28]
+            str     r7, [r2+0x24]
+            strb    r6, [r2+0x28]
             movs    r1, 1
-            strb    r1, [r4+0x2B]
-            adds    r0, r4, 4
+            strb    r1, [r2+0x2B]
+            adds    r0, r2, 4
             ; byrRegs +[r0]
             ldr     r1, [sp+0x34]  // [V12 loc1]
             ; gcrRegs +[r1]
@@ -184,7 +183,7 @@ G_M30168_IG03:        ; bbWeight=0.50, gcVars=0000000008000000 {V11}, gcrefRegs=
             ldr     r12, [r12]
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; byrRegs -[r0]
-            add     r0, r4, 8
+            add     r0, r2, 8
             ; byrRegs +[r0]
             movw    r12, LOW RELOC 0xD1FFAB1E
             movt    r12, HIGH RELOC 0xD1FFAB1E
@@ -193,13 +192,13 @@ G_M30168_IG03:        ; bbWeight=0.50, gcVars=0000000008000000 {V11}, gcrefRegs=
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            mov     r5, r4
+            mov     r5, r2
             ; gcrRegs +[r5]
             movs    r3, 0
             str     r3, [sp]   // [V26 OutArgs]
                        ;; size=218 bbWeight=0.50 PerfScore 40.00
-G_M30168_IG04:        ; bbWeight=0.50, gcrefRegs=0420 {r5 r10}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4]
+G_M30168_IG04:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2]
             str     r3, [sp+0x04]   // [V26 OutArgs+0x04]
             ldr     r3, [sp+0x9C]  // [V07 arg7]
             ; gcrRegs +[r3]
@@ -220,7 +219,7 @@ G_M30168_IG04:        ; bbWeight=0.50, gcrefRegs=0420 {r5 r10}, byrefRegs=0000 {
             movs    r0, 1
             strb    r0, [r5+0x29]
                        ;; size=36 bbWeight=0.50 PerfScore 7.00
-G_M30168_IG05:        ; bbWeight=0.50, gcrefRegs=0420 {r5 r10}, byrefRegs=0000 {}, byref
+G_M30168_IG05:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             movs    r0, 1
             strb    r0, [r5+0x2E]
             ldr     r0, [r5+0x04]
@@ -239,7 +238,7 @@ G_M30168_IG05:        ; bbWeight=0.50, gcrefRegs=0420 {r5 r10}, byrefRegs=0000 {
             ; GC ptr vars +{V11}
             mov     r5, r4
                        ;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M30168_IG06:        ; bbWeight=0.50, gcVars=0000000008004000 {V11 V12}, gcrefRegs=0620 {r5 r9 r10}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M30168_IG06:        ; bbWeight=0.50, gcVars=0000000010008000 {V11 V12}, gcrefRegs=0220 {r5 r9}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0 r4]
             cmp     r9, 0
             beq     SHORT G_M30168_IG07
@@ -295,8 +294,8 @@ G_M30168_IG06:        ; bbWeight=0.50, gcVars=0000000008004000 {V11 V12}, gcrefR
             movs    r3, 1
             str     r3, [sp+0x64]  // [V13 loc2]
                        ;; size=104 bbWeight=0.50 PerfScore 20.50
-G_M30168_IG07:        ; bbWeight=0.50, gcrefRegs=0620 {r5 r9 r10}, byrefRegs=0000 {}, byref, isz
-            mov     r0, r10
+G_M30168_IG07:        ; bbWeight=0.50, gcrefRegs=0220 {r5 r9}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [sp+0xA4]  // [V09 arg9]
             ; gcrRegs +[r0]
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
@@ -306,15 +305,14 @@ G_M30168_IG07:        ; bbWeight=0.50, gcrefRegs=0620 {r5 r9 r10}, byrefRegs=000
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             subs    r4, r0, 1
-            bvs     G_M30168_IG46
+            bvs     G_M30168_IG47
             str     r4, [sp+0x60]   // [V14 loc3]
             movs    r3, 0
             cmp     r4, 0
             blt     SHORT G_M30168_IG11
                        ;; size=32 bbWeight=0.50 PerfScore 6.50
-G_M30168_IG08:        ; bbWeight=4, gcrefRegs=0620 {r5 r9 r10}, byrefRegs=0000 {}, byref, isz
-            str     r10, [sp+0xA4] // [V09 arg9]
-            mov     r0, r10
+G_M30168_IG08:        ; bbWeight=4, gcrefRegs=0220 {r5 r9}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [sp+0xA4]  // [V09 arg9]
             ; gcrRegs +[r0]
             str     r3, [sp+0x5C]  // [V15 loc4]
             mov     r1, r3
@@ -323,15 +321,14 @@ G_M30168_IG08:        ; bbWeight=4, gcrefRegs=0620 {r5 r9 r10}, byrefRegs=0000 {
             add     r4, pc
             ldr     r2, [r4]
             blx     r2     // <unknown method>
-            ; gcrRegs -[r10]
             mov     r4, r0
             ; gcrRegs +[r4]
             str     r4, [sp+0x30]  // [V16 loc5]
             ; GC ptr vars +{V16}
             cmp     r4, 0
             beq     SHORT G_M30168_IG10
...
  
+18 (+2.33%) : 167795.dasm - ParallelRunner:BuildProjects(int,int,int,int,System.Collections.Generic.List`1[ProcessInfo],ReadyToRunJittedMethods,int) (FullOpts)
@@ -9,37 +9,37 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T25] (  4,   4   )     int  ->   r9         single-def
-;  V01 arg1         [V01,T14] (  4,  35   )     int  ->   r5         single-def
-;  V02 arg2         [V02,T15] (  3,  34   )     int  ->   r6         single-def
-;  V03 arg3         [V03    ] (  5, 354   )     int  ->  [sp+0x3C]  do-not-enreg[X] addr-exposed ld-addr-op single-def
-;  V04 arg4         [V04,T27] (  1,   4   )     ref  ->  [sp+0x68]  class-hnd single-def <System.Collections.Generic.List`1[ProcessInfo]>
-;  V05 arg5         [V05,T18] (  1,  32   )     ref  ->  [sp+0x6C]  class-hnd single-def <ReadyToRunJittedMethods>
-;  V06 arg6         [V06,T24] (  5,   6.50)     int  ->   r8         single-def
-;  V07 loc0         [V07,T22] (  7,  15   )     ref  ->  [sp+0x28]  class-hnd exact EH-live spill-single-def <System.Threading.AutoResetEvent>
+;  V00 arg0         [V00,T24] (  4,   4   )     int  ->   r8         single-def
+;  V01 arg1         [V01,T19] (  4,   7   )     int  ->   r5         single-def
+;  V02 arg2         [V02,T20] (  3,   6   )     int  ->   r6         single-def
+;  V03 arg3         [V03    ] (  5, 326   )     int  ->  [sp+0x3C]  do-not-enreg[X] addr-exposed ld-addr-op single-def
+;  V04 arg4         [V04,T26] (  1,   4   )     ref  ->  [sp+0x68]  class-hnd single-def <System.Collections.Generic.List`1[ProcessInfo]>
+;  V05 arg5         [V05,T27] (  1,   4   )     ref  ->  [sp+0x6C]  class-hnd single-def <ReadyToRunJittedMethods>
+;  V06 arg6         [V06,T23] (  5,   6.50)     int  ->   r7         single-def
+;  V07 loc0         [V07,T18] (  7,  15   )     ref  ->  [sp+0x28]  class-hnd exact EH-live spill-single-def <System.Threading.AutoResetEvent>
 ;  V08 loc1         [V08,T06] (  8, 125.50)     ref  ->  [sp+0x24]  class-hnd exact spill-single-def <<unknown class>>
-;  V09 loc2         [V09    ] (  4, 353   )     int  ->  [sp+0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op
-;  V10 loc3         [V10,T20] (  3,  24   )   ubyte  ->   r5        
-;  V11 loc4         [V11,T21] ( 12,  21.04)     int  ->  [sp+0x34] 
-;  V12 loc5         [V12,T09] (  7, 134   )     int  ->   r9        
-;  V13 loc6         [V13,T16] (  2,  36   )     ref  ->   r8         class-hnd <ProcessInfo>
-;  V14 loc7         [V14,T11] (  4,  76   )     ref  ->  [sp+0x20]  class-hnd <ParallelRunner+ProcessSlot>
-;* V15 loc8         [V15,T19] (  0,   0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
+;  V09 loc2         [V09    ] (  4, 325   )     int  ->  [sp+0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op
+;  V10 loc3         [V10,T15] (  3,  24   )   ubyte  ->   r5        
+;  V11 loc4         [V11,T17] ( 12,  21.04)     int  ->  [sp+0x34] 
+;  V12 loc5         [V12,T16] (  7,  22   )     int  ->   r8        
+;  V13 loc6         [V13,T21] (  2,   8   )     ref  ->   r7         class-hnd <ProcessInfo>
+;  V14 loc7         [V14,T12] (  4,  48   )     ref  ->  [sp+0x20]  class-hnd <ParallelRunner+ProcessSlot>
+;* V15 loc8         [V15,T14] (  0,   0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
 ;  V16 loc9         [V16,T04] (  5, 288   )     int  ->  [sp+0x30] 
 ;  V17 loc10        [V17,T01] (  5, 648   )     ref  ->  [sp+0x1C]  class-hnd spill-single-def <ParallelRunner+ProcessSlot>
-;* V18 loc11        [V18,T23] (  0,   0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
-;  V19 loc12        [V19,T12] (  5,  72   )     int  ->   r6        
+;* V18 loc11        [V18,T22] (  0,   0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
+;  V19 loc12        [V19,T10] (  5,  72   )     int  ->   r6        
 ;  V20 loc13        [V20,T08] (  4, 160   )     ref  ->   r8         class-hnd <ParallelRunner+ProcessSlot>
 ;  V21 OutArgs      [V21    ] (  1,   1   )  struct (12) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V22 tmp1         [V22,T26] (  3,   6   )     ref  ->  [sp+0x18]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Threading.AutoResetEvent>
-;  V23 tmp2         [V23,T17] (  8,  32   )     ref  ->  [sp+0x14]  class-hnd exact "NewObj constructor temp" <ParallelRunner+ProcessSlot>
+;  V22 tmp1         [V22,T25] (  3,   6   )     ref  ->  [sp+0x18]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Threading.AutoResetEvent>
+;  V23 tmp2         [V23,T13] (  8,  32   )     ref  ->  [sp+0x14]  class-hnd exact "NewObj constructor temp" <ParallelRunner+ProcessSlot>
 ;* V24 tmp3         [V24,T05] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V25 tmp4         [V25,T00] (  4,2048   )     ref  ->  r10         class-hnd "Inlining Arg" <ProcessRunner>
-;* V26 tmp5         [V26,T13] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V26 tmp5         [V26,T11] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V27 tmp6         [V27,T02] (  4, 512   )     ref  ->   r9         class-hnd "Inlining Arg" <ProcessRunner>
 ;  V28 PSPSym       [V28,T28] (  1,   1   )     int  ->  [sp+0x40]  do-not-enreg[V] "PSPSym"
 ;  V29 cse0         [V29,T03] (  3, 384   )     ref  ->   r0         "CSE - aggressive"
-;  V30 cse1         [V30,T10] (  3,  96   )     ref  ->   r0         "CSE - aggressive"
+;  V30 cse1         [V30,T09] (  3,  96   )     ref  ->   r0         "CSE - aggressive"
 ;  V31 cse2         [V31,T07] (  9, 161.04)     int  ->  [sp+0x2C]  multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 68
@@ -53,14 +53,14 @@ G_M64833_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             add     r4, sp, 104
             str     r4, [sp+0x40]  // [V28 PSPSym]
             str     r3, [sp+0x3C]  // [V03 arg3]
-            mov     r9, r0
+            mov     r8, r0
             mov     r5, r1
             mov     r6, r2
-            ldr     r10, [sp+0x68] // [V04 arg4]
-            ; gcrRegs +[r10]
-            ldr     r8, [sp+0x70]  // [V06 arg6]
-                       ;; size=34 bbWeight=1 PerfScore 13.00
-G_M64833_IG02:        ; bbWeight=1, gcrefRegs=0400 {r10}, byrefRegs=0000 {}, byref
+            ldr     r9, [sp+0x68]  // [V04 arg4]
+            ; gcrRegs +[r9]
+            ldr     r7, [sp+0x70]  // [V06 arg6]
+                       ;; size=32 bbWeight=1 PerfScore 13.00
+G_M64833_IG02:        ; bbWeight=1, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
             add     r4, pc
@@ -87,12 +87,12 @@ G_M64833_IG02:        ; bbWeight=1, gcrefRegs=0400 {r10}, byrefRegs=0000 {}, byr
             str     r4, [sp+0x28]  // [V07 loc0]
             ; GC ptr vars +{V07}
                        ;; size=40 bbWeight=1 PerfScore 16.00
-G_M64833_IG03:        ; bbWeight=1, gcVars=00400000 {V07}, gcrefRegs=0400 {r10}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M64833_IG03:        ; bbWeight=1, gcVars=00040000 {V07}, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r4]
             ; GC ptr vars -{V22}
-            ldr     r7, [sp+0x6C]    // [V05 arg5]
-            ; gcrRegs +[r7]
-            mov     r0, r8
+            ldr     r10, [sp+0x6C] // [V05 arg5]
+            ; gcrRegs +[r10]
+            mov     r0, r7
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
             add     r4, pc
@@ -106,17 +106,17 @@ G_M64833_IG03:        ; bbWeight=1, gcVars=00400000 {V07}, gcrefRegs=0400 {r10},
             ; GC ptr vars +{V08}
             movs    r3, 0
             str     r3, [sp+0x34]  // [V11 loc4]
-            cmp     r8, 0
+            cmp     r7, 0
             ble     SHORT G_M64833_IG09
                        ;; size=32 bbWeight=1 PerfScore 13.00
-G_M64833_IG04:        ; bbWeight=0.50, gcVars=00400040 {V07 V08}, gcrefRegs=0490 {r4 r7 r10}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M64833_IG04:        ; bbWeight=0.50, gcVars=00040040 {V07 V08}, gcrefRegs=0610 {r4 r9 r10}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0]
             ldr     r2, [r4+0x04]
             str     r2, [sp+0x2C]  // [V31 cse2]
-            cmp     r2, r8
+            cmp     r2, r7
             blt     SHORT G_M64833_IG07
                        ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M64833_IG05:        ; bbWeight=3.96, gcrefRegs=0480 {r7 r10}, byrefRegs=0000 {}, byref, isz
+G_M64833_IG05:        ; bbWeight=3.96, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r4]
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
@@ -160,15 +160,15 @@ G_M64833_IG05:        ; bbWeight=3.96, gcrefRegs=0480 {r7 r10}, byrefRegs=0000 {
             ; byrRegs -[r0]
             adds    r4, r4, 1
             str     r4, [sp+0x34]  // [V11 loc4]
-            cmp     r4, r8
+            cmp     r4, r7
             blt     SHORT G_M64833_IG05
                        ;; size=78 bbWeight=3.96 PerfScore 118.80
-G_M64833_IG06:        ; bbWeight=1, gcrefRegs=0480 {r7 r10}, byrefRegs=0000 {}, byref, isz
+G_M64833_IG06:        ; bbWeight=1, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref, isz
             ldr     r4, [sp+0x24]  // [V08 loc1]
             ; gcrRegs +[r4]
             b       SHORT G_M64833_IG09
                        ;; size=4 bbWeight=1 PerfScore 2.00
-G_M64833_IG07:        ; bbWeight=0.04, gcrefRegs=0480 {r7 r10}, byrefRegs=0000 {}, byref, isz
+G_M64833_IG07:        ; bbWeight=0.04, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r4]
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
@@ -214,42 +214,42 @@ G_M64833_IG07:        ; bbWeight=0.04, gcrefRegs=0480 {r7 r10}, byrefRegs=0000 {
             ; gcrRegs -[r1 r3]
             ; byrRegs -[r0]
             adds    r4, r4, 1
-            cmp     r4, r8
+            cmp     r4, r7
             str     r2, [sp+0x2C] // [V31 cse2]
             str     r4, [sp+0x34]  // [V11 loc4]
             blt     SHORT G_M64833_IG07
                        ;; size=90 bbWeight=0.04 PerfScore 1.36
-G_M64833_IG08:        ; bbWeight=0.02, gcrefRegs=0480 {r7 r10}, byrefRegs=0000 {}, byref
+G_M64833_IG08:        ; bbWeight=0.02, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref
             ldr     r4, [sp+0x24]    // [V08 loc1]
             ; gcrRegs +[r4]
                        ;; size=2 bbWeight=0.02 PerfScore 0.02
-G_M64833_IG09:        ; bbWeight=1, gcrefRegs=0490 {r4 r7 r10}, byrefRegs=0000 {}, byref, isz
-            str     r9, [sp+0x38]  // [V09 loc2]
-            cmp     r9, r5
+G_M64833_IG09:        ; bbWeight=1, gcrefRegs=0610 {r4 r9 r10}, byrefRegs=0000 {}, byref, isz
+            str     r8, [sp+0x38]  // [V09 loc2]
+            cmp     r8, r5
             bge     G_M64833_IG21
                        ;; size=10 bbWeight=1 PerfScore 3.00
-G_M64833_IG10:        ; bbWeight=4, gcrefRegs=0480 {r7 r10}, byrefRegs=0000 {}, byref
+G_M64833_IG10:        ; bbWeight=4, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r4]
-            str     r10, [sp+0x68]   // [V04 arg4]
-            mov     r0, r10
+            str     r9, [sp+0x68] // [V04 arg4]
+            mov     r0, r9
             ; gcrRegs +[r0]
-            mov     r1, r9
+            mov     r1, r8
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
             add     r4, pc
             ldr     r2, [r0]
             ldr     r3, [r4]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r10]
+            ; gcrRegs -[r9]
             ; gcr arg pop 0
-            mov     r8, r0
-            ; gcrRegs +[r8]
+            mov     r7, r0
+            ; gcrRegs +[r7]
             movs    r4, 0
             ; gcrRegs +[r4]
             str     r4, [sp+0x20]  // [V14 loc7]
             ; GC ptr vars +{V14}
                        ;; size=30 bbWeight=4 PerfScore 48.00
-G_M64833_IG11:        ; bbWeight=32, gcVars=00400840 {V07 V08 V14}, gcrefRegs=0180 {r7 r8}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M64833_IG11:        ; bbWeight=32, gcVars=00041040 {V07 V08 V14}, gcrefRegs=0480 {r7 r10}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0 r4]
             movs    r3, 0
             ldr     lr, [sp+0x24]  // [V08 loc1]
@@ -260,7 +260,7 @@ G_M64833_IG11:        ; bbWeight=32, gcVars=00400840 {V07 V08 V14}, gcrefRegs=01
             cmp     r12, 0
             ble     SHORT G_M64833_IG18
                        ;; size=22 bbWeight=32 PerfScore 224.00
-G_M64833_IG12:        ; bbWeight=64, gcrefRegs=4180 {r7 r8 lr}, byrefRegs=0000 {}, byref, isz
+G_M64833_IG12:        ; bbWeight=64, gcrefRegs=4480 {r7 r10 lr}, byrefRegs=0000 {}, byref, isz
             add     r0, lr, 8
             ; byrRegs +[r0]
             str     r3, [sp+0x30]  // [V16 loc9]
@@ -273,26 +273,26 @@ G_M64833_IG12:        ; bbWeight=64, gcrefRegs=4180 {r7 r8 lr}, byrefRegs=0000 {
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
             cmp     r0, 0
-            str     r7, [sp+0x6C]   // [V05 arg5]
+            str     r10, [sp+0x6C]   // [V05 arg5]
             beq     SHORT G_M64833_IG14
-                      ;; size=20 bbWeight=64 PerfScore 576.00
-G_M64833_IG13:        ; bbWeight=256, gcVars=00400842 {V07 V08 V14 V17}, gcrefRegs=0101 {r0 r8}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[r1 r7 lr]
+                        ;; size=22 bbWeight=64 PerfScore 576.00
+G_M64833_IG13:        ; bbWeight=256, gcVars=00041042 {V07 V08 V14 V17}, gcrefRegs=0081 {r0 r7}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[r1 r10 lr]
             add     r2, sp, 60   // [V03 arg3]
             add     r1, sp, 56 // [V09 loc2]
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
             add     r4, pc
-            ldr     r7, [r0]
+            ldr     r9, [r0]
             ldr     r10, [r4]
             blx     r10        // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
             beq     SHORT G_M64833_IG15
-            ldr     r7, [sp+0x1C]
-            ; gcrRegs +[r7]
-            ldr     r10, [r7+0x08]
+            ldr     r9, [sp+0x1C]
+            ; gcrRegs +[r9]
+            ldr     r10, [r9+0x08]
             ; gcrRegs +[r10]
             ldrsb   r0, [r10]
             mov     r0, r10
@@ -316,50 +316,52 @@ G_M64833_IG13:        ; bbWeight=256, gcVars=00400842 {V07 V08 V14 V17}, gcrefRe
             ; gcr arg pop 0
             movs    r0, 0
             ; gcrRegs +[r0]
-            str     r0, [r7+0x08]
+            str     r0, [r9+0x08]
             b       SHORT G_M64833_IG17
-                     ;; size=74 bbWeight=256 PerfScore 7168.00
-G_M64833_IG14:        ; bbWeight=32, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0 r7]
-            ldr     r7, [sp+0x1C]  // [V17 loc10]
-            ; gcrRegs +[r7]
...
  
  
libraries.pmi.linux.arm.checked.mch
-4 (-4.26%) : 237348.dasm - System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this (FullOpts)
@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  4, 14   )     ref  ->   r5         this class-hnd single-def <System.Net.HttpEndPointListener>
-;  V01 arg1         [V01,T02] (  5, 22   )     ref  ->   r4         class-hnd single-def <System.Net.Sockets.SocketAsyncEventArgs>
-;  V02 loc0         [V02,T01] (  3, 24   )   ubyte  ->   r6        
+;  V00 this         [V00,T02] (  4, 18   )     ref  ->   r5         this class-hnd single-def <System.Net.HttpEndPointListener>
+;  V01 arg1         [V01,T01] (  5, 26   )     ref  ->   r4         class-hnd single-def <System.Net.Sockets.SocketAsyncEventArgs>
+;  V02 loc0         [V02,T03] (  2, 16   )   ubyte  ->   r0        
 ;# 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 "impSpillSpecialSideEff" <<unknown class>>
 ;  V05 tmp2         [V05,T00] (  3, 48   )     ref  ->   r0         class-hnd "Inlining Arg" <System.Net.Sockets.Socket>
@@ -18,15 +18,15 @@
 ;* V07 tmp4         [V07    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V08 tmp5         [V08    ] (  0,  0   )     ref  ->  zero-ref    "field V06._source (fldOffset=0x0)" P-INDEP
 ;* V09 tmp6         [V09,T04] (  0,  0   )     ref  ->  zero-ref    "field V07._source (fldOffset=0x0)" P-INDEP
-;  V10 PSPSym       [V10,T05] (  1,  1   )     int  ->  [sp+0x00]  do-not-enreg[V] "PSPSym"
+;  V10 PSPSym       [V10,T05] (  1,  1   )     int  ->  [sp+0x04]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 8
 
 G_M14120_IG01:        ; bbWeight=8, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r3,r4,r5,r6,r11,lr}
+            push    {r2,r3,r4,r5,r11,lr}
             add     r11, sp, 16
             add     r2, sp, 24
-            str     r2, [sp]
+            str     r2, [sp+0x04]
             mov     r5, r0
             ; gcrRegs +[r5]
             mov     r4, r1
@@ -47,13 +47,10 @@ G_M14120_IG02:        ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; gcr arg pop 0
-            mov     r6, r0
-                       ;; size=28 bbWeight=8 PerfScore 88.00
+                     ;; size=26 bbWeight=8 PerfScore 80.00
 G_M14120_IG03:        ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            cmp     r6, 0
-            bne     SHORT G_M14120_IG05
-                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M14120_IG04:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            cmp     r0, 0
+            bne     SHORT G_M14120_IG04
             mov     r0, r5
             ; gcrRegs +[r0]
             mov     r1, r4
@@ -64,29 +61,26 @@ G_M14120_IG04:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; gcr arg pop 0
-                      ;; size=16 bbWeight=4 PerfScore 24.00
-G_M14120_IG05:        ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            cmp     r6, 0
-            beq     SHORT G_M14120_IG02
-                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M14120_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            b       SHORT G_M14120_IG02
+                       ;; size=22 bbWeight=8 PerfScore 72.00
+G_M14120_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r4-r5]
-            pop     {r3,r4,r5,r6,r11,pc}
+            pop     {r2,r3,r4,r5,r11,pc}
                         ;; size=4 bbWeight=1 PerfScore 1.00
-G_M14120_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
-            push    {r3,r4,r5,r6,r11,lr}
+G_M14120_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+            push    {r2,r3,r4,r5,r11,lr}
             add     r3, r11, 8
-            str     r3, [sp]
+            str     r3, [sp+0x04]
                         ;; size=10 bbWeight=0 PerfScore 0.00
-G_M14120_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            movw    r0, LOW ADDRESS G_M14120_IG06
-            movt    r0, HIGH ADDRESS G_M14120_IG06
+G_M14120_IG06:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            movw    r0, LOW ADDRESS G_M14120_IG04
+            movt    r0, HIGH ADDRESS G_M14120_IG04
                      ;; size=8 bbWeight=0 PerfScore 0.00
-G_M14120_IG09:        ; bbWeight=0, funclet epilog, nogc, extend
-            pop     {r3,r4,r5,r6,r11,pc}
+G_M14120_IG07:        ; bbWeight=0, funclet epilog, nogc, extend
+            pop     {r2,r3,r4,r5,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 94, prolog size 16, PerfScore 193.00, instruction count 34, allocated bytes for code 94 (MethodHash=c2bdc8d7) for method System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this (FullOpts)
+; Total bytes of code 90, prolog size 16, PerfScore 201.00, instruction count 32, allocated bytes for code 90 (MethodHash=c2bdc8d7) for method System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -98,11 +92,11 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 36 (0x00024) Actual length = 72 (0x000048)
+  Function Length   : 34 (0x00022) Actual length = 68 (0x000044)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 78       pop {r3,r4,r5,r6,r11,lr}            ; opsize 32
+    A8 3C       pop {r2,r3,r4,r5,r11,lr}            ; opsize 32
     FF          end
     FF          end
 
@@ -119,10 +113,10 @@ Unwind Info:
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 78       pop {r3,r4,r5,r6,r11,lr}            ; opsize 32
+    A8 3C       pop {r2,r3,r4,r5,r11,lr}            ; opsize 32
     FF          end
     FF          end
 
 *************** EH table for System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M14120_IG02..G_M14120_IG03) handled by [G_M14120_IG07..END) (class: 100003E)
+EH#0: try [G_M14120_IG02..G_M14120_IG03) handled by [G_M14120_IG05..END) (class: 100003E)
  
-10 (-3.62%) : 166607.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (FullOpts)
@@ -8,29 +8,30 @@
 ; 3 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T09] (  4,  4   )     ref  ->   r4         this class-hnd single-def <Xunit.AggregateMessageSink>
-;  V01 arg1         [V01,T06] (  3,  5.35)     ref  ->   r5         class-hnd single-def <Xunit.Abstractions.IMessageSinkMessage>
-;  V02 arg2         [V02,T07] (  3,  5.35)     ref  ->   r6         class-hnd single-def <System.Collections.Generic.HashSet`1[System.String]>
-;  V03 loc0         [V03,T05] (  4,  8.70)   ubyte  ->   r7        
-;  V04 loc1         [V04,T14] (  4,  1.50)     ref  ->  [sp+0x04]  class-hnd EH-live single-def <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
+;  V00 this         [V00,T10] (  4,  4   )     ref  ->   r4         this class-hnd single-def <Xunit.AggregateMessageSink>
+;  V01 arg1         [V01,T07] (  3,  5.35)     ref  ->   r5         class-hnd single-def <Xunit.Abstractions.IMessageSinkMessage>
+;  V02 arg2         [V02,T08] (  3,  5.35)     ref  ->   r6         class-hnd single-def <System.Collections.Generic.HashSet`1[System.String]>
+;  V03 loc0         [V03,T06] (  4,  8.70)   ubyte  ->   r7        
+;  V04 loc1         [V04,T15] (  4,  1.50)     ref  ->  [sp+0x04]  class-hnd EH-live single-def <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
 ;  V05 loc2         [V05    ] (  5,  4   )   ubyte  ->  [sp+0x0C]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;* V06 loc3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[Xunit.IMessageSinkWithTypes]>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T11] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
-;  V09 tmp2         [V09,T10] (  2,  4   )     ref  ->   r9         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
+;  V08 tmp1         [V08,T12] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
+;  V09 tmp2         [V09,T11] (  2,  4   )     ref  ->   r9         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
 ;* V10 tmp3         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Xunit.IMessageSinkWithTypes]>
-;* V11 tmp4         [V11,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V11 tmp4         [V11,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V12 tmp5         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
-;  V13 tmp6         [V13,T01] (  5, 17.00)     ref  ->   r9         single-def "field V06._list (fldOffset=0x0)" P-INDEP
-;  V14 tmp7         [V14,T03] (  2,  6.70)     ref  ->   r0         "field V06._current (fldOffset=0x4)" P-INDEP
+;  V13 tmp6         [V13,T02] (  4, 16.34)     ref  ->   r9         single-def "field V06._list (fldOffset=0x0)" P-INDEP
+;  V14 tmp7         [V14,T04] (  2,  6.70)     ref  ->   r0         "field V06._current (fldOffset=0x4)" P-INDEP
 ;  V15 tmp8         [V15,T00] (  6, 18.39)     int  ->  [sp+0x08]  "field V06._index (fldOffset=0x8)" P-INDEP
-;  V16 tmp9         [V16,T04] (  3,  9.65)     int  ->  r10         single-def "field V06._version (fldOffset=0xc)" P-INDEP
-;  V17 tmp10        [V17,T12] (  3,  3   )     ref  ->   r9         single-def "field V10._list (fldOffset=0x0)" P-INDEP
+;  V16 tmp9         [V16,T05] (  2,  9   )     int  ->  r10         single-def "field V06._version (fldOffset=0xc)" P-INDEP
+;  V17 tmp10        [V17,T13] (  3,  3   )     ref  ->   r9         single-def "field V10._list (fldOffset=0x0)" P-INDEP
 ;* V18 tmp11        [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V10._current (fldOffset=0x4)" P-INDEP
-;* V19 tmp12        [V19,T15] (  0,  0   )     int  ->  zero-ref    single-def "field V10._index (fldOffset=0x8)" P-INDEP
-;  V20 tmp13        [V20,T13] (  2,  2   )     int  ->  r10         single-def "field V10._version (fldOffset=0xc)" P-INDEP
-;  V21 tmp14        [V21,T02] (  3, 20.09)     ref  ->   r0         "arr expr"
-;  V22 PSPSym       [V22,T16] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
+;* V19 tmp12        [V19,T16] (  0,  0   )     int  ->  zero-ref    single-def "field V10._index (fldOffset=0x8)" P-INDEP
+;  V20 tmp13        [V20,T14] (  2,  2   )     int  ->  r10         single-def "field V10._version (fldOffset=0xc)" P-INDEP
+;  V21 tmp14        [V21,T01] (  3, 20.09)     ref  ->   r0         "arr expr"
+;  V22 PSPSym       [V22,T17] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
+;  V23 cse0         [V23,T03] (  2,  7.99)     int  ->   r0         "CSE - aggressive"
 ;
 ; Lcl frame size = 20
 
@@ -56,7 +57,7 @@ G_M52679_IG02:        ; bbWeight=1, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             str     r8, [sp+0x04]
             ; GC ptr vars +{V04}
                        ;; size=10 bbWeight=1 PerfScore 3.00
-G_M52679_IG03:        ; bbWeight=1, gcVars=00004000 {V04}, gcrefRegs=0170 {r4 r5 r6 r8}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M52679_IG03:        ; bbWeight=1, gcVars=00008000 {V04}, gcrefRegs=0170 {r4 r5 r6 r8}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x0C]
             cmp     r1, 0
             bne     SHORT G_M52679_IG09
@@ -93,19 +94,19 @@ G_M52679_IG06:        ; bbWeight=8, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000
             ; gcrRegs -[r4]
             ldr     r0, [r9+0x0C]
             cmp     r10, r0
-            bne     SHORT G_M52679_IG10
+            bne     SHORT G_M52679_IG11
                       ;; size=8 bbWeight=8 PerfScore 24.00
 G_M52679_IG07:        ; bbWeight=4.00, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r9+0x08]
             cmp     r3, r0
-            bhs     SHORT G_M52679_IG14
+            bhs     SHORT G_M52679_IG12
                        ;; size=8 bbWeight=4.00 PerfScore 11.99
 G_M52679_IG08:        ; bbWeight=3.35, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r9+0x04]
             ; gcrRegs +[r0]
             ldr     r2, [r0+0x04]
             cmp     r3, r2
-            bhs     SHORT G_M52679_IG12
+            bhs     SHORT G_M52679_IG10
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -139,24 +140,14 @@ G_M52679_IG09:        ; bbWeight=0, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byre
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M52679_IG10:        ; bbWeight=0.65, gcrefRegs=0300 {r8 r9}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r9]
-            ldr     r0, [r9+0x0C]
-            cmp     r10, r0
-            bne     SHORT G_M52679_IG13
-                       ;; size=8 bbWeight=0.65 PerfScore 1.96
-G_M52679_IG11:        ; bbWeight=4, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r9]
-            b       SHORT G_M52679_IG14
-                       ;; size=2 bbWeight=4 PerfScore 4.00
-G_M52679_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M52679_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r8]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M52679_IG13:        ; bbWeight=0, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
+G_M52679_IG11:        ; bbWeight=0, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r8]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -165,12 +156,12 @@ G_M52679_IG13:        ; bbWeight=0, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byre
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M52679_IG14:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
+G_M52679_IG12:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
             ldrb    r0, [sp+0x0C]   // [V05 loc2]
             cmp     r0, 0
-            beq     SHORT G_M52679_IG16
+            beq     SHORT G_M52679_IG14
                         ;; size=8 bbWeight=1 PerfScore 3.00
-G_M52679_IG15:        ; bbWeight=0.50, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
+G_M52679_IG13:        ; bbWeight=0.50, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
             mov     r0, r8
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
@@ -180,37 +171,37 @@ G_M52679_IG15:        ; bbWeight=0.50, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0 r8]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M52679_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M52679_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     r0, r7
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M52679_IG17:        ; bbWeight=1, epilog, nogc, extend
+G_M52679_IG15:        ; bbWeight=1, epilog, nogc, extend
             add     sp, 20
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M52679_IG18:        ; bbWeight=0, gcVars=00004000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
-            ; GC ptr vars +{V04 V14}
+G_M52679_IG16:        ; bbWeight=0, gcVars=00008000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+            ; GC ptr vars +{V04 V15}
             push    {r3,r4,r5,r6,r7,r8,r9,r10,r11,lr}
             add     r3, r11, 8
             str     r3, [sp]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M52679_IG19:        ; bbWeight=0, gcVars=00004000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M52679_IG17:        ; bbWeight=0, gcVars=00008000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r0, [r11-0x24]    // [V05 loc2]
             cmp     r0, 0
-            beq     SHORT G_M52679_IG20
+            beq     SHORT G_M52679_IG18
             ldr     r0, [r11-0x2C]  // [V04 loc1]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
-            ; GC ptr vars -{V04 V14}
+            ; GC ptr vars -{V04 V15}
             blx     r3       // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=22 bbWeight=0 PerfScore 0.00
-G_M52679_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M52679_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
             pop     {r3,r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 276, prolog size 24, PerfScore 144.56, instruction count 98, allocated bytes for code 276 (MethodHash=39853238) for method Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (FullOpts)
+; Total bytes of code 266, prolog size 24, PerfScore 138.60, instruction count 94, allocated bytes for code 266 (MethodHash=39853238) for method Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -222,7 +213,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 120 (0x00078) Actual length = 240 (0x0000f0)
+  Function Length   : 115 (0x00073) Actual length = 230 (0x0000e6)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
@@ -250,4 +241,4 @@ Unwind Info:
 
 *************** EH table for Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M52679_IG03..G_M52679_IG14) handled by [G_M52679_IG18..END) (fault)
+EH#0: try [G_M52679_IG03..G_M52679_IG12) handled by [G_M52679_IG16..END) (fault)
  
-6 (-2.97%) : 272709.dasm - Microsoft.Extensions.Configuration.ConfigurationManager:Microsoft.Extensions.Configuration.IConfigurationRoot.Reload():this (FullOpts)
@@ -8,25 +8,26 @@
 ; 2 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  4,  4   )     ref  ->   r5         this class-hnd single-def <Microsoft.Extensions.Configuration.ConfigurationManager>
-;  V01 loc0         [V01,T08] (  6,  3   )     ref  ->  [sp+0x04]  class-hnd EH-live single-def <<unknown class>>
+;  V00 this         [V00,T07] (  4,  4   )     ref  ->   r5         this class-hnd single-def <Microsoft.Extensions.Configuration.ConfigurationManager>
+;  V01 loc0         [V01,T09] (  6,  3   )     ref  ->  [sp+0x04]  class-hnd EH-live single-def <<unknown class>>
 ;* V02 loc1         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.Extensions.Configuration.IConfigurationProvider]>
 ;* V03 loc2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.Extensions.Configuration.IConfigurationProvider>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T07] (  2,  4   )     ref  ->   r0         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V05 tmp1         [V05,T08] (  2,  4   )     ref  ->   r0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.Extensions.Configuration.IConfigurationProvider]>
-;* V07 tmp3         [V07,T05] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V07 tmp3         [V07,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V08 tmp4         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V09 tmp5         [V09,T01] (  5, 17.00)     ref  ->   r7         single-def "field V02._list (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  4, 16.34)     ref  ->   r7         single-def "field V02._list (fldOffset=0x0)" P-INDEP
 ;  V10 tmp6         [V10,T04] (  2,  5.35)     ref  ->   r0         "field V02._current (fldOffset=0x4)" P-INDEP
 ;  V11 tmp7         [V11,T00] (  6, 18.39)     int  ->   r9         "field V02._index (fldOffset=0x8)" P-INDEP
-;  V12 tmp8         [V12,T03] (  3,  9.65)     int  ->   r8         single-def "field V02._version (fldOffset=0xc)" P-INDEP
-;  V13 tmp9         [V13,T09] (  3,  3   )     ref  ->   r7         single-def "field V06._list (fldOffset=0x0)" P-INDEP
+;  V12 tmp8         [V12,T05] (  2,  9   )     int  ->   r8         single-def "field V02._version (fldOffset=0xc)" P-INDEP
+;  V13 tmp9         [V13,T10] (  3,  3   )     ref  ->   r7         single-def "field V06._list (fldOffset=0x0)" P-INDEP
 ;* V14 tmp10        [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._current (fldOffset=0x4)" P-INDEP
-;* V15 tmp11        [V15,T11] (  0,  0   )     int  ->  zero-ref    single-def "field V06._index (fldOffset=0x8)" P-INDEP
-;  V16 tmp12        [V16,T10] (  2,  2   )     int  ->   r8         single-def "field V06._version (fldOffset=0xc)" P-INDEP
-;  V17 tmp13        [V17,T02] (  3, 20.09)     ref  ->   r0         "arr expr"
-;  V18 PSPSym       [V18,T12] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
+;* V15 tmp11        [V15,T12] (  0,  0   )     int  ->  zero-ref    single-def "field V06._index (fldOffset=0x8)" P-INDEP
+;  V16 tmp12        [V16,T11] (  2,  2   )     int  ->   r8         single-def "field V06._version (fldOffset=0xc)" P-INDEP
+;  V17 tmp13        [V17,T01] (  3, 20.09)     ref  ->   r0         "arr expr"
+;  V18 PSPSym       [V18,T13] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
+;  V19 cse0         [V19,T03] (  2,  7.99)     int  ->   r0         "CSE - aggressive"
 ;
 ; Lcl frame size = 16
 
@@ -53,7 +54,7 @@ G_M4766_IG02:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             str     r6, [sp+0x04]
             ; GC ptr vars +{V01}
                        ;; size=20 bbWeight=1 PerfScore 8.00
-G_M4766_IG03:        ; bbWeight=1, gcVars=00000100 {V01}, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M4766_IG03:        ; bbWeight=1, gcVars=00000200 {V01}, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0]
             mov     r0, r6
             ; gcrRegs +[r0]
@@ -79,12 +80,12 @@ G_M4766_IG04:        ; bbWeight=2, gcrefRegs=00E1 {r0 r5 r6 r7}, byrefRegs=0000
 G_M4766_IG05:        ; bbWeight=8, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r7+0x0C]
             cmp     r8, r0
-            bne     SHORT G_M4766_IG10
+            bne     SHORT G_M4766_IG09
                      ;; size=6 bbWeight=8 PerfScore 24.00
 G_M4766_IG06:        ; bbWeight=4.00, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r7+0x08]
             cmp     r9, r0
-            bhs     SHORT G_M4766_IG11
+            bhs     SHORT G_M4766_IG10
                      ;; size=6 bbWeight=4.00 PerfScore 11.99
 G_M4766_IG07:        ; bbWeight=3.35, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r7+0x04]
@@ -118,14 +119,8 @@ G_M4766_IG09:        ; bbWeight=0, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M4766_IG10:        ; bbWeight=0.65, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r5 r7]
-            ldr     r0, [r7+0x0C]
-            cmp     r8, r0
-            bne     SHORT G_M4766_IG09
-                       ;; size=6 bbWeight=0.65 PerfScore 1.96
-G_M4766_IG11:        ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r7]
+G_M4766_IG10:        ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r5]
             mov     r0, r6
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
@@ -144,34 +139,34 @@ G_M4766_IG11:        ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, by
             ; gcrRegs -[r0 r5]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=1 PerfScore 10.00
-G_M4766_IG12:        ; bbWeight=1, epilog, nogc, extend
+G_M4766_IG11:        ; bbWeight=1, epilog, nogc, extend
             add     sp, 16
             pop     {r4,r5,r6,r7,r8,r9,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M4766_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M4766_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             push    {r2,r3,r4,r5,r6,r7,r8,r9,r11,lr}
             add     r3, r11, 8
             str     r3, [sp+0x04]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M4766_IG14:        ; bbWeight=0, gcVars=00000100 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; GC ptr vars +{V01}
+G_M4766_IG13:        ; bbWeight=0, gcVars=00000200 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; GC ptr vars +{V01 V09}
             ldr     r0, [r11-0x24] // [V01 loc0]
             ; gcrRegs +[r0]
             cmp     r0, 0
-            beq     SHORT G_M4766_IG15
+            beq     SHORT G_M4766_IG14
             movw    r4, 0xd1ff
             movt    r4, 0xd1ff
             ldr     r3, [r4]
-            ; GC ptr vars -{V01}
+            ; GC ptr vars -{V01 V09}
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M4766_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M4766_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
             pop     {r2,r3,r4,r5,r6,r7,r8,r9,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 202, prolog size 16, PerfScore 111.08, instruction count 76, allocated bytes for code 202 (MethodHash=07d7ed61) for method Microsoft.Extensions.Configuration.ConfigurationManager:Microsoft.Extensions.Configuration.IConfigurationRoot.Reload():this (FullOpts)
+; Total bytes of code 196, prolog size 16, PerfScore 109.12, instruction count 73, allocated bytes for code 196 (MethodHash=07d7ed61) for method Microsoft.Extensions.Configuration.ConfigurationManager:Microsoft.Extensions.Configuration.IConfigurationRoot.Reload():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -183,7 +178,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 84 (0x00054) Actual length = 168 (0x0000a8)
+  Function Length   : 81 (0x00051) Actual length = 162 (0x0000a2)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
@@ -210,4 +205,4 @@ Unwind Info:
 
 *************** EH table for Microsoft.Extensions.Configuration.ConfigurationManager:Microsoft.Extensions.Configuration.IConfigurationRoot.Reload():this
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M4766_IG03..G_M4766_IG11) handled by [G_M4766_IG13..END) (fault)
+EH#0: try [G_M4766_IG03..G_M4766_IG10) handled by [G_M4766_IG12..END) (fault)
  
+2 (+0.21%) : 88.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
@@ -8,12 +8,12 @@
 ; 6 inlinees with PGO data; 14 single block inlinees; 9 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T57] (  4,  3   )     ref  ->   r4         this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
-;  V01 loc0         [V01,T00] ( 27, 93   )     ref  ->   r4         class-hnd <System.Text.RegularExpressions.RegexNode>
+;  V00 this         [V00,T58] (  4,  3   )     ref  ->   r4         this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
+;  V01 loc0         [V01,T00] ( 26, 91   )     ref  ->   r4         class-hnd <System.Text.RegularExpressions.RegexNode>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V03 loc2         [V03,T32] (  3, 12   )   ubyte  ->   r0        
 ;  V04 loc3         [V04,T26] (  4, 12   )   ubyte  ->   r0        
-;* V05 loc4         [V05,T63] (  0,  0   )   ubyte  ->  zero-ref   
+;* V05 loc4         [V05,T64] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V07 loc6         [V07,T12] (  3, 24   )     int  ->   r6        
 ;  V08 loc7         [V08,T01] (  7, 76   )     int  ->   r5        
@@ -25,7 +25,7 @@
 ;* V14 tmp4         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V15 tmp5         [V15,T34] (  4, 11   )     ref  ->   r4         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V16 tmp6         [V16,T41] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V17 tmp7         [V17,T58] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V17 tmp7         [V17,T59] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V18 tmp8         [V18,T16] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V19 tmp9         [V19,T39] (  4, 10   )     int  ->   r6         "Inline return value spill temp"
 ;  V20 tmp10        [V20,T52] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
@@ -34,7 +34,7 @@
 ;* V23 tmp13        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V24 tmp14        [V24,T35] (  4, 11   )     ref  ->   r7         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V25 tmp15        [V25,T42] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V26 tmp16        [V26,T59] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V26 tmp16        [V26,T60] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V27 tmp17        [V27,T17] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V28 tmp18        [V28,T14] (  4, 20   )     int  ->   r6         "Inlining Arg"
 ;* V29 tmp19        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
@@ -42,10 +42,10 @@
 ;  V31 tmp21        [V31,T46] (  4,  8   )     int  ->   r7         "Inline return value spill temp"
 ;  V32 tmp22        [V32,T53] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V33 tmp23        [V33,T21] (  4, 16   )     ref  ->   r6         class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-;  V34 tmp24        [V34,T50] (  2,  8   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V35 tmp25        [V35,T38] (  3, 10   )     ref  ->   r1         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
+;  V34 tmp24        [V34,T50] (  2,  8   )     ref  ->   r0         "CASTCLASS eval op1"
+;  V35 tmp25        [V35,T38] (  3, 10   )     ref  ->   r0         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V36 tmp26        [V36,T43] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V37 tmp27        [V37,T60] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V37 tmp27        [V37,T61] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
 ;  V38 tmp28        [V38,T10] (  8, 27   )     ref  ->   r4         class-hnd "spilling QMark2" <<unknown class>>
 ;  V39 tmp29        [V39,T33] (  3, 12   )     int  ->   r7         "Inlining Arg"
 ;  V40 tmp30        [V40,T40] (  4, 10   )     int  ->   r6         "Inline return value spill temp"
@@ -62,7 +62,7 @@
 ;* V51 tmp41        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V52 tmp42        [V52,T36] (  4, 11   )     ref  ->   r3         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V53 tmp43        [V53,T44] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V54 tmp44        [V54,T61] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V54 tmp44        [V54,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V55 tmp45        [V55,T18] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;* V56 tmp46        [V56    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V57 tmp47        [V57,T49] (  3,  8   )     ref  ->   r4         class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
@@ -70,7 +70,7 @@
 ;* V59 tmp49        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V60 tmp50        [V60,T37] (  4, 11   )     ref  ->   r4         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V61 tmp51        [V61,T45] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V62 tmp52        [V62,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V62 tmp52        [V62,T63] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V63 tmp53        [V63,T19] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V64 tmp54        [V64,T28] (  3, 12   )     ref  ->   r1         "arr expr"
 ;  V65 tmp55        [V65,T29] (  3, 12   )     ref  ->   r0         "arr expr"
@@ -81,7 +81,8 @@
 ;  V70 cse1         [V70,T07] (  3, 40   )     ref  ->   r1         "CSE - aggressive"
 ;  V71 cse2         [V71,T55] (  3,  6   )     ref  ->   r0         "CSE - conservative"
 ;  V72 cse3         [V72,T56] (  3,  6   )     ref  ->   r1         "CSE - conservative"
-;  V73 rat0         [V73,T13] (  3, 24   )     int  ->   r5         "ReplaceWithLclVar is creating a new local variable"
+;  V73 cse4         [V73,T57] (  3,  6   )     ref  ->   r1         "CSE - conservative"
+;  V74 rat0         [V74,T13] (  3, 24   )     int  ->   r5         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -109,7 +110,7 @@ G_M35244_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs -[r4]
             pop     {r4,r5,r6,r7,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG05:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35244_IG05:        ; bbWeight=4, gcVars=000000000000000000000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r4]
             ldrb    r0, [r4+0x1E]
             subs    r3, r0, 3
@@ -399,20 +400,26 @@ G_M35244_IG30:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            ldr     r1, [r4+0x04]
+            ldr     r2, [r4+0x04]
+            ; gcrRegs +[r2]
+            mov     r1, r2
             ; gcrRegs +[r1]
-            cmp     r1, 0
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            cmp     r0, 0
             beq     SHORT G_M35244_IG33
-                     ;; size=56 bbWeight=2 PerfScore 40.00
-G_M35244_IG31:        ; bbWeight=1, gcrefRegs=0072 {r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [r1]
-            ; gcrRegs -[r1]
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            cmp     r1, r0
+                       ;; size=60 bbWeight=2 PerfScore 44.00
+G_M35244_IG31:        ; bbWeight=1, gcrefRegs=0073 {r0 r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2]
+            ldr     r0, [r0]
+            ; gcrRegs -[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            cmp     r0, r3
             bne     SHORT G_M35244_IG33
                        ;; size=14 bbWeight=1 PerfScore 5.00
 G_M35244_IG32:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r1]
             adds    r0, r4, 4
             ; byrRegs +[r0]
             mov     r1, r6
@@ -424,14 +431,13 @@ G_M35244_IG32:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             ; byrRegs -[r0]
             b       SHORT G_M35244_IG37
                        ;; size=16 bbWeight=2 PerfScore 12.00
-G_M35244_IG33:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r4 r6]
-            ldr     r1, [r4+0x04]
-            ; gcrRegs +[r1]
+G_M35244_IG33:        ; bbWeight=2, gcrefRegs=0062 {r1 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r1 r6]
             mov     r4, r1
+            ; gcrRegs +[r4]
             cmp     r4, 0
             beq     SHORT G_M35244_IG36
-                      ;; size=8 bbWeight=2 PerfScore 8.00
+                       ;; size=6 bbWeight=2 PerfScore 6.00
 G_M35244_IG34:        ; bbWeight=1, gcrefRegs=0072 {r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4]
             movw    r3, 0xd1ff
@@ -754,7 +760,7 @@ G_M35244_IG68:        ; bbWeight=0.50, epilog, nogc, extend
             bx      r3     // <unknown method>
             ; gcr arg pop 0
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M35244_IG69:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG69:        ; bbWeight=0, gcVars=000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0 r4]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -782,7 +788,7 @@ RWD00   dd  G_M35244_IG38
            dd  G_M35244_IG38
 
 
-; Total bytes of code 950, prolog size 10, PerfScore 1006.50, instruction count 378, allocated bytes for code 950 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
+; Total bytes of code 952, prolog size 10, PerfScore 1008.50, instruction count 379, allocated bytes for code 952 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -794,7 +800,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 475 (0x001db) Actual length = 950 (0x0003b6)
+  Function Length   : 476 (0x001dc) Actual length = 952 (0x0003b8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+2 (+0.23%) : 68009.dasm - ILCompiler.PEWriter.SectionBuilder:RelocateOutputFile(System.Reflection.Metadata.BlobBuilder,ulong,System.IO.Stream):this (FullOpts)
@@ -9,38 +9,38 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T13] (  5,131   )     ref  ->   r5         this class-hnd single-def <ILCompiler.PEWriter.SectionBuilder>
-;  V01 arg1         [V01,T38] (  3,  3   )     ref  ->   r4         class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
+;  V01 arg1         [V01,T39] (  3,  3   )     ref  ->   r4         class-hnd single-def <System.Reflection.Metadata.BlobBuilder>
 ;  V02 arg2         [V02    ] (  4,  4   )    long  ->  [sp+0x30]  single-def
-;  V03 arg3         [V03,T45] (  1,  1   )     ref  ->  [sp+0x60]  class-hnd single-def <System.IO.Stream>
+;  V03 arg3         [V03,T46] (  1,  1   )     ref  ->  [sp+0x60]  class-hnd single-def <System.IO.Stream>
 ;  V04 loc0         [V04,T07] (  5,194   )     ref  ->   r6         class-hnd exact single-def <ILCompiler.PEWriter.RelocationHelper>
-;  V05 loc1         [V05,T32] (  7, 22   )     ref  ->  [sp+0x14]  class-hnd EH-live spill-single-def <<unknown class>>
-;  V06 loc2         [V06,T22] (  5, 80   )     ref  ->  [sp+0x10]  class-hnd spill-single-def <<unknown class>>
+;  V05 loc1         [V05,T33] (  7, 22   )     ref  ->  [sp+0x14]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V06 loc2         [V06,T21] (  5, 80   )     ref  ->   r4         class-hnd <<unknown class>>
 ;  V07 loc3         [V07,T26] (  2, 68   )     int  ->  [sp+0x2C]  spill-single-def
 ;* V08 loc4         [V08    ] (  0,  0   )  struct (20) zero-ref    do-not-enreg[SF] ld-addr-op <System.Collections.Generic.List`1+Enumerator[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V09 loc5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <ILCompiler.PEWriter.PlacedObjectData>
-;  V10 loc6         [V10,T23] (  3, 80   )     ref  ->  [sp+0x0C]  class-hnd exact spill-single-def <ILCompiler.DependencyAnalysis.Relocation[]>
+;  V10 loc6         [V10,T22] (  3, 80   )     ref  ->  [sp+0x10]  class-hnd exact spill-single-def <ILCompiler.DependencyAnalysis.Relocation[]>
 ;  V11 loc7         [V11,T05] (  5,264   )     int  ->  [sp+0x28] 
 ;* V12 loc8         [V12    ] (  0,  0   )  struct (12) zero-ref    <ILCompiler.DependencyAnalysis.Relocation>
-;  V13 loc9         [V13,T09] (  3,192   )     int  ->   r8        
+;  V13 loc9         [V13,T09] (  3,192   )     int  ->   r7        
 ;* V14 loc10        [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 loc11        [V15    ] (  0,  0   )  struct (12) zero-ref    <ILCompiler.PEWriter.SymbolTarget>
 ;  V16 loc12        [V16,T08] (  3,192   )     ref  ->   r0         class-hnd <<unknown class>>
 ;  V17 loc13        [V17,T12] (  3,160   )     int  ->   lr        
 ;  V18 loc14        [V18,T15] (  2,128   )     int  ->   r0        
 ;  V19 OutArgs      [V19    ] (  1,  1   )  struct ( 4) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V20 tmp1         [V20,T35] (  3,  6   )     ref  ->   r6         class-hnd exact single-def "NewObj constructor temp" <ILCompiler.PEWriter.RelocationHelper>
-;  V21 tmp2         [V21,T42] (  2,  4   )     ref  ->   r4         class-hnd single-def "dup spill" <<unknown class>>
-;  V22 tmp3         [V22,T36] (  3,  6   )     ref  ->   r7         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V20 tmp1         [V20,T36] (  3,  6   )     ref  ->   r6         class-hnd exact single-def "NewObj constructor temp" <ILCompiler.PEWriter.RelocationHelper>
+;  V21 tmp2         [V21,T43] (  2,  4   )     ref  ->   r4         class-hnd single-def "dup spill" <<unknown class>>
+;  V22 tmp3         [V22,T37] (  3,  6   )     ref  ->   r7         class-hnd single-def "impAppendStmt" <<unknown class>>
 ;* V23 tmp4         [V23    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V24 tmp5         [V24,T41] (  5,  4.50)     ref  ->   r4        
-;  V25 tmp6         [V25,T37] (  5,  5   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V26 tmp7         [V26,T43] (  3,  3   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <<unknown class>>
-;  V27 tmp8         [V27,T33] (  7, 14   )     ref  ->   r8         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V24 tmp5         [V24,T42] (  5,  4.50)     ref  ->   r4        
+;  V25 tmp6         [V25,T38] (  5,  5   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V26 tmp7         [V26,T44] (  3,  3   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V27 tmp8         [V27,T34] (  7, 14   )     ref  ->   r8         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V28 tmp9         [V28    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V29 tmp10        [V29    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V30 tmp11        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V31 tmp12        [V31,T44] (  2,  2   )     ref  ->   r1         single-def
-;  V32 tmp13        [V32,T31] (  3, 24   )     ref  ->   r9         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.PEWriter.PlacedObjectData]>
+;  V31 tmp12        [V31,T45] (  2,  2   )     ref  ->   r1         single-def
+;  V32 tmp13        [V32,T32] (  3, 24   )     ref  ->   r9         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V33 tmp14        [V33    ] (  0,  0   )  struct (20) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V34 tmp15        [V34    ] (  0,  0   )  struct (12) zero-ref    "Inline return value spill temp" <ILCompiler.PEWriter.SymbolTarget>
 ;  V35 tmp16        [V35,T01] (  3,384   )     ref  ->   r0         class-hnd "Inlining Arg" <<unknown class>>
@@ -49,41 +49,42 @@
 ;* V38 tmp19        [V38    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <ILCompiler.PEWriter.SymbolTarget>
 ;* V39 tmp20        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V40 tmp21        [V40,T02] (  3,384   )     ref  ->   r0         class-hnd "Inlining Arg" <<unknown class>>
-;* V41 tmp22        [V41,T30] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V41 tmp22        [V41,T31] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V42 tmp23        [V42    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V43 tmp24        [V43    ] (  0,  0   )     ref  ->  zero-ref    "field V09.Data (fldOffset=0x0)" P-INDEP
-;  V44 tmp25        [V44,T25] (  2, 72   )     int  ->  [sp+0x24]  spill-single-def "field V09.Offset (fldOffset=0x4)" P-INDEP
-;  V45 tmp26        [V45,T14] (  3,128   )     ref  ->  [sp+0x08]  spill-single-def "field V12.Target (fldOffset=0x0)" P-INDEP
-;  V46 tmp27        [V46,T10] (  3,192   )     int  ->   r7         "field V12.RelocType (fldOffset=0x4)" P-INDEP
+;  V44 tmp25        [V44,T24] (  2, 72   )     int  ->  [sp+0x24]  spill-single-def "field V09.Offset (fldOffset=0x4)" P-INDEP
+;  V45 tmp26        [V45,T14] (  3,128   )     ref  ->  [sp+0x0C]  spill-single-def "field V12.Target (fldOffset=0x0)" P-INDEP
+;  V46 tmp27        [V46,T10] (  3,192   )     int  ->   r9         "field V12.RelocType (fldOffset=0x4)" P-INDEP
 ;  V47 tmp28        [V47,T16] (  2,128   )     int  ->   r8         "field V12.Offset (fldOffset=0x8)" P-INDEP
 ;* V48 tmp29        [V48    ] (  0,  0   )     int  ->  zero-ref    "field V15.SectionIndex (fldOffset=0x0)" P-INDEP
 ;* V49 tmp30        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V15.Offset (fldOffset=0x4)" P-INDEP
 ;* V50 tmp31        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V15.Size (fldOffset=0x8)" P-INDEP
 ;  V51 tmp32        [V51,T06] (  4,256   )     int  ->   r1         "field V34.SectionIndex (fldOffset=0x0)" P-INDEP
 ;  V52 tmp33        [V52,T11] (  3,192   )     int  ->   r2         "field V34.Offset (fldOffset=0x4)" P-INDEP
-;  V53 tmp34        [V53,T21] (  2, 96   )     int  ->   r3         "field V34.Size (fldOffset=0x8)" P-INDEP
+;  V53 tmp34        [V53,T20] (  2, 96   )     int  ->   r3         "field V34.Size (fldOffset=0x8)" P-INDEP
 ;* V54 tmp35        [V54    ] (  0,  0   )     int  ->  zero-ref    "field V38.SectionIndex (fldOffset=0x0)" P-INDEP
 ;* V55 tmp36        [V55    ] (  0,  0   )     int  ->  zero-ref    "field V38.Offset (fldOffset=0x4)" P-INDEP
 ;* V56 tmp37        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V38.Size (fldOffset=0x8)" P-INDEP
-;  V57 tmp38        [V57,T18] (  5, 84   )     ref  ->   r9         "V08.[000..004)"
+;  V57 tmp38        [V57,T25] (  4, 68   )     ref  ->  [sp+0x08]  spill-single-def "V08.[000..004)"
 ;  V58 tmp39        [V58,T17] (  6, 84   )     int  ->  [sp+0x20]  "V08.[004..008)"
-;  V59 tmp40        [V59,T27] (  3, 52   )     int  ->  [sp+0x1C]  spill-single-def "V08.[008..012)"
+;  V59 tmp40        [V59,T30] (  2, 36   )     int  ->  [sp+0x1C]  spill-single-def "V08.[008..012)"
 ;  V60 tmp41        [V60,T28] (  2, 24   )     ref  ->   r0         "V08.[012..016)"
 ;  V61 tmp42        [V61,T29] (  2, 24   )     int  ->   lr         "V08.[016..020)"
 ;* V62 tmp43        [V62    ] (  0,  0   )     ref  ->  zero-ref    "V33.[000..004)"
 ;* V63 tmp44        [V63    ] (  0,  0   )     int  ->  zero-ref    "V33.[004..008)"
-;  V64 tmp45        [V64,T34] (  2,  8   )     int  ->   r3         "V33.[008..012)"
+;  V64 tmp45        [V64,T35] (  2,  8   )     int  ->   r3         "V33.[008..012)"
 ;* V65 tmp46        [V65    ] (  0,  0   )     ref  ->  zero-ref    "V33.[012..016)"
 ;* V66 tmp47        [V66    ] (  0,  0   )     int  ->  zero-ref    "V33.[016..020)"
-;  V67 tmp48        [V67,T19] (  3, 96   )   byref  ->   r1         "Spilling address for field-by-field copy"
-;  V68 tmp49        [V68,T20] (  3, 96   )     ref  ->   r1         "arr expr"
+;  V67 tmp48        [V67,T18] (  3, 96   )   byref  ->   r1         "Spilling address for field-by-field copy"
+;  V68 tmp49        [V68,T19] (  3, 96   )     ref  ->   r1         "arr expr"
 ;  V69 tmp50        [V69,T00] (  4,512   )   byref  ->   r8         "BlockOp address local"
 ;  V70 tmp51        [V70,T03] (  3,384   )     ref  ->   r0         "arr expr"
-;  V71 PSPSym       [V71,T46] (  1,  1   )     int  ->  [sp+0x38]  do-not-enreg[V] "PSPSym"
-;* V72 cse0         [V72,T47] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
-;  V73 cse1         [V73,T24] (  3, 80   )     int  ->  [sp+0x18]  spill-single-def "CSE - moderate"
-;  V74 rat0         [V74,T39] (  3,  3   )     int  ->  [sp+0x30]  do-not-enreg[] "field V02.lo (fldOffset=0x0)" P-DEP
-;  V75 rat1         [V75,T40] (  3,  3   )     int  ->  [sp+0x34]  do-not-enreg[] "field V02.hi (fldOffset=0x4)" P-DEP
+;  V71 PSPSym       [V71,T47] (  1,  1   )     int  ->  [sp+0x38]  do-not-enreg[V] "PSPSym"
+;* V72 cse0         [V72,T48] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
+;  V73 cse1         [V73,T27] (  2, 32   )     int  ->   r1         "CSE - conservative"
+;  V74 cse2         [V74,T23] (  3, 80   )     int  ->  [sp+0x18]  spill-single-def "CSE - moderate"
+;  V75 rat0         [V75,T40] (  3,  3   )     int  ->  [sp+0x30]  do-not-enreg[] "field V02.lo (fldOffset=0x0)" P-DEP
+;  V76 rat1         [V76,T41] (  3,  3   )     int  ->  [sp+0x34]  do-not-enreg[] "field V02.hi (fldOffset=0x4)" P-DEP
 ;
 ; Lcl frame size = 60
 
@@ -115,8 +116,8 @@ G_M14932_IG02:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             mov     r0, r6
             ldr     r1, [sp+0x60]  // [V03 arg3]
             ; gcrRegs +[r1]
-            ldr     r2, [sp+0x30] // [V74 rat0]
-            ldr     r3, [sp+0x34]  // [V75 rat1]
+            ldr     r2, [sp+0x30]    // [V75 rat0]
+            ldr     r3, [sp+0x34]  // [V76 rat1]
             movw    lr, 0xd1ff
             movt    lr, 0xd1ff
             ldr     lr, [lr]
@@ -130,7 +131,7 @@ G_M14932_IG02:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ldr     r0, [r0]
             and     r0, r0, 1
             cmp     r0, 1
-            bne     G_M14932_IG24
+            bne     G_M14932_IG23
                         ;; size=66 bbWeight=1 PerfScore 22.00
 G_M14932_IG03:        ; bbWeight=1, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
             movw    r0, 0xd1ff
@@ -156,7 +157,7 @@ G_M14932_IG04:        ; bbWeight=0.50, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000
             ldr     r1, [r1]
             ; gcrRegs +[r1]
             cmp     r1, 0
-            beq     G_M14932_IG25
+            beq     G_M14932_IG24
             adds    r0, r4, 4
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -198,9 +199,9 @@ G_M14932_IG05:        ; bbWeight=1, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
             cmp     r7, 0
-            beq     G_M14932_IG26
+            beq     G_M14932_IG25
             cmp     r4, 0
-            beq     G_M14932_IG27
+            beq     G_M14932_IG26
             movs    r1, 0
             str     r1, [r8+0x08]
             add     r0, r8, 12
@@ -245,7 +246,7 @@ G_M14932_IG05:        ; bbWeight=1, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000
             str     r8, [sp+0x14]  // [V05 loc1]
             ; GC ptr vars +{V05}
                        ;; size=140 bbWeight=1 PerfScore 44.00
-G_M14932_IG06:        ; bbWeight=1, gcVars=0000000100000000 {V05}, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M14932_IG06:        ; bbWeight=1, gcVars=0000000200000000 {V05}, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0]
             mov     r0, r8
             ; gcrRegs +[r0]
@@ -256,7 +257,7 @@ G_M14932_IG06:        ; bbWeight=1, gcVars=0000000100000000 {V05}, gcrefRegs=016
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     G_M14932_IG22
+            beq     G_M14932_IG21
                         ;; size=20 bbWeight=1 PerfScore 7.00
 G_M14932_IG07:        ; bbWeight=4, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000 {}, byref, isz
             mov     r0, r8
@@ -269,8 +270,6 @@ G_M14932_IG07:        ; bbWeight=4, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000 {}
             ; gcr arg pop 0
             mov     r4, r0
             ; gcrRegs +[r4]
-            str     r4, [sp+0x10] // [V06 loc2]
-            ; GC ptr vars +{V06}
             ldr     r1, [r4+0x20]
             ldr     r0, [r4+0x1C]
             ; gcrRegs -[r0]
@@ -279,27 +278,29 @@ G_M14932_IG07:        ; bbWeight=4, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0000 {}
             ldr     r9, [r4+0x0C]
             ; gcrRegs +[r9]
             ldr     r3, [r9+0x0C]
+            str     r9, [sp+0x08]   // [V57 tmp38]
+            ; GC ptr vars +{V57}
             movs    r2, 0
             str     r3, [sp+0x1C]  // [V59 tmp40]
             ldr     r8, [sp+0x14]  // [V05 loc1]
             ; gcrRegs +[r8]
             b       SHORT G_M14932_IG13
-                      ;; size=44 bbWeight=4 PerfScore 68.00
-G_M14932_IG08:        ; bbWeight=8, gcVars=0000000100400000 {V05 V06}, gcrefRegs=0371 {r0 r4 r5 r6 r8 r9}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[r0]
+                      ;; size=46 bbWeight=4 PerfScore 68.00
+G_M14932_IG08:        ; bbWeight=8, gcVars=0000000202000000 {V05 V57}, gcrefRegs=0171 {r0 r4 r5 r6 r8}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[r9] +[r0]
             str     lr, [sp+0x24] // [V44 tmp25]
             ldr     r12, [r0+0x04]
             ; gcrRegs +[r12]
-            str     r12, [sp+0x0C]   // [V10 loc6]
+            str     r12, [sp+0x10]   // [V10 loc6]
             ; GC ptr vars +{V10}
             movs    r0, 0
             ; gcrRegs -[r0]
             ldr     r1, [r12+0x04]
-            str     r1, [sp+0x18]  // [V73 cse1]
+            str     r1, [sp+0x18]    // [V74 cse2]
             cmp     r1, 0
             ble     SHORT G_M14932_IG15
                        ;; size=24 bbWeight=8 PerfScore 64.00
-G_M14932_IG09:        ; bbWeight=64, gcVars=0000000100C00000 {V05 V06 V10}, gcrefRegs=1270 {r4 r5 r6 r9 r12}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M14932_IG09:        ; bbWeight=64, gcVars=0000000202400000 {V05 V10 V57}, gcrefRegs=1070 {r4 r5 r6 r12}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r8]
             mov     r8, 12
             str     r0, [sp+0x28]  // [V11 loc7]
@@ -309,20 +310,18 @@ G_M14932_IG09:        ; bbWeight=64, gcVars=0000000100C00000 {V05 V06 V10}, gcre
             ; byrRegs +[r8]
             ldr     r3, [r8]
             ; gcrRegs +[r3]
-            str     r3, [sp+0x08] // [V45 tmp26]
+            str     r3, [sp+0x0C]   // [V45 tmp26]
             ; GC ptr vars +{V45}
-            ldr     r7, [r8+0x04]
+            ldr     r9, [r8+0x04]
             ldr     r8, [r8+0x08]
             ; byrRegs -[r8]
-            ldr     lr, [r4+0x1C]
-            ldr     r4, [sp+0x24]  // [V44 tmp25]
-            ; gcrRegs -[r4]
-            add     lr, r4
-            add     r8, lr
-            ldr     lr, [sp+0x2C]  // [V07 loc3]
-            add     lr, r8
-            ldr     r4, [r6+0x28]
-            sub     r1, lr, r4
+            ldr     r7, [r4+0x1C]
+            add     r7, lr
+            add     r7, r8
+            ldr     r8, [sp+0x2C]  // [V07 loc3]
+            add     r8, r7
+            ldr     lr, [r6+0x28]
+            sub     r1, r8, lr
             mov     r0, r6
             ; gcrRegs +[r0]
             movw    lr, 0xd1ff
@@ -334,7 +333,7 @@ G_M14932_IG09:        ; bbWeight=64, gcVars=0000000100C00000 {V05 V06 V10}, gcre
             ldr     r0, [r5+0x08]
             ; gcrRegs +[r0]
             ldrsb   r1, [r0]
...
  
+10 (+2.92%) : 176397.dasm - System.Collections.Generic.SortedSet1[ubyte]:IntersectWithEnumerable(System.Collections.Generic.IEnumerable1[ubyte]):this (FullOpts)
@@ -8,42 +8,43 @@
 ; 1 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  8, 12   )     ref  ->   r5         this class-hnd single-def <System.Collections.Generic.SortedSet`1[ubyte]>
-;  V01 arg1         [V01,T15] (  3,  3   )     ref  ->   r4         class-hnd single-def <System.Collections.Generic.IEnumerable`1[ubyte]>
-;  V02 loc0         [V02,T04] (  8, 12   )     ref  ->   r8         class-hnd exact single-def <System.Collections.Generic.List`1[ubyte]>
-;  V03 loc1         [V03,T06] (  7, 10   )     ref  ->  [sp+0x04]  class-hnd EH-live spill-single-def <<unknown class>>
-;  V04 loc2         [V04,T07] (  4, 10   )   ubyte  ->   r4        
+;  V00 this         [V00,T04] (  8, 12   )     ref  ->   r5         this class-hnd single-def <System.Collections.Generic.SortedSet`1[ubyte]>
+;  V01 arg1         [V01,T16] (  3,  3   )     ref  ->   r4         class-hnd single-def <System.Collections.Generic.IEnumerable`1[ubyte]>
+;  V02 loc0         [V02,T05] (  8, 12   )     ref  ->   r8         class-hnd exact single-def <System.Collections.Generic.List`1[ubyte]>
+;  V03 loc1         [V03,T07] (  7, 10   )     ref  ->  [sp+0x04]  class-hnd EH-live single-def <<unknown class>>
+;  V04 loc2         [V04,T08] (  4, 10   )   ubyte  ->   r4        
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[ubyte]>
 ;* V06 loc4         [V06    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T13] (  3,  6   )     ref  ->   r8         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[ubyte]>
-;  V09 tmp2         [V09,T14] (  3,  5.70)     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V10 tmp3         [V10,T11] (  4,  7.40)     int  ->   r1         "Inline stloc first use temp"
+;  V08 tmp1         [V08,T14] (  3,  6   )     ref  ->   r8         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[ubyte]>
+;  V09 tmp2         [V09,T15] (  3,  5.70)     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V10 tmp3         [V10,T12] (  4,  7.40)     int  ->   r1         "Inline stloc first use temp"
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[ubyte]>
-;* V12 tmp5         [V12,T10] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V12 tmp5         [V12,T11] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V13 tmp6         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ubyte]>
 ;  V14 tmp7         [V14,T02] (  4, 17   )     ref  ->   r8         single-def "field V05._list (fldOffset=0x0)" P-INDEP
-;  V15 tmp8         [V15,T00] (  6, 21   )     int  ->   r4         "field V05._index (fldOffset=0x4)" P-INDEP
-;  V16 tmp9         [V16,T09] (  2,  9   )     int  ->   r6         "field V05._version (fldOffset=0x8)" P-INDEP
-;  V17 tmp10        [V17,T08] (  2,  6   )   ubyte  ->   r1         "field V05._current (fldOffset=0xc)" P-INDEP
-;  V18 tmp11        [V18,T17] (  3,  3   )     ref  ->   r8         single-def "field V11._list (fldOffset=0x0)" P-INDEP
-;* V19 tmp12        [V19,T19] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x4)" P-INDEP
-;  V20 tmp13        [V20,T18] (  2,  2   )     int  ->   r6         "field V11._version (fldOffset=0x8)" P-INDEP
+;  V15 tmp8         [V15,T00] (  6, 21   )     int  ->   r9         "field V05._index (fldOffset=0x4)" P-INDEP
+;  V16 tmp9         [V16,T10] (  2,  9   )     int  ->   r6         "field V05._version (fldOffset=0x8)" P-INDEP
+;  V17 tmp10        [V17,T09] (  2,  6   )   ubyte  ->   r1         "field V05._current (fldOffset=0xc)" P-INDEP
+;  V18 tmp11        [V18,T18] (  3,  3   )     ref  ->   r8         single-def "field V11._list (fldOffset=0x0)" P-INDEP
+;* V19 tmp12        [V19,T20] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x4)" P-INDEP
+;  V20 tmp13        [V20,T19] (  2,  2   )     int  ->   r6         "field V11._version (fldOffset=0x8)" P-INDEP
 ;* V21 tmp14        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "field V11._current (fldOffset=0xc)" P-INDEP
 ;  V22 tmp15        [V22,T01] (  3, 24   )     ref  ->   r1         "arr expr"
-;  V23 PSPSym       [V23,T20] (  1,  1   )     int  ->  [sp+0x08]  do-not-enreg[V] "PSPSym"
-;  V24 cse0         [V24,T16] (  3,  4   )     int  ->   r7         "CSE - moderate"
-;  V25 cse1         [V25,T05] (  2,  8   )     int  ->   r1         "CSE - aggressive"
-;  V26 cse2         [V26,T12] (  4,  7   )     int  ->   r6         "CSE - moderate"
+;  V23 PSPSym       [V23,T21] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
+;  V24 cse0         [V24,T17] (  3,  4   )     int  ->   r7         "CSE - moderate"
+;  V25 cse1         [V25,T06] (  2,  8   )     int  ->   r1         "CSE - aggressive"
+;  V26 cse2         [V26,T03] (  2, 16   )     int  ->   r1         "CSE - aggressive"
+;  V27 cse3         [V27,T13] (  4,  7   )     int  ->   r6         "CSE - moderate"
 ;
-; Lcl frame size = 12
+; Lcl frame size = 16
 
 G_M35530_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
-            add     r2, sp, 40
-            str     r2, [sp+0x08]  // [V23 PSPSym]
+            push    {r4,r5,r6,r7,r8,r9,r11,lr}
+            sub     sp, 16
+            add     r11, sp, 40
+            add     r2, sp, 48
+            str     r2, [sp+0x0C]  // [V23 PSPSym]
             mov     r5, r0
             ; gcrRegs +[r5]
             mov     r4, r1
@@ -84,17 +85,16 @@ G_M35530_IG02:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
-            mov     r4, r0
-            ; gcrRegs +[r4]
-            str     r4, [sp+0x04]
+            mov     r9, r0
+            ; gcrRegs +[r9]
+            str     r9, [sp+0x04]
             ; GC ptr vars +{V03}
-                        ;; size=66 bbWeight=1 PerfScore 25.00
-G_M35530_IG03:        ; bbWeight=1, gcVars=00000040 {V03}, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {}, gcvars, byref, isz
+                      ;; size=68 bbWeight=1 PerfScore 25.00
+G_M35530_IG03:        ; bbWeight=1, gcVars=00000080 {V03}, gcrefRegs=0320 {r5 r8 r9}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0]
-            mov     r0, r4
+            mov     r0, r9
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
@@ -103,8 +103,8 @@ G_M35530_IG03:        ; bbWeight=1, gcVars=00000040 {V03}, gcrefRegs=0130 {r4 r5
             cmp     r0, 0
             beq     SHORT G_M35530_IG10
                        ;; size=18 bbWeight=1 PerfScore 7.00
-G_M35530_IG04:        ; bbWeight=4, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [sp+0x04]  // [V03 loc1]
+G_M35530_IG04:        ; bbWeight=4, gcrefRegs=0320 {r5 r8 r9}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r9
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
             movt    r4, 0xd1ff
@@ -124,7 +124,7 @@ G_M35530_IG04:        ; bbWeight=4, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, b
             cmp     r0, 0
             beq     SHORT G_M35530_IG07
                        ;; size=30 bbWeight=4 PerfScore 52.00
-G_M35530_IG05:        ; bbWeight=2, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, byref, isz
+G_M35530_IG05:        ; bbWeight=2, gcrefRegs=0320 {r5 r8 r9}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r8+0x0C]
             adds    r0, r0, 1
             str     r0, [r8+0x0C]
@@ -135,7 +135,7 @@ G_M35530_IG05:        ; bbWeight=2, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, b
             cmp     r3, r1
             bls     SHORT G_M35530_IG09
                        ;; size=24 bbWeight=2 PerfScore 16.00
-G_M35530_IG06:        ; bbWeight=1.70, gcrefRegs=0121 {r0 r5 r8}, byrefRegs=0000 {}, byref
+G_M35530_IG06:        ; bbWeight=1.70, gcrefRegs=0321 {r0 r5 r8 r9}, byrefRegs=0000 {}, byref
             adds    r3, r1, 1
             str     r3, [r8+0x08]
             adds    r0, 8
@@ -143,9 +143,9 @@ G_M35530_IG06:        ; bbWeight=1.70, gcrefRegs=0121 {r0 r5 r8}, byrefRegs=0000
             ; byrRegs +[r0]
             strb    r4, [r0+r1]
                        ;; size=10 bbWeight=1.70 PerfScore 6.80
-G_M35530_IG07:        ; bbWeight=4, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, byref, isz
+G_M35530_IG07:        ; bbWeight=4, gcrefRegs=0320 {r5 r8 r9}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r0]
-            ldr     r0, [sp+0x04]  // [V03 loc1]
+            mov     r0, r9
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
             movt    r4, 0xd1ff
@@ -156,10 +156,10 @@ G_M35530_IG07:        ; bbWeight=4, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, b
             cmp     r0, 0
             bne     SHORT G_M35530_IG04
                        ;; size=18 bbWeight=4 PerfScore 28.00
-G_M35530_IG08:        ; bbWeight=1, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, byref, isz
+G_M35530_IG08:        ; bbWeight=1, gcrefRegs=0320 {r5 r8 r9}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M35530_IG10
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M35530_IG09:        ; bbWeight=0.30, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, byref, isz
+G_M35530_IG09:        ; bbWeight=0.30, gcrefRegs=0320 {r5 r8 r9}, byrefRegs=0000 {}, byref, isz
             mov     r0, r8
             ; gcrRegs +[r0]
             mov     r1, r4
@@ -171,15 +171,15 @@ G_M35530_IG09:        ; bbWeight=0.30, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}
             ; gcr arg pop 0
             b       SHORT G_M35530_IG07
                        ;; size=18 bbWeight=0.30 PerfScore 2.10
-G_M35530_IG10:        ; bbWeight=1, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [sp+0x04]  // [V03 loc1]
+G_M35530_IG10:        ; bbWeight=1, gcrefRegs=0320 {r5 r8 r9}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r9
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             ; GC ptr vars -{V03}
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
+            ; gcrRegs -[r0 r9]
             ; gcr arg pop 0
             mov     r0, r5
             ; gcrRegs +[r0]
@@ -189,9 +189,9 @@ G_M35530_IG10:        ; bbWeight=1, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             ldr     r6, [r8+0x0C]
-            movs    r4, 0
+            mov     r9, 0
             b       SHORT G_M35530_IG12
-                       ;; size=30 bbWeight=1 PerfScore 12.00
+                     ;; size=32 bbWeight=1 PerfScore 12.00
 G_M35530_IG11:        ; bbWeight=2, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, byref
             uxtb    r1, r1
             mov     r0, r5
@@ -208,25 +208,25 @@ G_M35530_IG12:        ; bbWeight=8, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, b
                        ;; size=8 bbWeight=8 PerfScore 24.00
 G_M35530_IG13:        ; bbWeight=4, gcrefRegs=0120 {r5 r8}, byrefRegs=0000 {}, byref, isz
             ldr     r1, [r8+0x08]
-            cmp     r4, r1
+            cmp     r9, r1
             bhs     SHORT G_M35530_IG14
             ldr     r1, [r8+0x04]
             ; gcrRegs +[r1]
             ldr     r0, [r1+0x04]
-            cmp     r4, r0
+            cmp     r9, r0
             bhs     SHORT G_M35530_IG15
             adds    r1, 8
             ; gcrRegs -[r1]
             ; byrRegs +[r1]
-            ldrb    r1, [r1+r4]
+            ldrb    r1, [r1+r9]
             ; byrRegs -[r1]
-            adds    r4, r4, 1
+            add     r9, r9, 1
             b       SHORT G_M35530_IG11
-                        ;; size=26 bbWeight=4 PerfScore 44.00
+                     ;; size=30 bbWeight=4 PerfScore 44.00
 G_M35530_IG14:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r5 r8]
-            add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            add     sp, 16
+            pop     {r4,r5,r6,r7,r8,r9,r11,pc}
                      ;; size=6 bbWeight=4 PerfScore 8.00
 G_M35530_IG15:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             movw    r3, 0xd1ff
@@ -242,33 +242,32 @@ G_M35530_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M35530_IG17:        ; bbWeight=0, gcVars=00000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M35530_IG17:        ; bbWeight=0, gcVars=00000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
             ; GC ptr vars +{V03}
-            push    {r3,r4,r5,r6,r7,r8,r11,lr}
+            push    {r2,r3,r4,r5,r6,r7,r8,r9,r11,lr}
             add     r3, r11, 8
-            str     r3, [sp]
+            str     r3, [sp+0x04]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M35530_IG18:        ; bbWeight=0, gcVars=00000040 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldr     r4, [r11-0x1C] // [V03 loc1]
-            ; gcrRegs +[r4]
-            cmp     r4, 0
+G_M35530_IG18:        ; bbWeight=0, gcVars=00000080 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldr     r9, [r11-0x24] // [V03 loc1]
+            ; gcrRegs +[r9]
+            cmp     r9, 0
             beq     SHORT G_M35530_IG19
-            mov     r0, r4
+            mov     r0, r9
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
-            ; gcrRegs -[r4]
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             ; GC ptr vars -{V03}
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
+            ; gcrRegs -[r0 r9]
             ; gcr arg pop 0
-                     ;; size=22 bbWeight=0 PerfScore 0.00
+                      ;; size=24 bbWeight=0 PerfScore 0.00
 G_M35530_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
-            pop     {r3,r4,r5,r6,r7,r8,r11,pc}
+            pop     {r2,r3,r4,r5,r6,r7,r8,r9,r11,pc}
...
  
  
libraries_tests.run.linux.arm.Release.mch
-10 (-3.62%) : 23800.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier0-FullOpts)
@@ -8,29 +8,30 @@
 ; 3 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T09] (  4,  4   )     ref  ->   r4         this class-hnd single-def <Xunit.AggregateMessageSink>
-;  V01 arg1         [V01,T06] (  3,  5   )     ref  ->   r5         class-hnd single-def <Xunit.Abstractions.IMessageSinkMessage>
-;  V02 arg2         [V02,T07] (  3,  5   )     ref  ->   r6         class-hnd single-def <System.Collections.Generic.HashSet`1[System.String]>
-;  V03 loc0         [V03,T05] (  4,  8   )   ubyte  ->   r7        
-;  V04 loc1         [V04,T14] (  4,  1.50)     ref  ->  [sp+0x04]  class-hnd EH-live single-def <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
+;  V00 this         [V00,T10] (  4,  4   )     ref  ->   r4         this class-hnd single-def <Xunit.AggregateMessageSink>
+;  V01 arg1         [V01,T07] (  3,  5   )     ref  ->   r5         class-hnd single-def <Xunit.Abstractions.IMessageSinkMessage>
+;  V02 arg2         [V02,T08] (  3,  5   )     ref  ->   r6         class-hnd single-def <System.Collections.Generic.HashSet`1[System.String]>
+;  V03 loc0         [V03,T06] (  4,  8   )   ubyte  ->   r7        
+;  V04 loc1         [V04,T15] (  4,  1.50)     ref  ->  [sp+0x04]  class-hnd EH-live single-def <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
 ;  V05 loc2         [V05    ] (  5,  4   )   ubyte  ->  [sp+0x0C]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;* V06 loc3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[Xunit.IMessageSinkWithTypes]>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T11] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
-;  V09 tmp2         [V09,T10] (  2,  4   )     ref  ->   r9         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
+;  V08 tmp1         [V08,T12] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
+;  V09 tmp2         [V09,T11] (  2,  4   )     ref  ->   r9         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
 ;* V10 tmp3         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Xunit.IMessageSinkWithTypes]>
-;* V11 tmp4         [V11,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V11 tmp4         [V11,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V12 tmp5         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
-;  V13 tmp6         [V13,T01] (  5, 17   )     ref  ->   r9         single-def "field V06._list (fldOffset=0x0)" P-INDEP
-;  V14 tmp7         [V14,T03] (  2,  6   )     ref  ->   r0         "field V06._current (fldOffset=0x4)" P-INDEP
+;  V13 tmp6         [V13,T02] (  4, 16   )     ref  ->   r9         single-def "field V06._list (fldOffset=0x0)" P-INDEP
+;  V14 tmp7         [V14,T04] (  2,  6   )     ref  ->   r0         "field V06._current (fldOffset=0x4)" P-INDEP
 ;  V15 tmp8         [V15,T00] (  6, 17   )     int  ->  [sp+0x08]  "field V06._index (fldOffset=0x8)" P-INDEP
-;  V16 tmp9         [V16,T04] (  3, 10   )     int  ->  r10         single-def "field V06._version (fldOffset=0xc)" P-INDEP
-;  V17 tmp10        [V17,T12] (  3,  3   )     ref  ->   r9         single-def "field V10._list (fldOffset=0x0)" P-INDEP
+;  V16 tmp9         [V16,T05] (  2,  9   )     int  ->  r10         single-def "field V06._version (fldOffset=0xc)" P-INDEP
+;  V17 tmp10        [V17,T13] (  3,  3   )     ref  ->   r9         single-def "field V10._list (fldOffset=0x0)" P-INDEP
 ;* V18 tmp11        [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V10._current (fldOffset=0x4)" P-INDEP
-;* V19 tmp12        [V19,T15] (  0,  0   )     int  ->  zero-ref    single-def "field V10._index (fldOffset=0x8)" P-INDEP
-;  V20 tmp13        [V20,T13] (  2,  2   )     int  ->  r10         single-def "field V10._version (fldOffset=0xc)" P-INDEP
-;  V21 tmp14        [V21,T02] (  3, 18   )     ref  ->   r0         "arr expr"
-;  V22 PSPSym       [V22,T16] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
+;* V19 tmp12        [V19,T16] (  0,  0   )     int  ->  zero-ref    single-def "field V10._index (fldOffset=0x8)" P-INDEP
+;  V20 tmp13        [V20,T14] (  2,  2   )     int  ->  r10         single-def "field V10._version (fldOffset=0xc)" P-INDEP
+;  V21 tmp14        [V21,T01] (  3, 18   )     ref  ->   r0         "arr expr"
+;  V22 PSPSym       [V22,T17] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
+;  V23 cse0         [V23,T03] (  2,  8   )     int  ->   r0         "CSE - aggressive"
 ;
 ; Lcl frame size = 20
 
@@ -56,7 +57,7 @@ G_M52679_IG02:        ; bbWeight=1, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             str     r8, [sp+0x04]
             ; GC ptr vars +{V04}
                        ;; size=10 bbWeight=1 PerfScore 3.00
-G_M52679_IG03:        ; bbWeight=1, gcVars=00004000 {V04}, gcrefRegs=0170 {r4 r5 r6 r8}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M52679_IG03:        ; bbWeight=1, gcVars=00008000 {V04}, gcrefRegs=0170 {r4 r5 r6 r8}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x0C]
             cmp     r1, 0
             bne     SHORT G_M52679_IG09
@@ -93,19 +94,19 @@ G_M52679_IG06:        ; bbWeight=8, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000
             ; gcrRegs -[r4]
             ldr     r0, [r9+0x0C]
             cmp     r10, r0
-            bne     SHORT G_M52679_IG10
+            bne     SHORT G_M52679_IG11
                       ;; size=8 bbWeight=8 PerfScore 24.00
 G_M52679_IG07:        ; bbWeight=4, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r9+0x08]
             cmp     r3, r0
-            bhs     SHORT G_M52679_IG14
+            bhs     SHORT G_M52679_IG12
                        ;; size=8 bbWeight=4 PerfScore 12.00
 G_M52679_IG08:        ; bbWeight=3, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r9+0x04]
             ; gcrRegs +[r0]
             ldr     r2, [r0+0x04]
             cmp     r3, r2
-            bhs     SHORT G_M52679_IG12
+            bhs     SHORT G_M52679_IG10
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -139,24 +140,14 @@ G_M52679_IG09:        ; bbWeight=0, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byre
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M52679_IG10:        ; bbWeight=1, gcrefRegs=0300 {r8 r9}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r9]
-            ldr     r0, [r9+0x0C]
-            cmp     r10, r0
-            bne     SHORT G_M52679_IG13
-                       ;; size=8 bbWeight=1 PerfScore 3.00
-G_M52679_IG11:        ; bbWeight=4, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r9]
-            b       SHORT G_M52679_IG14
-                       ;; size=2 bbWeight=4 PerfScore 4.00
-G_M52679_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M52679_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r8]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M52679_IG13:        ; bbWeight=0, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
+G_M52679_IG11:        ; bbWeight=0, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r8]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -165,12 +156,12 @@ G_M52679_IG13:        ; bbWeight=0, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byre
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M52679_IG14:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
+G_M52679_IG12:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
             ldrb    r0, [sp+0x0C]   // [V05 loc2]
             cmp     r0, 0
-            beq     SHORT G_M52679_IG16
+            beq     SHORT G_M52679_IG14
                         ;; size=8 bbWeight=1 PerfScore 3.00
-G_M52679_IG15:        ; bbWeight=0.50, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
+G_M52679_IG13:        ; bbWeight=0.50, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
             mov     r0, r8
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
@@ -180,37 +171,37 @@ G_M52679_IG15:        ; bbWeight=0.50, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0 r8]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M52679_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M52679_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     r0, r7
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M52679_IG17:        ; bbWeight=1, epilog, nogc, extend
+G_M52679_IG15:        ; bbWeight=1, epilog, nogc, extend
             add     sp, 20
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M52679_IG18:        ; bbWeight=0, gcVars=00004000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
-            ; GC ptr vars +{V04 V14}
+G_M52679_IG16:        ; bbWeight=0, gcVars=00008000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+            ; GC ptr vars +{V04 V15}
             push    {r3,r4,r5,r6,r7,r8,r9,r10,r11,lr}
             add     r3, r11, 8
             str     r3, [sp]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M52679_IG19:        ; bbWeight=0, gcVars=00004000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M52679_IG17:        ; bbWeight=0, gcVars=00008000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r0, [r11-0x24]    // [V05 loc2]
             cmp     r0, 0
-            beq     SHORT G_M52679_IG20
+            beq     SHORT G_M52679_IG18
             ldr     r0, [r11-0x2C]  // [V04 loc1]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
-            ; GC ptr vars -{V04 V14}
+            ; GC ptr vars -{V04 V15}
             blx     r3       // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=22 bbWeight=0 PerfScore 0.00
-G_M52679_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M52679_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
             pop     {r3,r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 276, prolog size 24, PerfScore 139.00, instruction count 98, allocated bytes for code 276 (MethodHash=39853238) for method Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier0-FullOpts)
+; Total bytes of code 266, prolog size 24, PerfScore 132.00, instruction count 94, allocated bytes for code 266 (MethodHash=39853238) for method Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -222,7 +213,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 120 (0x00078) Actual length = 240 (0x0000f0)
+  Function Length   : 115 (0x00073) Actual length = 230 (0x0000e6)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
@@ -250,4 +241,4 @@ Unwind Info:
 
 *************** EH table for Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M52679_IG03..G_M52679_IG14) handled by [G_M52679_IG18..END) (fault)
+EH#0: try [G_M52679_IG03..G_M52679_IG12) handled by [G_M52679_IG16..END) (fault)
  
-8 (-0.88%) : 9482.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier1)
@@ -9,66 +9,67 @@
 ; 6 inlinees with PGO data; 20 single block inlinees; 7 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T27] (  4,  2   )     ref  ->  [sp+0x0C]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V00 loc0         [V00,T28] (  4,  2   )     ref  ->  [sp+0x0C]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V01 loc1         [V01    ] (  6,  5   )   ubyte  ->  [sp+0x24]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V02 loc2         [V02,T03] (  6, 80.01)     ref  ->   r4         class-hnd exact single-def <<unknown class>>
 ;  V03 loc3         [V03,T01] (  6,102   )     ref  ->   r5         class-hnd <System.Diagnostics.Tracing.EventListener>
-;  V04 loc4         [V04,T14] (  4, 17.50)     int  ->   r5        
+;  V04 loc4         [V04,T15] (  4, 17.50)     int  ->   r5        
 ;* V05 loc5         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.WeakReference`1[System.Diagnostics.Tracing.EventSource]]>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.WeakReference`1[System.Diagnostics.Tracing.EventSource]>
-;  V07 loc7         [V07,T10] (  5, 22   )     ref  ->   r9         ld-addr-op class-hnd <System.Diagnostics.Tracing.EventSource>
+;  V07 loc7         [V07,T09] (  5, 22   )     ref  ->   r9         ld-addr-op class-hnd <System.Diagnostics.Tracing.EventSource>
 ;  V08 loc8         [V08,T02] ( 11, 90.51)     ref  ->  [sp+0x08]  class-hnd <<unknown class>>
 ;  V09 loc9         [V09    ] (  6, 27.50)  struct (16) [sp+0x14]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.Diagnostics.Tracing.EventListener,ubyte]>
-;  V10 loc10        [V10,T32] (  2,  0   )     ref  ->  [sp+0x04]  class-hnd <System.Diagnostics.Tracing.EventListener>
+;  V10 loc10        [V10,T33] (  2,  0   )     ref  ->  [sp+0x04]  class-hnd <System.Diagnostics.Tracing.EventListener>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T21] (  3,  6   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V13 tmp2         [V13,T31] (  3,  0   )     ref  ->   r9         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V14 tmp3         [V14,T25] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
+;  V12 tmp1         [V12,T22] (  3,  6   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V13 tmp2         [V13,T32] (  3,  0   )     ref  ->   r9         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V14 tmp3         [V14,T26] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
 ;* V15 tmp4         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp5         [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V17 tmp6         [V17,T24] (  2,  4   )     ref  ->   r6         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V17 tmp6         [V17,T25] (  2,  4   )     ref  ->   r6         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.WeakReference`1[System.Diagnostics.Tracing.EventSource]]>
 ;* V19 tmp8         [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V20 tmp9         [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
-;  V21 tmp10        [V21,T17] (  3, 11   )     ref  ->   r9         class-hnd "Inline return value spill temp" <System.Diagnostics.Tracing.EventSource>
-;  V22 tmp11        [V22,T09] (  6, 22   )     int  ->  [sp+0x10]  spill-single-def "Inline stloc first use temp"
+;  V21 tmp10        [V21,T18] (  3, 11   )     ref  ->   r9         class-hnd "Inline return value spill temp" <System.Diagnostics.Tracing.EventSource>
+;  V22 tmp11        [V22,T08] (  6, 22   )     int  ->  [sp+0x10]  spill-single-def "Inline stloc first use temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Diagnostics.Tracing.EventSource>
-;  V24 tmp13        [V24,T18] (  3, 11   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
+;  V24 tmp13        [V24,T19] (  3, 11   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
 ;* V25 tmp14        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Diagnostics.Tracing.EventSource>
 ;* V26 tmp15        [V26    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Diagnostics.Tracing.EventSource>
 ;* V27 tmp16        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.ComAwareWeakReference>
 ;* V28 tmp17        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V29 tmp18        [V29,T13] (  2, 18.03)     ref  ->   r1         class-hnd "Inlining Arg" <System.Diagnostics.Tracing.EventListener>
+;  V29 tmp18        [V29,T14] (  2, 18.03)     ref  ->   r1         class-hnd "Inlining Arg" <System.Diagnostics.Tracing.EventListener>
 ;* V30 tmp19        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V31 tmp20        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <<unknown class>>
-;  V32 tmp21        [V32,T11] (  2, 22   )     ref  ->   r3         class-hnd exact "dup spill" <System.Collections.Generic.Dictionary`2+KeyCollection[System.__Canon,ubyte]>
+;  V32 tmp21        [V32,T10] (  2, 22   )     ref  ->   r3         class-hnd exact "dup spill" <System.Collections.Generic.Dictionary`2+KeyCollection[System.__Canon,ubyte]>
 ;  V33 tmp22        [V33,T04] (  4, 38.50)     ref  ->   r3        
 ;  V34 tmp23        [V34,T00] (  4,176   )     ref  ->  [sp+0x00]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
 ;* V35 tmp24        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;* V36 tmp25        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.Diagnostics.Tracing.EventListener,ubyte]>
-;  V37 tmp26        [V37,T12] (  2, 22   )     ref  ->   r0         class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.__Canon,ubyte]>
+;  V37 tmp26        [V37,T11] (  2, 22   )     ref  ->   r0         class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.__Canon,ubyte]>
 ;* V38 tmp27        [V38    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp28        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V40 tmp29        [V40,T16] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V40 tmp29        [V40,T17] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V41 tmp30        [V41    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V42 tmp31        [V42,T07] (  5, 20.49)     ref  ->   r6         single-def "field V05._list (fldOffset=0x0)" P-INDEP
-;  V43 tmp32        [V43,T08] (  3, 16.44)     ref  ->   r9         "field V05._current (fldOffset=0x4)" P-INDEP
+;  V42 tmp31        [V42,T13] (  4, 19.43)     ref  ->   r6         single-def "field V05._list (fldOffset=0x0)" P-INDEP
+;  V43 tmp32        [V43,T07] (  3, 16.44)     ref  ->   r9         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V44 tmp33        [V44,T05] (  6, 29.26)     int  ->   r8         "field V05._index (fldOffset=0x8)" P-INDEP
-;  V45 tmp34        [V45,T20] (  3,  8.56)     int  ->   r7         "field V05._version (fldOffset=0xc)" P-INDEP
+;  V45 tmp34        [V45,T21] (  2,  7.50)     int  ->   r7         "field V05._version (fldOffset=0xc)" P-INDEP
 ;  V46 tmp35        [V46    ] (  2, 11   )     ref  ->  [sp+0x14]  do-not-enreg[X] addr-exposed "field V09._dictionary (fldOffset=0x0)" P-DEP
 ;  V47 tmp36        [V47    ] (  3, 11   )     ref  ->  [sp+0x18]  do-not-enreg[X] addr-exposed "field V09._currentKey (fldOffset=0x4)" P-DEP
 ;  V48 tmp37        [V48    ] (  2, 11   )     int  ->  [sp+0x1C]  do-not-enreg[X] addr-exposed "field V09._index (fldOffset=0x8)" P-DEP
 ;  V49 tmp38        [V49    ] (  2, 11   )     int  ->  [sp+0x20]  do-not-enreg[X] addr-exposed "field V09._version (fldOffset=0xc)" P-DEP
-;  V50 tmp39        [V50,T26] (  3,  3   )     ref  ->   r6         single-def "field V18._list (fldOffset=0x0)" P-INDEP
+;  V50 tmp39        [V50,T27] (  3,  3   )     ref  ->   r6         single-def "field V18._list (fldOffset=0x0)" P-INDEP
 ;* V51 tmp40        [V51    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V18._current (fldOffset=0x4)" P-INDEP
-;* V52 tmp41        [V52,T29] (  0,  0   )     int  ->  zero-ref    "field V18._index (fldOffset=0x8)" P-INDEP
-;  V53 tmp42        [V53,T28] (  2,  2   )     int  ->   r7         "field V18._version (fldOffset=0xc)" P-INDEP
-;  V54 tmp43        [V54,T15] (  3, 16.50)     ref  ->   r0         "field V36._dictionary (fldOffset=0x0)" P-INDEP
-;* V55 tmp44        [V55,T22] (  0,  0   )     ref  ->  zero-ref    "field V36._currentKey (fldOffset=0x4)" P-INDEP
-;* V56 tmp45        [V56,T23] (  0,  0   )     int  ->  zero-ref    "field V36._index (fldOffset=0x8)" P-INDEP
-;  V57 tmp46        [V57,T19] (  2, 11   )     int  ->   r1         "field V36._version (fldOffset=0xc)" P-INDEP
+;* V52 tmp41        [V52,T30] (  0,  0   )     int  ->  zero-ref    "field V18._index (fldOffset=0x8)" P-INDEP
+;  V53 tmp42        [V53,T29] (  2,  2   )     int  ->   r7         "field V18._version (fldOffset=0xc)" P-INDEP
+;  V54 tmp43        [V54,T16] (  3, 16.50)     ref  ->   r0         "field V36._dictionary (fldOffset=0x0)" P-INDEP
+;* V55 tmp44        [V55,T23] (  0,  0   )     ref  ->  zero-ref    "field V36._currentKey (fldOffset=0x4)" P-INDEP
+;* V56 tmp45        [V56,T24] (  0,  0   )     int  ->  zero-ref    "field V36._index (fldOffset=0x8)" P-INDEP
+;  V57 tmp46        [V57,T20] (  2, 11   )     int  ->   r1         "field V36._version (fldOffset=0xc)" P-INDEP
 ;  V58 tmp47        [V58,T06] (  3, 32.65)     ref  ->   r0         "arr expr"
-;  V59 PSPSym       [V59,T30] (  1,  1   )     int  ->  [sp+0x28]  do-not-enreg[V] "PSPSym"
+;  V59 PSPSym       [V59,T31] (  1,  1   )     int  ->  [sp+0x28]  do-not-enreg[V] "PSPSym"
+;  V60 cse0         [V60,T12] (  2, 12.99)     int  ->   r0         "CSE - moderate"
 ;
 ; Lcl frame size = 44
 
@@ -92,13 +93,13 @@ G_M15982_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcr arg pop 0
             ldrb    r1, [r0+0xA19]
             cmp     r1, 0
-            bne     G_M15982_IG38
+            bne     G_M15982_IG36
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
             ldr     r1, [r1]
             ; gcrRegs +[r1]
             cmp     r1, 0
-            beq     G_M15982_IG39
+            beq     G_M15982_IG37
                         ;; size=48 bbWeight=1 PerfScore 14.00
 G_M15982_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r1]
@@ -111,7 +112,7 @@ G_M15982_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movs    r0, 0
             str     r0, [sp+0x24]  // [V01 loc1]
                        ;; size=16 bbWeight=1 PerfScore 6.00
-G_M15982_IG04:        ; bbWeight=1, gcVars=0000000008000000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M15982_IG04:        ; bbWeight=1, gcVars=0000000010000000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r1]
             ldrb    r0, [sp+0x24]  // [V01 loc1]
             cmp     r0, 0
@@ -232,10 +233,10 @@ G_M15982_IG10:        ; bbWeight=5.50, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000
             ands    r3, r0
             str     r3, [sp+0x10]
             cmp     r3, 0
-            beq     G_M15982_IG36
+            beq     G_M15982_IG34
             ands    r0, r3, 2
             cmp     r0, 0
-            bne     G_M15982_IG33
+            bne     G_M15982_IG31
             mov     r0, r3
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -287,7 +288,7 @@ G_M15982_IG15:        ; bbWeight=4.51, gcrefRegs=0258 {r3 r4 r6 r9}, byrefRegs=0
             ; byrRegs +[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M15982_IG32
+            beq     SHORT G_M15982_IG30
                         ;; size=22 bbWeight=4.51 PerfScore 40.57
 G_M15982_IG16:        ; bbWeight=25, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r0]
@@ -297,7 +298,7 @@ G_M15982_IG16:        ; bbWeight=25, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {
             cmp     r3, 0
             bne     SHORT G_M15982_IG15
                        ;; size=8 bbWeight=25 PerfScore 100.00
-G_M15982_IG17:        ; bbWeight=5.50, gcVars=0000000008000000 {V00}, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M15982_IG17:        ; bbWeight=5.50, gcVars=0000000010000000 {V00}, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r3]
             ; GC ptr vars -{V08}
             ldr     r3, [r4+0x10]
@@ -338,7 +339,7 @@ G_M15982_IG18:        ; bbWeight=22, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {
             mov     r3, r1
             ; gcrRegs +[r3]
                        ;; size=54 bbWeight=22 PerfScore 396.00
-G_M15982_IG19:        ; bbWeight=5.50, gcVars=0000000008000000 {V00}, gcrefRegs=0258 {r3 r4 r6 r9}, byrefRegs=0000 {}, gcvars, byref
+G_M15982_IG19:        ; bbWeight=5.50, gcVars=0000000010000000 {V00}, gcrefRegs=0258 {r3 r4 r6 r9}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r1]
             ; GC ptr vars -{V00 V34}
             ldr     r0, [r3+0x04]
@@ -364,25 +365,25 @@ G_M15982_IG21:        ; bbWeight=5.50, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             cmp     r0, 0
-            bne     SHORT G_M15982_IG29
+            bne     SHORT G_M15982_IG27
                         ;; size=26 bbWeight=5.50 PerfScore 49.50
 G_M15982_IG22:        ; bbWeight=6.50, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r9]
             ldr     r0, [r6+0x0C]
             cmp     r7, r0
-            bne     SHORT G_M15982_IG25
+            bne     SHORT G_M15982_IG26
                        ;; size=6 bbWeight=6.50 PerfScore 19.50
 G_M15982_IG23:        ; bbWeight=6.49, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r6+0x08]
             cmp     r8, r0
-            bhs     SHORT G_M15982_IG37
+            bhs     SHORT G_M15982_IG35
                        ;; size=6 bbWeight=6.49 PerfScore 19.48
 G_M15982_IG24:        ; bbWeight=5.44, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r6+0x04]
             ; gcrRegs +[r0]
             ldr     r3, [r0+0x04]
             cmp     r8, r3
-            bhs     SHORT G_M15982_IG27
+            bhs     SHORT G_M15982_IG25
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -392,24 +393,15 @@ G_M15982_IG24:        ; bbWeight=5.44, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}
             add     r8, r8, 1
             b       SHORT G_M15982_IG10
                        ;; size=24 bbWeight=5.44 PerfScore 48.97
-G_M15982_IG25:        ; bbWeight=1.06, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4 r9]
+G_M15982_IG25:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r4 r6 r9]
             ; byrRegs -[r0]
-            ldr     r0, [r6+0x0C]
-            cmp     r7, r0
-            bne     SHORT G_M15982_IG28
-                       ;; size=6 bbWeight=1.06 PerfScore 3.18
-G_M15982_IG26:        ; bbWeight=6.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r6]
-            b       SHORT G_M15982_IG37
-                       ;; size=2 bbWeight=6.50 PerfScore 6.50
-G_M15982_IG27:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M15982_IG28:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M15982_IG26:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -417,7 +409,7 @@ G_M15982_IG28:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M15982_IG29:        ; bbWeight=0, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}, byref
+G_M15982_IG27:        ; bbWeight=0, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r4 r6 r9]
             ldr     r3, [sp+0x18]  // [V47 tmp36]
             ; gcrRegs +[r3]
@@ -429,13 +421,13 @@ G_M15982_IG29:        ; bbWeight=0, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}
             mov     r2, r0
             ; gcrRegs +[r2]
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M15982_IG30:        ; bbWeight=0, gcVars=0000000108000000 {V00 V10}, gcrefRegs=0254 {r2 r4 r6 r9}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M15982_IG28:        ; bbWeight=0, gcVars=0000000210000000 {V00 V10}, gcrefRegs=0254 {r2 r4 r6 r9}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0 r3]
             ; GC ptr vars +{V00}
             str     r2, [sp+0x08]  // [V08 loc8]
             ; GC ptr vars +{V08}
             cmp     r2, 0
-            bne     SHORT G_M15982_IG31
+            bne     SHORT G_M15982_IG29
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movw    r1, 0xd1ff
@@ -447,7 +439,7 @@ G_M15982_IG30:        ; bbWeight=0, gcVars=0000000108000000 {V00 V10}, gcrefRegs
             ; gcrRegs -[r2]
             ; gcr arg pop 0
                        ;; size=36 bbWeight=0 PerfScore 0.00
-G_M15982_IG31:        ; bbWeight=0, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}, byref, isz
+G_M15982_IG29:        ; bbWeight=0, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}, byref, isz
             ldr     r2, [sp+0x08]   // [V08 loc8]
             ; gcrRegs +[r2]
...
  
-8 (-0.88%) : 5323.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier1)
@@ -9,31 +9,31 @@
 ; 6 inlinees with PGO data; 20 single block inlinees; 7 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T27] (  4,  2   )     ref  ->  [sp+0x0C]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V00 loc0         [V00,T28] (  4,  2   )     ref  ->  [sp+0x0C]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V01 loc1         [V01    ] (  6,  5   )   ubyte  ->  [sp+0x24]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V02 loc2         [V02,T03] (  6, 95.63)     ref  ->   r4         class-hnd exact single-def <<unknown class>>
 ;  V03 loc3         [V03,T00] (  6,202   )     ref  ->   r5         class-hnd <System.Diagnostics.Tracing.EventListener>
-;  V04 loc4         [V04,T14] (  4, 14.50)     int  ->   r5        
+;  V04 loc4         [V04,T15] (  4, 14.50)     int  ->   r5        
 ;* V05 loc5         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.WeakReference`1[System.Diagnostics.Tracing.EventSource]]>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.WeakReference`1[System.Diagnostics.Tracing.EventSource]>
-;  V07 loc7         [V07,T10] (  5, 18   )     ref  ->   r9         ld-addr-op class-hnd <System.Diagnostics.Tracing.EventSource>
+;  V07 loc7         [V07,T09] (  5, 18   )     ref  ->   r9         ld-addr-op class-hnd <System.Diagnostics.Tracing.EventSource>
 ;  V08 loc8         [V08,T01] ( 11,163.13)     ref  ->  [sp+0x08]  class-hnd <<unknown class>>
 ;  V09 loc9         [V09    ] (  6, 22.50)  struct (16) [sp+0x14]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.Diagnostics.Tracing.EventListener,ubyte]>
-;  V10 loc10        [V10,T32] (  2,  0   )     ref  ->  [sp+0x04]  class-hnd <System.Diagnostics.Tracing.EventListener>
+;  V10 loc10        [V10,T33] (  2,  0   )     ref  ->  [sp+0x04]  class-hnd <System.Diagnostics.Tracing.EventListener>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T21] (  3,  6   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V13 tmp2         [V13,T31] (  3,  0   )     ref  ->   r9         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V14 tmp3         [V14,T25] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
+;  V12 tmp1         [V12,T22] (  3,  6   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V13 tmp2         [V13,T32] (  3,  0   )     ref  ->   r9         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V14 tmp3         [V14,T26] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
 ;* V15 tmp4         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp5         [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V17 tmp6         [V17,T24] (  2,  4   )     ref  ->   r6         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V17 tmp6         [V17,T25] (  2,  4   )     ref  ->   r6         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.WeakReference`1[System.Diagnostics.Tracing.EventSource]]>
 ;* V19 tmp8         [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V20 tmp9         [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
-;  V21 tmp10        [V21,T17] (  3,  9   )     ref  ->   r9         class-hnd "Inline return value spill temp" <System.Diagnostics.Tracing.EventSource>
-;  V22 tmp11        [V22,T09] (  6, 18   )     int  ->  [sp+0x10]  spill-single-def "Inline stloc first use temp"
+;  V21 tmp10        [V21,T18] (  3,  9   )     ref  ->   r9         class-hnd "Inline return value spill temp" <System.Diagnostics.Tracing.EventSource>
+;  V22 tmp11        [V22,T08] (  6, 18   )     int  ->  [sp+0x10]  spill-single-def "Inline stloc first use temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Diagnostics.Tracing.EventSource>
-;  V24 tmp13        [V24,T18] (  3,  9   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
+;  V24 tmp13        [V24,T19] (  3,  9   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
 ;* V25 tmp14        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Diagnostics.Tracing.EventSource>
 ;* V26 tmp15        [V26    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Diagnostics.Tracing.EventSource>
 ;* V27 tmp16        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.ComAwareWeakReference>
@@ -41,34 +41,35 @@
 ;  V29 tmp18        [V29,T13] (  2, 16.51)     ref  ->   r1         class-hnd "Inlining Arg" <System.Diagnostics.Tracing.EventListener>
 ;* V30 tmp19        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V31 tmp20        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <<unknown class>>
-;  V32 tmp21        [V32,T11] (  2, 18   )     ref  ->   r3         class-hnd exact "dup spill" <System.Collections.Generic.Dictionary`2+KeyCollection[System.__Canon,ubyte]>
+;  V32 tmp21        [V32,T10] (  2, 18   )     ref  ->   r3         class-hnd exact "dup spill" <System.Collections.Generic.Dictionary`2+KeyCollection[System.__Canon,ubyte]>
 ;  V33 tmp22        [V33,T04] (  4, 31.50)     ref  ->   r3        
 ;  V34 tmp23        [V34,T02] (  4,144   )     ref  ->  [sp+0x00]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
 ;* V35 tmp24        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;* V36 tmp25        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[System.Diagnostics.Tracing.EventListener,ubyte]>
-;  V37 tmp26        [V37,T12] (  2, 18   )     ref  ->   r0         class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.__Canon,ubyte]>
+;  V37 tmp26        [V37,T11] (  2, 18   )     ref  ->   r0         class-hnd "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.__Canon,ubyte]>
 ;* V38 tmp27        [V38    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp28        [V39    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V40 tmp29        [V40,T16] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V40 tmp29        [V40,T17] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V41 tmp30        [V41    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V42 tmp31        [V42,T07] (  5, 17.49)     ref  ->   r6         single-def "field V05._list (fldOffset=0x0)" P-INDEP
-;  V43 tmp32        [V43,T08] (  3, 13.60)     ref  ->   r9         "field V05._current (fldOffset=0x4)" P-INDEP
+;  V42 tmp31        [V42,T12] (  4, 16.60)     ref  ->   r6         single-def "field V05._list (fldOffset=0x0)" P-INDEP
+;  V43 tmp32        [V43,T07] (  3, 13.60)     ref  ->   r9         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V44 tmp33        [V44,T05] (  6, 24.91)     int  ->   r8         "field V05._index (fldOffset=0x8)" P-INDEP
-;  V45 tmp34        [V45,T20] (  3,  7.40)     int  ->   r7         "field V05._version (fldOffset=0xc)" P-INDEP
+;  V45 tmp34        [V45,T21] (  2,  6.50)     int  ->   r7         "field V05._version (fldOffset=0xc)" P-INDEP
 ;  V46 tmp35        [V46    ] (  2,  9   )     ref  ->  [sp+0x14]  do-not-enreg[X] addr-exposed "field V09._dictionary (fldOffset=0x0)" P-DEP
 ;  V47 tmp36        [V47    ] (  3,  9   )     ref  ->  [sp+0x18]  do-not-enreg[X] addr-exposed "field V09._currentKey (fldOffset=0x4)" P-DEP
 ;  V48 tmp37        [V48    ] (  2,  9   )     int  ->  [sp+0x1C]  do-not-enreg[X] addr-exposed "field V09._index (fldOffset=0x8)" P-DEP
 ;  V49 tmp38        [V49    ] (  2,  9   )     int  ->  [sp+0x20]  do-not-enreg[X] addr-exposed "field V09._version (fldOffset=0xc)" P-DEP
-;  V50 tmp39        [V50,T26] (  3,  3   )     ref  ->   r6         single-def "field V18._list (fldOffset=0x0)" P-INDEP
+;  V50 tmp39        [V50,T27] (  3,  3   )     ref  ->   r6         single-def "field V18._list (fldOffset=0x0)" P-INDEP
 ;* V51 tmp40        [V51    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V18._current (fldOffset=0x4)" P-INDEP
-;* V52 tmp41        [V52,T29] (  0,  0   )     int  ->  zero-ref    "field V18._index (fldOffset=0x8)" P-INDEP
-;  V53 tmp42        [V53,T28] (  2,  2   )     int  ->   r7         "field V18._version (fldOffset=0xc)" P-INDEP
-;  V54 tmp43        [V54,T15] (  3, 13.50)     ref  ->   r0         "field V36._dictionary (fldOffset=0x0)" P-INDEP
-;* V55 tmp44        [V55,T22] (  0,  0   )     ref  ->  zero-ref    "field V36._currentKey (fldOffset=0x4)" P-INDEP
-;* V56 tmp45        [V56,T23] (  0,  0   )     int  ->  zero-ref    "field V36._index (fldOffset=0x8)" P-INDEP
-;  V57 tmp46        [V57,T19] (  2,  9   )     int  ->   r1         "field V36._version (fldOffset=0xc)" P-INDEP
+;* V52 tmp41        [V52,T30] (  0,  0   )     int  ->  zero-ref    "field V18._index (fldOffset=0x8)" P-INDEP
+;  V53 tmp42        [V53,T29] (  2,  2   )     int  ->   r7         "field V18._version (fldOffset=0xc)" P-INDEP
+;  V54 tmp43        [V54,T16] (  3, 13.50)     ref  ->   r0         "field V36._dictionary (fldOffset=0x0)" P-INDEP
+;* V55 tmp44        [V55,T23] (  0,  0   )     ref  ->  zero-ref    "field V36._currentKey (fldOffset=0x4)" P-INDEP
+;* V56 tmp45        [V56,T24] (  0,  0   )     int  ->  zero-ref    "field V36._index (fldOffset=0x8)" P-INDEP
+;  V57 tmp46        [V57,T20] (  2,  9   )     int  ->   r1         "field V36._version (fldOffset=0xc)" P-INDEP
 ;  V58 tmp47        [V58,T06] (  3, 27.62)     ref  ->   r0         "arr expr"
-;  V59 PSPSym       [V59,T30] (  1,  1   )     int  ->  [sp+0x28]  do-not-enreg[V] "PSPSym"
+;  V59 PSPSym       [V59,T31] (  1,  1   )     int  ->  [sp+0x28]  do-not-enreg[V] "PSPSym"
+;  V60 cse0         [V60,T14] (  2, 10.99)     int  ->   r0         "CSE - moderate"
 ;
 ; Lcl frame size = 44
 
@@ -92,13 +93,13 @@ G_M15982_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcr arg pop 0
             ldrb    r1, [r0+0xA19]
             cmp     r1, 0
-            bne     G_M15982_IG38
+            bne     G_M15982_IG36
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
             ldr     r1, [r1]
             ; gcrRegs +[r1]
             cmp     r1, 0
-            beq     G_M15982_IG39
+            beq     G_M15982_IG37
                         ;; size=48 bbWeight=1 PerfScore 14.00
 G_M15982_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r1]
@@ -111,7 +112,7 @@ G_M15982_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movs    r0, 0
             str     r0, [sp+0x24]  // [V01 loc1]
                        ;; size=16 bbWeight=1 PerfScore 6.00
-G_M15982_IG04:        ; bbWeight=1, gcVars=0000000008000000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M15982_IG04:        ; bbWeight=1, gcVars=0000000010000000 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r1]
             ldrb    r0, [sp+0x24]  // [V01 loc1]
             cmp     r0, 0
@@ -232,10 +233,10 @@ G_M15982_IG10:        ; bbWeight=4.50, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000
             ands    r3, r0
             str     r3, [sp+0x10]
             cmp     r3, 0
-            beq     G_M15982_IG36
+            beq     G_M15982_IG34
             ands    r0, r3, 2
             cmp     r0, 0
-            bne     G_M15982_IG33
+            bne     G_M15982_IG31
             mov     r0, r3
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -287,7 +288,7 @@ G_M15982_IG15:        ; bbWeight=4.13, gcrefRegs=0258 {r3 r4 r6 r9}, byrefRegs=0
             ; byrRegs +[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M15982_IG32
+            beq     SHORT G_M15982_IG30
                         ;; size=22 bbWeight=4.13 PerfScore 37.16
 G_M15982_IG16:        ; bbWeight=50, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r0]
@@ -297,7 +298,7 @@ G_M15982_IG16:        ; bbWeight=50, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {
             cmp     r3, 0
             bne     SHORT G_M15982_IG15
                        ;; size=8 bbWeight=50 PerfScore 200.00
-G_M15982_IG17:        ; bbWeight=4.50, gcVars=0000000008000000 {V00}, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M15982_IG17:        ; bbWeight=4.50, gcVars=0000000010000000 {V00}, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r3]
             ; GC ptr vars -{V08}
             ldr     r3, [r4+0x10]
@@ -338,7 +339,7 @@ G_M15982_IG18:        ; bbWeight=18, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {
             mov     r3, r1
             ; gcrRegs +[r3]
                        ;; size=54 bbWeight=18 PerfScore 324.00
-G_M15982_IG19:        ; bbWeight=4.50, gcVars=0000000008000000 {V00}, gcrefRegs=0258 {r3 r4 r6 r9}, byrefRegs=0000 {}, gcvars, byref
+G_M15982_IG19:        ; bbWeight=4.50, gcVars=0000000010000000 {V00}, gcrefRegs=0258 {r3 r4 r6 r9}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r1]
             ; GC ptr vars -{V34}
             ldr     r0, [r3+0x04]
@@ -364,25 +365,25 @@ G_M15982_IG21:        ; bbWeight=4.50, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             cmp     r0, 0
-            bne     SHORT G_M15982_IG29
+            bne     SHORT G_M15982_IG27
                         ;; size=26 bbWeight=4.50 PerfScore 40.50
 G_M15982_IG22:        ; bbWeight=5.50, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r9]
             ldr     r0, [r6+0x0C]
             cmp     r7, r0
-            bne     SHORT G_M15982_IG25
+            bne     SHORT G_M15982_IG26
                        ;; size=6 bbWeight=5.50 PerfScore 16.50
 G_M15982_IG23:        ; bbWeight=5.49, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r6+0x08]
             cmp     r8, r0
-            bhs     SHORT G_M15982_IG37
+            bhs     SHORT G_M15982_IG35
                        ;; size=6 bbWeight=5.49 PerfScore 16.48
 G_M15982_IG24:        ; bbWeight=4.60, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r6+0x04]
             ; gcrRegs +[r0]
             ldr     r3, [r0+0x04]
             cmp     r8, r3
-            bhs     SHORT G_M15982_IG27
+            bhs     SHORT G_M15982_IG25
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -392,24 +393,15 @@ G_M15982_IG24:        ; bbWeight=4.60, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}
             add     r8, r8, 1
             b       SHORT G_M15982_IG10
                        ;; size=24 bbWeight=4.60 PerfScore 41.43
-G_M15982_IG25:        ; bbWeight=0.90, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r4 r9]
+G_M15982_IG25:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r4 r6 r9]
             ; byrRegs -[r0]
-            ldr     r0, [r6+0x0C]
-            cmp     r7, r0
-            bne     SHORT G_M15982_IG28
-                       ;; size=6 bbWeight=0.90 PerfScore 2.69
-G_M15982_IG26:        ; bbWeight=5.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r6]
-            b       SHORT G_M15982_IG37
-                       ;; size=2 bbWeight=5.50 PerfScore 5.50
-G_M15982_IG27:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M15982_IG28:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M15982_IG26:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -417,7 +409,7 @@ G_M15982_IG28:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M15982_IG29:        ; bbWeight=0, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}, byref
+G_M15982_IG27:        ; bbWeight=0, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r4 r6 r9]
             ldr     r3, [sp+0x18]  // [V47 tmp36]
             ; gcrRegs +[r3]
@@ -429,12 +421,12 @@ G_M15982_IG29:        ; bbWeight=0, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}
             mov     r2, r0
             ; gcrRegs +[r2]
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M15982_IG30:        ; bbWeight=0, gcVars=0000000108000000 {V00 V10}, gcrefRegs=0254 {r2 r4 r6 r9}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M15982_IG28:        ; bbWeight=0, gcVars=0000000210000000 {V00 V10}, gcrefRegs=0254 {r2 r4 r6 r9}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0 r3]
             str     r2, [sp+0x08]  // [V08 loc8]
             ; GC ptr vars +{V08}
             cmp     r2, 0
-            bne     SHORT G_M15982_IG31
+            bne     SHORT G_M15982_IG29
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movw    r1, 0xd1ff
@@ -446,7 +438,7 @@ G_M15982_IG30:        ; bbWeight=0, gcVars=0000000108000000 {V00 V10}, gcrefRegs
             ; gcrRegs -[r2]
             ; gcr arg pop 0
                        ;; size=36 bbWeight=0 PerfScore 0.00
-G_M15982_IG31:        ; bbWeight=0, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}, byref, isz
+G_M15982_IG29:        ; bbWeight=0, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}, byref, isz
             ldr     r2, [sp+0x08]   // [V08 loc8]
             ; gcrRegs +[r2]
             ldr     r1, [r2+0x04]
@@ -457,9 +449,9 @@ G_M15982_IG31:        ; bbWeight=0, gcrefRegs=0250 {r4 r6 r9}, byrefRegs=0000 {}
...
  
-6 (-0.47%) : 671.dasm - System.Diagnostics.Tracing.EventSource:InitializeProviderMetadata():this (Instrumented Tier1)
@@ -9,39 +9,39 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T03] ( 19, 19.50)     ref  ->   r4         this class-hnd single-def <System.Diagnostics.Tracing.EventSource>
-;  V01 loc0         [V01,T41] (  2,  2   )   ubyte  ->   r5        
+;  V01 loc0         [V01,T42] (  2,  2   )   ubyte  ->   r5        
 ;  V02 loc1         [V02    ] (  2,  2   )  struct ( 8) [sp+0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]>
 ;  V03 loc2         [V03,T05] ( 28, 21.50)     ref  ->   r6         class-hnd exact single-def <System.Collections.Generic.List`1[ubyte]>
-;  V04 loc3         [V04,T28] (  4,  3.50)     ref  ->   r7         class-hnd single-def <ubyte[]>
+;  V04 loc3         [V04,T29] (  4,  3.50)     ref  ->   r7         class-hnd single-def <ubyte[]>
 ;  V05 loc4         [V05,T23] (  3,  4.50)     int  ->  registers  
 ;  V06 loc5         [V06,T04] ( 10, 22.50)     int  ->   r7        
 ;  V07 loc6         [V07    ] (  6,  2.50)  struct ( 8) [sp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[ushort]>
 ;  V08 loc7         [V08    ] (  3,  3   )   ubyte  ->  [sp+0x2C]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V09 loc8         [V09,T35] (  2,  2.50)     ref  ->   r8         class-hnd exact <System.String>
+;  V09 loc8         [V09,T36] (  2,  2.50)     ref  ->   r8         class-hnd exact <System.String>
 ;  V10 loc9         [V10,T13] (  5,  8.50)     int  ->   r9        
 ;  V11 loc10        [V11,T18] (  3,  6   )     int  ->   r0        
 ;* V12 loc11        [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[ubyte]>
-;  V13 loc12        [V13,T25] (  2,  4   )   ubyte  ->   r0        
+;  V13 loc12        [V13,T26] (  2,  4   )   ubyte  ->   r0        
 ;  V14 OutArgs      [V14    ] (  1,  1   )  struct ( 4) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V15 tmp1         [V15    ] (  3,  2.99)  struct ( 8) [sp+0x24]  do-not-enreg[HS] must-init hidden-struct-arg "impAppendStmt" <System.ReadOnlySpan`1[ubyte]>
 ;* V16 tmp2         [V16    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V17 tmp3         [V17,T29] (  3,  3   )     ref  ->   r6         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[ubyte]>
+;  V17 tmp3         [V17,T30] (  3,  3   )     ref  ->   r6         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[ubyte]>
 ;* V18 tmp4         [V18    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;* V19 tmp5         [V19    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V20 tmp6         [V20    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V21 tmp7         [V21,T67] (  2,  0   )     ref  ->   r4         class-hnd exact "non-inline candidate call" <System.String>
-;  V22 tmp8         [V22,T66] (  3,  0   )     ref  ->   r5         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V21 tmp7         [V21,T68] (  2,  0   )     ref  ->   r4         class-hnd exact "non-inline candidate call" <System.String>
+;  V22 tmp8         [V22,T67] (  3,  0   )     ref  ->   r5         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V23 tmp9         [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
 ;* V24 tmp10        [V24    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V25 tmp11        [V25,T07] (  4, 16   )     int  ->   r9         "impSpillLclRefs"
+;  V25 tmp11        [V25,T06] (  4, 16   )     int  ->   r9         "impSpillLclRefs"
 ;* V26 tmp12        [V26    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V27 tmp13        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def "handle histogram profile tmp"
 ;* V28 tmp14        [V28    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;  V29 tmp15        [V29,T22] (  5,  5   )     ref  ->   r0         class-hnd exact "Inlining Arg" <System.String>
 ;* V30 tmp16        [V30    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V31 tmp17        [V31    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V32 tmp18        [V32,T32] (  3,  3   )     int  ->   r9         "Inlining Arg"
-;  V33 tmp19        [V33,T39] (  2,  2   )   byref  ->   r8         "Inlining Arg"
+;  V32 tmp18        [V32,T33] (  3,  3   )     int  ->   r9         "Inlining Arg"
+;  V33 tmp19        [V33,T40] (  2,  2   )   byref  ->   r8         "Inlining Arg"
 ;* V34 tmp20        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp21        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V36 tmp22        [V36    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
@@ -50,7 +50,7 @@
 ;* V39 tmp25        [V39    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V40 tmp26        [V40    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V41 tmp27        [V41    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V42 tmp28        [V42,T24] (  2,  4   )   ubyte  ->   r0         "Inline return value spill temp"
+;  V42 tmp28        [V42,T25] (  2,  4   )   ubyte  ->   r0         "Inline return value spill temp"
 ;* V43 tmp29        [V43    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V44 tmp30        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V45 tmp31        [V45    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
@@ -61,22 +61,22 @@
 ;* V50 tmp36        [V50    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V51 tmp37        [V51    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V52 tmp38        [V52    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V53 tmp39        [V53,T51] (  3,  1.43)     ref  ->   r1         class-hnd "Inline stloc first use temp" <ubyte[]>
-;  V54 tmp40        [V54,T43] (  4,  1.85)     int  ->   r0         "Inline stloc first use temp"
-;  V55 tmp41        [V55,T52] (  3,  1.43)     ref  ->   r0         class-hnd "Inline stloc first use temp" <ubyte[]>
-;  V56 tmp42        [V56,T44] (  4,  1.85)     int  ->   r1         "Inline stloc first use temp"
-;  V57 tmp43        [V57,T53] (  3,  1.43)     ref  ->   r0         class-hnd "Inline stloc first use temp" <ubyte[]>
-;  V58 tmp44        [V58,T45] (  4,  1.85)     int  ->   r3         "Inline stloc first use temp"
-;  V59 tmp45        [V59,T38] (  3,  2   )   ubyte  ->   r1         "Inlining Arg"
+;  V53 tmp39        [V53,T52] (  3,  1.43)     ref  ->   r1         class-hnd "Inline stloc first use temp" <ubyte[]>
+;  V54 tmp40        [V54,T44] (  4,  1.85)     int  ->   r0         "Inline stloc first use temp"
+;  V55 tmp41        [V55,T53] (  3,  1.43)     ref  ->   r0         class-hnd "Inline stloc first use temp" <ubyte[]>
+;  V56 tmp42        [V56,T45] (  4,  1.85)     int  ->   r1         "Inline stloc first use temp"
+;  V57 tmp43        [V57,T54] (  3,  1.43)     ref  ->   r0         class-hnd "Inline stloc first use temp" <ubyte[]>
+;  V58 tmp44        [V58,T46] (  4,  1.85)     int  ->   r3         "Inline stloc first use temp"
+;  V59 tmp45        [V59,T39] (  3,  2   )   ubyte  ->   r1         "Inlining Arg"
 ;* V60 tmp46        [V60    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V61 tmp47        [V61,T08] (  4, 16   )     int  ->  r12         "Inlining Arg"
+;  V61 tmp47        [V61,T07] (  4, 16   )     int  ->  r12         "Inlining Arg"
 ;* V62 tmp48        [V62    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V63 tmp49        [V63    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[ubyte]>
-;* V64 tmp50        [V64,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V64 tmp50        [V64,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V65 tmp51        [V65    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ubyte]>
-;  V66 tmp52        [V66,T27] (  4,  3.81)     ref  ->   r0         class-hnd single-def "Inlining Arg" <ubyte[]>
+;  V66 tmp52        [V66,T28] (  4,  3.81)     ref  ->   r0         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V67 tmp53        [V67    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-;  V68 tmp54        [V68,T64] (  3,  0.99)   ubyte  ->   r0         "Inline return value spill temp"
+;  V68 tmp54        [V68,T65] (  3,  0.99)   ubyte  ->   r0         "Inline return value spill temp"
 ;* V69 tmp55        [V69    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V70 tmp56        [V70    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V71 tmp57        [V71    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
@@ -91,29 +91,29 @@
 ;  V80 tmp66        [V80    ] (  2,  2   )     int  ->  [sp+0x3C]  do-not-enreg[X] addr-exposed "field V02._length (fldOffset=0x4)" P-DEP
 ;  V81 tmp67        [V81    ] (  4,  1.50)   byref  ->  [sp+0x30]  do-not-enreg[X] addr-exposed "field V07._reference (fldOffset=0x0)" P-DEP
 ;  V82 tmp68        [V82    ] (  4,  1.50)     int  ->  [sp+0x34]  do-not-enreg[X] addr-exposed "field V07._length (fldOffset=0x4)" P-DEP
-;  V83 tmp69        [V83,T06] (  4, 12.50)     ref  ->   r6         single-def "field V12._list (fldOffset=0x0)" P-INDEP
+;  V83 tmp69        [V83,T09] (  4, 12.50)     ref  ->   r6         single-def "field V12._list (fldOffset=0x0)" P-INDEP
 ;  V84 tmp70        [V84,T00] (  6, 20.50)     int  ->  [sp+0x20]  "field V12._index (fldOffset=0x4)" P-INDEP
-;  V85 tmp71        [V85,T14] (  3,  8.50)     int  ->  [sp+0x1C]  spill-single-def "field V12._version (fldOffset=0x8)" P-INDEP
+;  V85 tmp71        [V85,T24] (  2,  4.50)     int  ->  [sp+0x1C]  spill-single-def "field V12._version (fldOffset=0x8)" P-INDEP
 ;  V86 tmp72        [V86,T12] (  2,  6   )   ubyte  ->  [sp+0x18]  spill-single-def "field V12._current (fldOffset=0xc)" P-INDEP
-;  V87 tmp73        [V87,T50] (  2,  1.49)   byref  ->  [sp+0x24]  do-not-enreg[H] hidden-struct-arg "field V15._reference (fldOffset=0x0)" P-DEP
-;  V88 tmp74        [V88,T48] (  2,  1.50)     int  ->  [sp+0x28]  do-not-enreg[H] hidden-struct-arg "field V15._length (fldOffset=0x4)" P-DEP
+;  V87 tmp73        [V87,T51] (  2,  1.49)   byref  ->  [sp+0x24]  do-not-enreg[H] hidden-struct-arg "field V15._reference (fldOffset=0x0)" P-DEP
+;  V88 tmp74        [V88,T49] (  2,  1.50)     int  ->  [sp+0x28]  do-not-enreg[H] hidden-struct-arg "field V15._length (fldOffset=0x4)" P-DEP
 ;* V89 tmp75        [V89    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V90 tmp76        [V90    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x4)" P-INDEP
-;  V91 tmp77        [V91,T36] (  2,  2.50)   byref  ->   r0         "field V19._reference (fldOffset=0x0)" P-INDEP
-;  V92 tmp78        [V92,T55] (  2,  1   )     int  ->   r1         "field V19._length (fldOffset=0x4)" P-INDEP
+;  V91 tmp77        [V91,T37] (  2,  2.50)   byref  ->   r0         "field V19._reference (fldOffset=0x0)" P-INDEP
+;  V92 tmp78        [V92,T56] (  2,  1   )     int  ->   r1         "field V19._length (fldOffset=0x4)" P-INDEP
 ;* V93 tmp79        [V93    ] (  0,  0   )   byref  ->  zero-ref    "field V20._reference (fldOffset=0x0)" P-INDEP
 ;* V94 tmp80        [V94    ] (  0,  0   )     int  ->  zero-ref    "field V20._length (fldOffset=0x4)" P-INDEP
 ;* V95 tmp81        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp82        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x4)" P-INDEP
-;  V97 tmp83        [V97,T54] (  2,  1   )   byref  ->   r8         "field V30._reference (fldOffset=0x0)" P-INDEP
-;  V98 tmp84        [V98,T56] (  2,  1   )     int  ->   r9         "field V30._length (fldOffset=0x4)" P-INDEP
+;  V97 tmp83        [V97,T55] (  2,  1   )   byref  ->   r8         "field V30._reference (fldOffset=0x0)" P-INDEP
+;  V98 tmp84        [V98,T57] (  2,  1   )     int  ->   r9         "field V30._length (fldOffset=0x4)" P-INDEP
 ;* V99 tmp85        [V99    ] (  0,  0   )   byref  ->  zero-ref    "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V100 tmp86       [V100    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x4)" P-INDEP
 ;* V101 tmp87       [V101    ] (  0,  0   )   byref  ->  zero-ref    "field V36._reference (fldOffset=0x0)" P-INDEP
 ;* V102 tmp88       [V102    ] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0x4)" P-INDEP
 ;* V103 tmp89       [V103    ] (  0,  0   )   byref  ->  zero-ref    "field V39._reference (fldOffset=0x0)" P-INDEP
 ;* V104 tmp90       [V104    ] (  0,  0   )     int  ->  zero-ref    "field V39._length (fldOffset=0x4)" P-INDEP
-;  V105 tmp91       [V105,T37] (  2,  2.50)   byref  ->   r2         "field V40._reference (fldOffset=0x0)" P-INDEP
+;  V105 tmp91       [V105,T38] (  2,  2.50)   byref  ->   r2         "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V106 tmp92       [V106    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x4)" P-INDEP
 ;* V107 tmp93       [V107    ] (  0,  0   )   byref  ->  zero-ref    "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V108 tmp94       [V108    ] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x4)" P-INDEP
@@ -127,12 +127,12 @@
 ;* V116 tmp102      [V116    ] (  0,  0   )     int  ->  zero-ref    "field V51._length (fldOffset=0x4)" P-INDEP
 ;* V117 tmp103      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V52._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp104      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V52._length (fldOffset=0x4)" P-INDEP
-;  V119 tmp105      [V119,T46] (  3,  1.50)     ref  ->   r6         single-def "field V63._list (fldOffset=0x0)" P-INDEP
-;* V120 tmp106      [V120,T65] (  0,  0   )     int  ->  zero-ref    "field V63._index (fldOffset=0x4)" P-INDEP
-;  V121 tmp107      [V121,T57] (  2,  1   )     int  ->   r3         "field V63._version (fldOffset=0x8)" P-INDEP
+;  V119 tmp105      [V119,T47] (  3,  1.50)     ref  ->   r6         single-def "field V63._list (fldOffset=0x0)" P-INDEP
+;* V120 tmp106      [V120,T66] (  0,  0   )     int  ->  zero-ref    "field V63._index (fldOffset=0x4)" P-INDEP
+;  V121 tmp107      [V121,T58] (  2,  1   )     int  ->   r3         "field V63._version (fldOffset=0x8)" P-INDEP
 ;* V122 tmp108      [V122    ] (  0,  0   )   ubyte  ->  zero-ref    "field V63._current (fldOffset=0xc)" P-INDEP
-;  V123 tmp109      [V123,T63] (  3,  0.99)   byref  ->   r1         "field V67._reference (fldOffset=0x0)" P-INDEP
-;  V124 tmp110      [V124,T49] (  4,  1.49)     int  ->   r2         "field V67._length (fldOffset=0x4)" P-INDEP
+;  V123 tmp109      [V123,T64] (  3,  0.99)   byref  ->   r1         "field V67._reference (fldOffset=0x0)" P-INDEP
+;  V124 tmp110      [V124,T50] (  4,  1.49)     int  ->   r2         "field V67._length (fldOffset=0x4)" P-INDEP
 ;* V125 tmp111      [V125    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V69._reference (fldOffset=0x0)" P-INDEP
 ;* V126 tmp112      [V126    ] (  0,  0   )     int  ->  zero-ref    "field V69._length (fldOffset=0x4)" P-INDEP
 ;* V127 tmp113      [V127    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V71._reference (fldOffset=0x0)" P-INDEP
@@ -145,32 +145,33 @@
 ;* V134 tmp120      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V77._length (fldOffset=0x4)" P-INDEP
 ;* V135 tmp121      [V135    ] (  0,  0   )   byref  ->  zero-ref    "field V78._reference (fldOffset=0x0)" P-INDEP
 ;* V136 tmp122      [V136    ] (  0,  0   )     int  ->  zero-ref    "field V78._length (fldOffset=0x4)" P-INDEP
-;* V137 tmp123      [V137,T42] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;* V137 tmp123      [V137,T43] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V138 tmp124      [V138,T01] (  3, 24   )     ref  ->   r0         "arr expr"
-;  V139 tmp125      [V139,T09] (  2, 16   )     ref  ->   r0         "argument with side effect"
-;  V140 tmp126      [V140,T30] (  3,  3   )     ref  ->   r0         "arr expr"
-;  V141 tmp127      [V141,T40] (  2,  2   )     ref  ->   r3         "argument with side effect"
-;  V142 tmp128      [V142,T33] (  3,  3   )  struct ( 8) [sp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlySpan`1[ushort]>
-;  V143 tmp129      [V143,T68] (  2,  0   )     ref  ->   r1         "argument with side effect"
-;  V144 tmp130      [V144,T69] (  2,  0   )     ref  ->   r4         "argument with side effect"
-;  V145 tmp131      [V145,T70] (  2,  0   )     ref  ->   r2         "argument with side effect"
-;  V146 tmp132      [V146,T31] (  3,  3   )     ref  ->   r0         "arr expr"
+;  V139 tmp125      [V139,T08] (  2, 16   )     ref  ->   r0         "argument with side effect"
+;  V140 tmp126      [V140,T31] (  3,  3   )     ref  ->   r0         "arr expr"
+;  V141 tmp127      [V141,T41] (  2,  2   )     ref  ->   r3         "argument with side effect"
+;  V142 tmp128      [V142,T34] (  3,  3   )  struct ( 8) [sp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlySpan`1[ushort]>
+;  V143 tmp129      [V143,T69] (  2,  0   )     ref  ->   r1         "argument with side effect"
+;  V144 tmp130      [V144,T70] (  2,  0   )     ref  ->   r4         "argument with side effect"
+;  V145 tmp131      [V145,T71] (  2,  0   )     ref  ->   r2         "argument with side effect"
+;  V146 tmp132      [V146,T32] (  3,  3   )     ref  ->   r0         "arr expr"
 ;  V147 tmp133      [V147,T10] (  3, 12   )     ref  ->   r2         "arr expr"
-;* V148 tmp134      [V148,T26] (  0,  0   )     ref  ->  zero-ref    "arr expr"
+;* V148 tmp134      [V148,T27] (  0,  0   )     ref  ->  zero-ref    "arr expr"
 ;  V149 tmp135      [V149,T02] (  3, 24   )     ref  ->   r0         "arr expr"
-;* V150 tmp136      [V150,T61] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V151 PSPSym      [V151,T62] (  1,  1   )     int  ->  [sp+0x40]  do-not-enreg[V] "PSPSym"
+;* V150 tmp136      [V150,T62] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V151 PSPSym      [V151,T63] (  1,  1   )     int  ->  [sp+0x40]  do-not-enreg[V] "PSPSym"
 ;  V152 cse0        [V152,T19] (  3,  6   )     int  ->   lr         "CSE - moderate"
-;  V153 cse1        [V153,T58] (  2,  1   )     int  ->   r3         "CSE - conservative"
-;  V154 cse2        [V154,T59] (  2,  1   )     int  ->   r3         "CSE - conservative"
-;  V155 cse3        [V155,T60] (  2,  1   )     int  ->   r2         "CSE - conservative"
-;  V156 cse4        [V156,T11] (  3, 12   )     int  ->   r1         "CSE - moderate"
-;  V157 cse5        [V157,T20] (  3,  6   )     int  ->   r3         "CSE - moderate"
-;  V158 cse6        [V158,T16] (  2,  4   )     ref  ->   r2         "CSE - moderate"
-;  V159 cse7        [V159,T47] (  3,  1.50)     int  ->   r0         "CSE - conservative"
-;  V160 cse8        [V160,T34] (  3,  3   )     int  ->   r8         "CSE - moderate"
-;  V161 cse9        [V161,T21] (  3,  6   )     int  ->   r1         "CSE - moderate"
-;  V162 cse10       [V162,T17] (  3,  6   )   byref  ->   r2         "CSE - moderate"
+;  V153 cse1        [V153,T59] (  2,  1   )     int  ->   r3         "CSE - conservative"
+;  V154 cse2        [V154,T60] (  2,  1   )     int  ->   r3         "CSE - conservative"
+;  V155 cse3        [V155,T61] (  2,  1   )     int  ->   r2         "CSE - conservative"
+;  V156 cse4        [V156,T15] (  2,  8   )     int  ->   r0         "CSE - moderate"
+;  V157 cse5        [V157,T11] (  2,  8   )     int  ->   r0         "CSE - moderate"
+;  V158 cse6        [V158,T20] (  3,  6   )     int  ->   r3         "CSE - moderate"
+;  V159 cse7        [V159,T16] (  2,  4   )     ref  ->   r2         "CSE - moderate"
+;  V160 cse8        [V160,T48] (  3,  1.50)     int  ->   r0         "CSE - conservative"
+;  V161 cse9        [V161,T35] (  3,  3   )     int  ->   r8         "CSE - moderate"
+;  V162 cse10       [V162,T21] (  3,  6   )     int  ->   r1         "CSE - moderate"
+;  V163 cse11       [V163,T17] (  3,  6   )   byref  ->   r2         "CSE - moderate"
 ;  TEMP_01                                     ref  ->  [r11-0x54]
 ;
 ; Lcl frame size = 68
@@ -224,7 +225,7 @@ G_M6771_IG04:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ldr     r0, [r4+0x38]
             ; gcrRegs +[r0]
             cmp     r0, 0
-            beq     G_M6771_IG32
+            beq     G_M6771_IG31
                       ;; size=8 bbWeight=1 PerfScore 3.00
 G_M6771_IG05:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
@@ -271,7 +272,7 @@ G_M6771_IG06:        ; bbWeight=4, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, by
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x04]
             cmp     r7, r1
-            bhs     G_M6771_IG42
+            bhs     G_M6771_IG41
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -297,7 +298,7 @@ G_M6771_IG07:        ; bbWeight=0.50, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {},
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x04]
             cmp     r7, r1
-            bhs     G_M6771_IG42
+            bhs     G_M6771_IG41
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -306,10 +307,10 @@ G_M6771_IG07:        ; bbWeight=0.50, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {},
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
             cmp     r0, 0
-            beq     G_M6771_IG43
+            beq     G_M6771_IG42
             ldr     r1, [r0+0x04]
             cmp     r1, 4
-            blo     G_M6771_IG43
+            blo     G_M6771_IG42
             add     r8, r0, 16
             ; byrRegs +[r8]
             ldr     r0, [r0+0x04]
@@ -371,7 +372,7 @@ G_M6771_IG11:        ; bbWeight=0.50, isz, extend
             movw    r2, 0xd1ff
             movt    r2, 0xd1ff
             cmp     r1, 5
...
  
-2 (-0.18%) : 5279.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
@@ -139,7 +139,7 @@ G_M29207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M29207_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldrb    r0, [r4+0x1B]
             cmp     r0, 0
-            bne     G_M29207_IG35
+            bne     G_M29207_IG34
             mov     r0, r4
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
@@ -149,7 +149,7 @@ G_M29207_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ; gcrRegs -[r0]
             mov     r5, r0
             cmp     r5, 0
-            blt     G_M29207_IG36
+            blt     G_M29207_IG35
             cmp     r5, 0
             bne     SHORT G_M29207_IG05
                        ;; size=34 bbWeight=1 PerfScore 13.00
@@ -195,7 +195,7 @@ G_M29207_IG06:        ; bbWeight=4.00, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r
             ; byrRegs +[r6]
             subs    r3, r5, r7
             cmp     r3, 128
-            blt     G_M29207_IG19
+            blt     G_M29207_IG28
                       ;; size=8 bbWeight=4.00 PerfScore 12.00
 G_M29207_IG07:        ; bbWeight=1.48, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, byref
             movs    r3, 128
@@ -206,7 +206,7 @@ G_M29207_IG08:        ; bbWeight=4, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6},
             str     r2, [r9+0x24]  // [V11 tmp2]
             ; GC ptr vars +{V11}
             cmp     r3, 128
-            bhi     G_M29207_IG39
+            bhi     G_M29207_IG38
             str     r3, [r9+0x34] // [V27 tmp18]
             cmp     r3, 0
             bge     SHORT G_M29207_IG10
@@ -254,13 +254,13 @@ G_M29207_IG10:        ; bbWeight=4, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6},
             mov     r3, r0
             str     r3, [r9+0x3C]  // [V07 loc6]
             cmp     r3, 0
-            beq     G_M29207_IG38
+            beq     G_M29207_IG37
             cmp     r7, 0
             bne     SHORT G_M29207_IG13
                        ;; size=64 bbWeight=4 PerfScore 84.00
 G_M29207_IG11:        ; bbWeight=2, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, byref, isz
             cmp     r3, r5
-            beq     G_M29207_IG30
+            beq     G_M29207_IG29
                        ;; size=6 bbWeight=2 PerfScore 4.00
 G_M29207_IG12:        ; bbWeight=1, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, byref
             movw    r0, 0xd1ff
@@ -355,11 +355,11 @@ G_M29207_IG17:        ; bbWeight=4, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6},
             str     r2, [r9+0x20]  // [V13 tmp4]
             ; GC ptr vars +{V13}
             cmp     r3, 128
-            bhi     G_M29207_IG39
+            bhi     G_M29207_IG38
             cmp     r3, 0
-            bge     SHORT G_M29207_IG21
+            bge     SHORT G_M29207_IG19
                        ;; size=16 bbWeight=4 PerfScore 24.00
-G_M29207_IG18:        ; bbWeight=2, gcVars=0000000000000010 {V13}, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, gcvars, byref, isz
+G_M29207_IG18:        ; bbWeight=2, gcVars=0000000000000010 {V13}, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, gcvars, byref
             ; gcrRegs -[r2]
             movw    r2, 0xd1ff
             movt    r2, 0xd1ff
@@ -374,14 +374,6 @@ G_M29207_IG18:        ; bbWeight=2, gcVars=0000000000000010 {V13}, gcrefRegs=011
             ldr     lr, [lr]
             blx     lr     // <unknown method>
             ; gcrRegs -[r0-r1]
-            b       SHORT G_M29207_IG20
-                       ;; size=32 bbWeight=2 PerfScore 20.00
-G_M29207_IG19:        ; bbWeight=0.52, gcVars=0000000000000000 {}, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, gcvars, byref, isz
-            ; GC ptr vars -{V13 V109}
-            b       SHORT G_M29207_IG08
-                       ;; size=2 bbWeight=0.52 PerfScore 0.52
-G_M29207_IG20:        ; bbWeight=2, gcVars=0000000000000410 {V13 V109}, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, gcvars, byref
-            ; GC ptr vars +{V04 V13 V109}
             ldr     r0, [r9+0x14] // [V109 cse0]
             ; gcrRegs +[r0]
             mov     r1, r0
@@ -389,17 +381,17 @@ G_M29207_IG20:        ; bbWeight=2, gcVars=0000000000000410 {V13 V109}, gcrefReg
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
-            ; GC ptr vars -{V04 V109}
+            ; GC ptr vars -{V109}
             blx     r3       // <unknown method>
             ; gcrRegs -[r0-r1]
-                       ;; size=18 bbWeight=2 PerfScore 12.00
-G_M29207_IG21:        ; bbWeight=4, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, byref, isz
+                      ;; size=48 bbWeight=2 PerfScore 30.00
+G_M29207_IG19:        ; bbWeight=4, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, byref, isz
             ldr     r1, [r4+0x10]
             ; gcrRegs +[r1]
             cmp     r1, 0
-            beq     G_M29207_IG37
+            beq     G_M29207_IG36
                         ;; size=8 bbWeight=4 PerfScore 12.00
-G_M29207_IG22:        ; bbWeight=2, gcrefRegs=0112 {r1 r4 r8}, byrefRegs=0040 {r6}, byref
+G_M29207_IG20:        ; bbWeight=2, gcrefRegs=0112 {r1 r4 r8}, byrefRegs=0040 {r6}, byref
             add     r2, r1, 8
             ; byrRegs +[r2]
             str     r2, [r9+0x18]  // [V100 tmp91]
@@ -407,7 +399,7 @@ G_M29207_IG22:        ; bbWeight=2, gcrefRegs=0112 {r1 r4 r8}, byrefRegs=0040 {r
             ldr     lr, [r1+0x04]
             str     lr, [r9+0x28]  // [V101 tmp92]
                        ;; size=16 bbWeight=2 PerfScore 8.00
-G_M29207_IG23:        ; bbWeight=4, gcVars=0000000000040010 {V13 V100}, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, gcvars, byref, isz
+G_M29207_IG21:        ; bbWeight=4, gcVars=0000000000040010 {V13 V100}, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, gcvars, byref, isz
             ; gcrRegs -[r1]
             ; byrRegs -[r2]
             ldr     r0, [r9+0x20]  // [V13 tmp4]
@@ -438,9 +430,9 @@ G_M29207_IG23:        ; bbWeight=4, gcVars=0000000000040010 {V13 V100}, gcrefReg
             ; byrRegs -[r1 r3]
             str     r0, [r9+0x38]  // [V08 loc7]
             cmp     r8, 0
-            bne     SHORT G_M29207_IG27
+            bne     SHORT G_M29207_IG25
                         ;; size=72 bbWeight=4 PerfScore 84.00
-G_M29207_IG24:        ; bbWeight=2.00, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byref, isz
+G_M29207_IG22:        ; bbWeight=2.00, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byref, isz
             ; gcrRegs -[r8]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -448,12 +440,12 @@ G_M29207_IG24:        ; bbWeight=2.00, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6},
             movt    r2, 0xd1ff
             blx     r2     // CORINFO_HELP_COUNTPROFILE32
             cmp     r5, 360
-            bgt     SHORT G_M29207_IG29
+            bgt     SHORT G_M29207_IG27
                       ;; size=24 bbWeight=2.00 PerfScore 14.00
-G_M29207_IG25:        ; bbWeight=1.48, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byref
+G_M29207_IG23:        ; bbWeight=1.48, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byref
             mov     r0, r5
                        ;; size=2 bbWeight=1.48 PerfScore 1.48
-G_M29207_IG26:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byref
+G_M29207_IG24:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -462,7 +454,7 @@ G_M29207_IG26:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, by
             mov     r8, r0
             ; gcrRegs +[r8]
                        ;; size=14 bbWeight=2 PerfScore 10.00
-G_M29207_IG27:        ; bbWeight=4, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, byref, isz
+G_M29207_IG25:        ; bbWeight=4, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, byref, isz
             ; gcrRegs -[r0]
             ldr     r1, [r4+0x10]
             ; gcrRegs +[r1]
@@ -479,9 +471,9 @@ G_M29207_IG27:        ; bbWeight=4, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6},
             ldr     r3, [r9+0x3C]  // [V07 loc6]
             adds    r7, r7, r3
             cmp     r7, r5
-            bge     SHORT G_M29207_IG32
+            bge     SHORT G_M29207_IG31
                        ;; size=38 bbWeight=4 PerfScore 52.00
-G_M29207_IG28:        ; bbWeight=2, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, byref, isz
+G_M29207_IG26:        ; bbWeight=2, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, byref, isz
             ; gcrRegs -[r0]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -490,12 +482,17 @@ G_M29207_IG28:        ; bbWeight=2, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6},
             blx     r3     // CORINFO_HELP_COUNTPROFILE32
             b       SHORT G_M29207_IG06
                        ;; size=20 bbWeight=2 PerfScore 12.00
-G_M29207_IG29:        ; bbWeight=0.52, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byref, isz
+G_M29207_IG27:        ; bbWeight=0.52, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byref, isz
             ; gcrRegs -[r8]
             mov     r0, 360
-            b       SHORT G_M29207_IG26
+            b       SHORT G_M29207_IG24
                       ;; size=6 bbWeight=0.52 PerfScore 1.04
-G_M29207_IG30:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byref, isz
+G_M29207_IG28:        ; bbWeight=0.52, gcrefRegs=0110 {r4 r8}, byrefRegs=0040 {r6}, byref, isz
+            ; gcrRegs +[r8]
+            b       SHORT G_M29207_IG08
+                       ;; size=2 bbWeight=0.52 PerfScore 0.52
+G_M29207_IG29:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6}, byref, isz
+            ; gcrRegs -[r8]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movw    r3, 0xd1ff
@@ -504,7 +501,7 @@ G_M29207_IG30:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6},
             ldr     r2, [r4+0x08]
             ; gcrRegs +[r2]
             cmp     r5, 128
-            bhi     G_M29207_IG39
+            bhi     G_M29207_IG38
             ldrsb   r0, [r2]
             str     r6, [r9+0x30]  // [V45 tmp36]
             mov     r0, r6
@@ -519,19 +516,19 @@ G_M29207_IG30:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0040 {r6},
             movt    r12, 0xd1ff
             ldr     lr, [r9+0x10]  // [V108 GsCookie]
             cmp     r12, lr
-            beq     SHORT G_M29207_IG31
+            beq     SHORT G_M29207_IG30
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_FAIL_FAST
             ; gcrRegs -[r0]
                        ;; size=76 bbWeight=0.50 PerfScore 12.00
-G_M29207_IG31:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M29207_IG30:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs +[r0]
             mov     sp, r9
             add     sp, 68
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M29207_IG32:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M29207_IG31:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0] +[r8]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -552,7 +549,7 @@ G_M29207_IG32:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=010
             ldr     r1, [r8+0x10]
             adds    r0, r0, r1
             cmp     r0, 360
-            bgt     SHORT G_M29207_IG33
+            bgt     SHORT G_M29207_IG32
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             mov     r1, 0x440
@@ -569,26 +566,26 @@ G_M29207_IG32:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=010
             ; gcrRegs -[r1 r8]
             ; byrRegs -[r0]
                        ;; size=88 bbWeight=0.50 PerfScore 14.00
-G_M29207_IG33:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+G_M29207_IG32:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             mov     r0, r5
             ; gcrRegs +[r0]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             ldr     lr, [r9+0x10]  // [V108 GsCookie]
             cmp     r12, lr
-            beq     SHORT G_M29207_IG34
+            beq     SHORT G_M29207_IG33
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_FAIL_FAST
             ; gcrRegs -[r0 r5]
                        ;; size=28 bbWeight=0.50 PerfScore 4.50
-G_M29207_IG34:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M29207_IG33:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs +[r0]
             mov     sp, r9
             add     sp, 68
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
...
  
+2 (+0.21%) : 568.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
@@ -8,12 +8,12 @@
 ; 6 inlinees with PGO data; 14 single block inlinees; 9 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T57] (  4,  3   )     ref  ->   r4         this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
-;  V01 loc0         [V01,T00] ( 27, 93   )     ref  ->   r4         class-hnd <System.Text.RegularExpressions.RegexNode>
+;  V00 this         [V00,T58] (  4,  3   )     ref  ->   r4         this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
+;  V01 loc0         [V01,T00] ( 26, 91   )     ref  ->   r4         class-hnd <System.Text.RegularExpressions.RegexNode>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V03 loc2         [V03,T32] (  3, 12   )   ubyte  ->   r0        
 ;  V04 loc3         [V04,T26] (  4, 12   )   ubyte  ->   r0        
-;* V05 loc4         [V05,T63] (  0,  0   )   ubyte  ->  zero-ref   
+;* V05 loc4         [V05,T64] (  0,  0   )   ubyte  ->  zero-ref   
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexNode>
 ;  V07 loc6         [V07,T12] (  3, 24   )     int  ->   r6        
 ;  V08 loc7         [V08,T01] (  7, 76   )     int  ->   r5        
@@ -25,7 +25,7 @@
 ;* V14 tmp4         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V15 tmp5         [V15,T34] (  4, 11   )     ref  ->   r4         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V16 tmp6         [V16,T41] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V17 tmp7         [V17,T58] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V17 tmp7         [V17,T59] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V18 tmp8         [V18,T16] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V19 tmp9         [V19,T39] (  4, 10   )     int  ->   r6         "Inline return value spill temp"
 ;  V20 tmp10        [V20,T52] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
@@ -34,7 +34,7 @@
 ;* V23 tmp13        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V24 tmp14        [V24,T35] (  4, 11   )     ref  ->   r7         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V25 tmp15        [V25,T42] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V26 tmp16        [V26,T59] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V26 tmp16        [V26,T60] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V27 tmp17        [V27,T17] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V28 tmp18        [V28,T14] (  4, 20   )     int  ->   r6         "Inlining Arg"
 ;* V29 tmp19        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
@@ -42,10 +42,10 @@
 ;  V31 tmp21        [V31,T46] (  4,  8   )     int  ->   r7         "Inline return value spill temp"
 ;  V32 tmp22        [V32,T53] (  3,  6   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V33 tmp23        [V33,T21] (  4, 16   )     ref  ->   r6         class-hnd "Inlining Arg" <System.Text.RegularExpressions.RegexNode>
-;  V34 tmp24        [V34,T50] (  2,  8   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V35 tmp25        [V35,T38] (  3, 10   )     ref  ->   r1         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
+;  V34 tmp24        [V34,T50] (  2,  8   )     ref  ->   r0         "CASTCLASS eval op1"
+;  V35 tmp25        [V35,T38] (  3, 10   )     ref  ->   r0         class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V36 tmp26        [V36,T43] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V37 tmp27        [V37,T60] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V37 tmp27        [V37,T61] (  3,  5   )     int  ->   r3         "fgMakeTemp is creating a new local variable"
 ;  V38 tmp28        [V38,T10] (  8, 27   )     ref  ->   r4         class-hnd "spilling QMark2" <<unknown class>>
 ;  V39 tmp29        [V39,T33] (  3, 12   )     int  ->   r7         "Inlining Arg"
 ;  V40 tmp30        [V40,T40] (  4, 10   )     int  ->   r6         "Inline return value spill temp"
@@ -62,7 +62,7 @@
 ;* V51 tmp41        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V52 tmp42        [V52,T36] (  4, 11   )     ref  ->   r3         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V53 tmp43        [V53,T44] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V54 tmp44        [V54,T61] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V54 tmp44        [V54,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V55 tmp45        [V55,T18] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;* V56 tmp46        [V56    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V57 tmp47        [V57,T49] (  3,  8   )     ref  ->   r4         class-hnd "Inline return value spill temp" <System.Text.RegularExpressions.RegexNode>
@@ -70,7 +70,7 @@
 ;* V59 tmp49        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Text.RegularExpressions.RegexNode>
 ;  V60 tmp50        [V60,T37] (  4, 11   )     ref  ->   r4         class-hnd exact "Inline stloc first use temp" <System.Text.RegularExpressions.RegexNode>
 ;  V61 tmp51        [V61,T45] (  3,  9   )     ref  ->   r1         "CASTCLASS eval op1"
-;  V62 tmp52        [V62,T62] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
+;  V62 tmp52        [V62,T63] (  3,  5   )     int  ->   r2         "fgMakeTemp is creating a new local variable"
 ;  V63 tmp53        [V63,T19] (  6, 19   )     ref  ->   r3         class-hnd "spilling QMark2" <<unknown class>>
 ;  V64 tmp54        [V64,T28] (  3, 12   )     ref  ->   r1         "arr expr"
 ;  V65 tmp55        [V65,T29] (  3, 12   )     ref  ->   r0         "arr expr"
@@ -81,7 +81,8 @@
 ;  V70 cse1         [V70,T07] (  3, 40   )     ref  ->   r1         "CSE - aggressive"
 ;  V71 cse2         [V71,T55] (  3,  6   )     ref  ->   r0         "CSE - conservative"
 ;  V72 cse3         [V72,T56] (  3,  6   )     ref  ->   r1         "CSE - conservative"
-;  V73 rat0         [V73,T13] (  3, 24   )     int  ->   r5         "ReplaceWithLclVar is creating a new local variable"
+;  V73 cse4         [V73,T57] (  3,  6   )     ref  ->   r1         "CSE - conservative"
+;  V74 rat0         [V74,T13] (  3, 24   )     int  ->   r5         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 0
 
@@ -109,7 +110,7 @@ G_M35244_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs -[r4]
             pop     {r4,r5,r6,r7,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M35244_IG05:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35244_IG05:        ; bbWeight=4, gcVars=000000000000000000000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r4]
             ldrb    r0, [r4+0x1E]
             subs    r3, r0, 3
@@ -399,20 +400,26 @@ G_M35244_IG30:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            ldr     r1, [r4+0x04]
+            ldr     r2, [r4+0x04]
+            ; gcrRegs +[r2]
+            mov     r1, r2
             ; gcrRegs +[r1]
-            cmp     r1, 0
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            cmp     r0, 0
             beq     SHORT G_M35244_IG33
-                     ;; size=56 bbWeight=2 PerfScore 40.00
-G_M35244_IG31:        ; bbWeight=1, gcrefRegs=0072 {r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [r1]
-            ; gcrRegs -[r1]
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            cmp     r1, r0
+                       ;; size=60 bbWeight=2 PerfScore 44.00
+G_M35244_IG31:        ; bbWeight=1, gcrefRegs=0073 {r0 r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2]
+            ldr     r0, [r0]
+            ; gcrRegs -[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            cmp     r0, r3
             bne     SHORT G_M35244_IG33
                        ;; size=14 bbWeight=1 PerfScore 5.00
 G_M35244_IG32:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r1]
             adds    r0, r4, 4
             ; byrRegs +[r0]
             mov     r1, r6
@@ -424,14 +431,13 @@ G_M35244_IG32:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             ; byrRegs -[r0]
             b       SHORT G_M35244_IG37
                        ;; size=16 bbWeight=2 PerfScore 12.00
-G_M35244_IG33:        ; bbWeight=2, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r4 r6]
-            ldr     r1, [r4+0x04]
-            ; gcrRegs +[r1]
+G_M35244_IG33:        ; bbWeight=2, gcrefRegs=0062 {r1 r5 r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r1 r6]
             mov     r4, r1
+            ; gcrRegs +[r4]
             cmp     r4, 0
             beq     SHORT G_M35244_IG36
-                      ;; size=8 bbWeight=2 PerfScore 8.00
+                       ;; size=6 bbWeight=2 PerfScore 6.00
 G_M35244_IG34:        ; bbWeight=1, gcrefRegs=0072 {r1 r4 r5 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r4]
             movw    r3, 0xd1ff
@@ -755,7 +761,7 @@ G_M35244_IG68:        ; bbWeight=0.50, epilog, nogc, extend
             bx      r3     // <unknown method>
             ; gcr arg pop 0
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M35244_IG69:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35244_IG69:        ; bbWeight=0, gcVars=000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0 r4]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -783,7 +789,7 @@ RWD00   dd  G_M35244_IG38
            dd  G_M35244_IG38
 
 
-; Total bytes of code 952, prolog size 10, PerfScore 1008.50, instruction count 379, allocated bytes for code 952 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
+; Total bytes of code 954, prolog size 10, PerfScore 1010.50, instruction count 380, allocated bytes for code 954 (MethodHash=c35b7653) for method System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -795,7 +801,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 476 (0x001dc) Actual length = 952 (0x0003b8)
+  Function Length   : 477 (0x001dd) Actual length = 954 (0x0003ba)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
  
librariestestsnotieredcompilation.run.linux.arm.Release.mch
-4 (-4.26%) : 149255.dasm - System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this (FullOpts)
@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  4, 14   )     ref  ->   r5         this class-hnd single-def <System.Net.HttpEndPointListener>
-;  V01 arg1         [V01,T02] (  5, 22   )     ref  ->   r4         class-hnd single-def <System.Net.Sockets.SocketAsyncEventArgs>
-;  V02 loc0         [V02,T01] (  3, 24   )   ubyte  ->   r6        
+;  V00 this         [V00,T02] (  4, 18   )     ref  ->   r5         this class-hnd single-def <System.Net.HttpEndPointListener>
+;  V01 arg1         [V01,T01] (  5, 26   )     ref  ->   r4         class-hnd single-def <System.Net.Sockets.SocketAsyncEventArgs>
+;  V02 loc0         [V02,T03] (  2, 16   )   ubyte  ->   r0        
 ;# 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 "impSpillSpecialSideEff" <<unknown class>>
 ;  V05 tmp2         [V05,T00] (  3, 48   )     ref  ->   r0         class-hnd "Inlining Arg" <System.Net.Sockets.Socket>
@@ -18,15 +18,15 @@
 ;* V07 tmp4         [V07    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V08 tmp5         [V08    ] (  0,  0   )     ref  ->  zero-ref    "field V06._source (fldOffset=0x0)" P-INDEP
 ;* V09 tmp6         [V09,T04] (  0,  0   )     ref  ->  zero-ref    "field V07._source (fldOffset=0x0)" P-INDEP
-;  V10 PSPSym       [V10,T05] (  1,  1   )     int  ->  [sp+0x00]  do-not-enreg[V] "PSPSym"
+;  V10 PSPSym       [V10,T05] (  1,  1   )     int  ->  [sp+0x04]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 8
 
 G_M14120_IG01:        ; bbWeight=8, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            push    {r3,r4,r5,r6,r11,lr}
+            push    {r2,r3,r4,r5,r11,lr}
             add     r11, sp, 16
             add     r2, sp, 24
-            str     r2, [sp]
+            str     r2, [sp+0x04]
             mov     r5, r0
             ; gcrRegs +[r5]
             mov     r4, r1
@@ -47,13 +47,10 @@ G_M14120_IG02:        ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; gcr arg pop 0
-            mov     r6, r0
-                       ;; size=28 bbWeight=8 PerfScore 88.00
+                     ;; size=26 bbWeight=8 PerfScore 80.00
 G_M14120_IG03:        ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            cmp     r6, 0
-            bne     SHORT G_M14120_IG05
-                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M14120_IG04:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            cmp     r0, 0
+            bne     SHORT G_M14120_IG04
             mov     r0, r5
             ; gcrRegs +[r0]
             mov     r1, r4
@@ -64,29 +61,26 @@ G_M14120_IG04:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; gcr arg pop 0
-                      ;; size=16 bbWeight=4 PerfScore 24.00
-G_M14120_IG05:        ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            cmp     r6, 0
-            beq     SHORT G_M14120_IG02
-                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M14120_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            b       SHORT G_M14120_IG02
+                       ;; size=22 bbWeight=8 PerfScore 72.00
+G_M14120_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r4-r5]
-            pop     {r3,r4,r5,r6,r11,pc}
+            pop     {r2,r3,r4,r5,r11,pc}
                         ;; size=4 bbWeight=1 PerfScore 1.00
-G_M14120_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
-            push    {r3,r4,r5,r6,r11,lr}
+G_M14120_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+            push    {r2,r3,r4,r5,r11,lr}
             add     r3, r11, 8
-            str     r3, [sp]
+            str     r3, [sp+0x04]
                         ;; size=10 bbWeight=0 PerfScore 0.00
-G_M14120_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            movw    r0, LOW ADDRESS G_M14120_IG06
-            movt    r0, HIGH ADDRESS G_M14120_IG06
+G_M14120_IG06:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            movw    r0, LOW ADDRESS G_M14120_IG04
+            movt    r0, HIGH ADDRESS G_M14120_IG04
                      ;; size=8 bbWeight=0 PerfScore 0.00
-G_M14120_IG09:        ; bbWeight=0, funclet epilog, nogc, extend
-            pop     {r3,r4,r5,r6,r11,pc}
+G_M14120_IG07:        ; bbWeight=0, funclet epilog, nogc, extend
+            pop     {r2,r3,r4,r5,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 94, prolog size 16, PerfScore 193.00, instruction count 34, allocated bytes for code 94 (MethodHash=c2bdc8d7) for method System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this (FullOpts)
+; Total bytes of code 90, prolog size 16, PerfScore 201.00, instruction count 32, allocated bytes for code 90 (MethodHash=c2bdc8d7) for method System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -98,11 +92,11 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 36 (0x00024) Actual length = 72 (0x000048)
+  Function Length   : 34 (0x00022) Actual length = 68 (0x000044)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 78       pop {r3,r4,r5,r6,r11,lr}            ; opsize 32
+    A8 3C       pop {r2,r3,r4,r5,r11,lr}            ; opsize 32
     FF          end
     FF          end
 
@@ -119,10 +113,10 @@ Unwind Info:
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    A8 78       pop {r3,r4,r5,r6,r11,lr}            ; opsize 32
+    A8 3C       pop {r2,r3,r4,r5,r11,lr}            ; opsize 32
     FF          end
     FF          end
 
 *************** EH table for System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M14120_IG02..G_M14120_IG03) handled by [G_M14120_IG07..END) (class: 100003E)
+EH#0: try [G_M14120_IG02..G_M14120_IG03) handled by [G_M14120_IG05..END) (class: 100003E)
  
-10 (-3.62%) : 539.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (FullOpts)
@@ -8,29 +8,30 @@
 ; 3 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T09] (  4,  4   )     ref  ->   r4         this class-hnd single-def <Xunit.AggregateMessageSink>
-;  V01 arg1         [V01,T06] (  3,  5.35)     ref  ->   r5         class-hnd single-def <Xunit.Abstractions.IMessageSinkMessage>
-;  V02 arg2         [V02,T07] (  3,  5.35)     ref  ->   r6         class-hnd single-def <System.Collections.Generic.HashSet`1[System.String]>
-;  V03 loc0         [V03,T05] (  4,  8.70)   ubyte  ->   r7        
-;  V04 loc1         [V04,T14] (  4,  1.50)     ref  ->  [sp+0x04]  class-hnd EH-live single-def <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
+;  V00 this         [V00,T10] (  4,  4   )     ref  ->   r4         this class-hnd single-def <Xunit.AggregateMessageSink>
+;  V01 arg1         [V01,T07] (  3,  5.35)     ref  ->   r5         class-hnd single-def <Xunit.Abstractions.IMessageSinkMessage>
+;  V02 arg2         [V02,T08] (  3,  5.35)     ref  ->   r6         class-hnd single-def <System.Collections.Generic.HashSet`1[System.String]>
+;  V03 loc0         [V03,T06] (  4,  8.70)   ubyte  ->   r7        
+;  V04 loc1         [V04,T15] (  4,  1.50)     ref  ->  [sp+0x04]  class-hnd EH-live single-def <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
 ;  V05 loc2         [V05    ] (  5,  4   )   ubyte  ->  [sp+0x0C]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;* V06 loc3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[Xunit.IMessageSinkWithTypes]>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T11] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
-;  V09 tmp2         [V09,T10] (  2,  4   )     ref  ->   r9         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
+;  V08 tmp1         [V08,T12] (  2,  4   )   ubyte  ->   r0         "Inlining Arg"
+;  V09 tmp2         [V09,T11] (  2,  4   )     ref  ->   r9         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
 ;* V10 tmp3         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Xunit.IMessageSinkWithTypes]>
-;* V11 tmp4         [V11,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V11 tmp4         [V11,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V12 tmp5         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
-;  V13 tmp6         [V13,T01] (  5, 17.00)     ref  ->   r9         single-def "field V06._list (fldOffset=0x0)" P-INDEP
-;  V14 tmp7         [V14,T03] (  2,  6.70)     ref  ->   r0         "field V06._current (fldOffset=0x4)" P-INDEP
+;  V13 tmp6         [V13,T02] (  4, 16.34)     ref  ->   r9         single-def "field V06._list (fldOffset=0x0)" P-INDEP
+;  V14 tmp7         [V14,T04] (  2,  6.70)     ref  ->   r0         "field V06._current (fldOffset=0x4)" P-INDEP
 ;  V15 tmp8         [V15,T00] (  6, 18.39)     int  ->  [sp+0x08]  "field V06._index (fldOffset=0x8)" P-INDEP
-;  V16 tmp9         [V16,T04] (  3,  9.65)     int  ->  r10         single-def "field V06._version (fldOffset=0xc)" P-INDEP
-;  V17 tmp10        [V17,T12] (  3,  3   )     ref  ->   r9         single-def "field V10._list (fldOffset=0x0)" P-INDEP
+;  V16 tmp9         [V16,T05] (  2,  9   )     int  ->  r10         single-def "field V06._version (fldOffset=0xc)" P-INDEP
+;  V17 tmp10        [V17,T13] (  3,  3   )     ref  ->   r9         single-def "field V10._list (fldOffset=0x0)" P-INDEP
 ;* V18 tmp11        [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V10._current (fldOffset=0x4)" P-INDEP
-;* V19 tmp12        [V19,T15] (  0,  0   )     int  ->  zero-ref    single-def "field V10._index (fldOffset=0x8)" P-INDEP
-;  V20 tmp13        [V20,T13] (  2,  2   )     int  ->  r10         single-def "field V10._version (fldOffset=0xc)" P-INDEP
-;  V21 tmp14        [V21,T02] (  3, 20.09)     ref  ->   r0         "arr expr"
-;  V22 PSPSym       [V22,T16] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
+;* V19 tmp12        [V19,T16] (  0,  0   )     int  ->  zero-ref    single-def "field V10._index (fldOffset=0x8)" P-INDEP
+;  V20 tmp13        [V20,T14] (  2,  2   )     int  ->  r10         single-def "field V10._version (fldOffset=0xc)" P-INDEP
+;  V21 tmp14        [V21,T01] (  3, 20.09)     ref  ->   r0         "arr expr"
+;  V22 PSPSym       [V22,T17] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
+;  V23 cse0         [V23,T03] (  2,  7.99)     int  ->   r0         "CSE - aggressive"
 ;
 ; Lcl frame size = 20
 
@@ -56,7 +57,7 @@ G_M52679_IG02:        ; bbWeight=1, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             str     r8, [sp+0x04]
             ; GC ptr vars +{V04}
                        ;; size=10 bbWeight=1 PerfScore 3.00
-G_M52679_IG03:        ; bbWeight=1, gcVars=00004000 {V04}, gcrefRegs=0170 {r4 r5 r6 r8}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M52679_IG03:        ; bbWeight=1, gcVars=00008000 {V04}, gcrefRegs=0170 {r4 r5 r6 r8}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x0C]
             cmp     r1, 0
             bne     SHORT G_M52679_IG09
@@ -93,19 +94,19 @@ G_M52679_IG06:        ; bbWeight=8, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000
             ; gcrRegs -[r4]
             ldr     r0, [r9+0x0C]
             cmp     r10, r0
-            bne     SHORT G_M52679_IG10
+            bne     SHORT G_M52679_IG11
                       ;; size=8 bbWeight=8 PerfScore 24.00
 G_M52679_IG07:        ; bbWeight=4.00, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r9+0x08]
             cmp     r3, r0
-            bhs     SHORT G_M52679_IG14
+            bhs     SHORT G_M52679_IG12
                        ;; size=8 bbWeight=4.00 PerfScore 11.99
 G_M52679_IG08:        ; bbWeight=3.35, gcrefRegs=0360 {r5 r6 r8 r9}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r9+0x04]
             ; gcrRegs +[r0]
             ldr     r2, [r0+0x04]
             cmp     r3, r2
-            bhs     SHORT G_M52679_IG12
+            bhs     SHORT G_M52679_IG10
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -139,24 +140,14 @@ G_M52679_IG09:        ; bbWeight=0, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byre
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M52679_IG10:        ; bbWeight=0.65, gcrefRegs=0300 {r8 r9}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r9]
-            ldr     r0, [r9+0x0C]
-            cmp     r10, r0
-            bne     SHORT G_M52679_IG13
-                       ;; size=8 bbWeight=0.65 PerfScore 1.96
-G_M52679_IG11:        ; bbWeight=4, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r9]
-            b       SHORT G_M52679_IG14
-                       ;; size=2 bbWeight=4 PerfScore 4.00
-G_M52679_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M52679_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r8]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M52679_IG13:        ; bbWeight=0, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
+G_M52679_IG11:        ; bbWeight=0, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r8]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -165,12 +156,12 @@ G_M52679_IG13:        ; bbWeight=0, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byre
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M52679_IG14:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
+G_M52679_IG12:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
             ldrb    r0, [sp+0x0C]   // [V05 loc2]
             cmp     r0, 0
-            beq     SHORT G_M52679_IG16
+            beq     SHORT G_M52679_IG14
                         ;; size=8 bbWeight=1 PerfScore 3.00
-G_M52679_IG15:        ; bbWeight=0.50, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
+G_M52679_IG13:        ; bbWeight=0.50, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref
             mov     r0, r8
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
@@ -180,37 +171,37 @@ G_M52679_IG15:        ; bbWeight=0.50, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0 r8]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M52679_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M52679_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     r0, r7
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M52679_IG17:        ; bbWeight=1, epilog, nogc, extend
+G_M52679_IG15:        ; bbWeight=1, epilog, nogc, extend
             add     sp, 20
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M52679_IG18:        ; bbWeight=0, gcVars=00004000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
-            ; GC ptr vars +{V04 V14}
+G_M52679_IG16:        ; bbWeight=0, gcVars=00008000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+            ; GC ptr vars +{V04 V15}
             push    {r3,r4,r5,r6,r7,r8,r9,r10,r11,lr}
             add     r3, r11, 8
             str     r3, [sp]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M52679_IG19:        ; bbWeight=0, gcVars=00004000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M52679_IG17:        ; bbWeight=0, gcVars=00008000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r0, [r11-0x24]    // [V05 loc2]
             cmp     r0, 0
-            beq     SHORT G_M52679_IG20
+            beq     SHORT G_M52679_IG18
             ldr     r0, [r11-0x2C]  // [V04 loc1]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
-            ; GC ptr vars -{V04 V14}
+            ; GC ptr vars -{V04 V15}
             blx     r3       // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=22 bbWeight=0 PerfScore 0.00
-G_M52679_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M52679_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
             pop     {r3,r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 276, prolog size 24, PerfScore 144.56, instruction count 98, allocated bytes for code 276 (MethodHash=39853238) for method Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (FullOpts)
+; Total bytes of code 266, prolog size 24, PerfScore 138.60, instruction count 94, allocated bytes for code 266 (MethodHash=39853238) for method Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -222,7 +213,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 120 (0x00078) Actual length = 240 (0x0000f0)
+  Function Length   : 115 (0x00073) Actual length = 230 (0x0000e6)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
@@ -250,4 +241,4 @@ Unwind Info:
 
 *************** EH table for Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M52679_IG03..G_M52679_IG14) handled by [G_M52679_IG18..END) (fault)
+EH#0: try [G_M52679_IG03..G_M52679_IG12) handled by [G_M52679_IG16..END) (fault)
  
-6 (-2.97%) : 33852.dasm - Microsoft.Extensions.Configuration.ConfigurationManager:Microsoft.Extensions.Configuration.IConfigurationRoot.Reload():this (FullOpts)
@@ -8,25 +8,26 @@
 ; 2 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  4,  4   )     ref  ->   r5         this class-hnd single-def <Microsoft.Extensions.Configuration.ConfigurationManager>
-;  V01 loc0         [V01,T08] (  6,  3   )     ref  ->  [sp+0x04]  class-hnd EH-live single-def <<unknown class>>
+;  V00 this         [V00,T07] (  4,  4   )     ref  ->   r5         this class-hnd single-def <Microsoft.Extensions.Configuration.ConfigurationManager>
+;  V01 loc0         [V01,T09] (  6,  3   )     ref  ->  [sp+0x04]  class-hnd EH-live single-def <<unknown class>>
 ;* V02 loc1         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.Extensions.Configuration.IConfigurationProvider]>
 ;* V03 loc2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.Extensions.Configuration.IConfigurationProvider>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T07] (  2,  4   )     ref  ->   r0         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V05 tmp1         [V05,T08] (  2,  4   )     ref  ->   r0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V06 tmp2         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.Extensions.Configuration.IConfigurationProvider]>
-;* V07 tmp3         [V07,T05] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V07 tmp3         [V07,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V08 tmp4         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V09 tmp5         [V09,T01] (  5, 17.00)     ref  ->   r7         single-def "field V02._list (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T02] (  4, 16.34)     ref  ->   r7         single-def "field V02._list (fldOffset=0x0)" P-INDEP
 ;  V10 tmp6         [V10,T04] (  2,  5.35)     ref  ->   r0         "field V02._current (fldOffset=0x4)" P-INDEP
 ;  V11 tmp7         [V11,T00] (  6, 18.39)     int  ->   r9         "field V02._index (fldOffset=0x8)" P-INDEP
-;  V12 tmp8         [V12,T03] (  3,  9.65)     int  ->   r8         single-def "field V02._version (fldOffset=0xc)" P-INDEP
-;  V13 tmp9         [V13,T09] (  3,  3   )     ref  ->   r7         single-def "field V06._list (fldOffset=0x0)" P-INDEP
+;  V12 tmp8         [V12,T05] (  2,  9   )     int  ->   r8         single-def "field V02._version (fldOffset=0xc)" P-INDEP
+;  V13 tmp9         [V13,T10] (  3,  3   )     ref  ->   r7         single-def "field V06._list (fldOffset=0x0)" P-INDEP
 ;* V14 tmp10        [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._current (fldOffset=0x4)" P-INDEP
-;* V15 tmp11        [V15,T11] (  0,  0   )     int  ->  zero-ref    single-def "field V06._index (fldOffset=0x8)" P-INDEP
-;  V16 tmp12        [V16,T10] (  2,  2   )     int  ->   r8         single-def "field V06._version (fldOffset=0xc)" P-INDEP
-;  V17 tmp13        [V17,T02] (  3, 20.09)     ref  ->   r0         "arr expr"
-;  V18 PSPSym       [V18,T12] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
+;* V15 tmp11        [V15,T12] (  0,  0   )     int  ->  zero-ref    single-def "field V06._index (fldOffset=0x8)" P-INDEP
+;  V16 tmp12        [V16,T11] (  2,  2   )     int  ->   r8         single-def "field V06._version (fldOffset=0xc)" P-INDEP
+;  V17 tmp13        [V17,T01] (  3, 20.09)     ref  ->   r0         "arr expr"
+;  V18 PSPSym       [V18,T13] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
+;  V19 cse0         [V19,T03] (  2,  7.99)     int  ->   r0         "CSE - aggressive"
 ;
 ; Lcl frame size = 16
 
@@ -53,7 +54,7 @@ G_M4766_IG02:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             str     r6, [sp+0x04]
             ; GC ptr vars +{V01}
                        ;; size=20 bbWeight=1 PerfScore 8.00
-G_M4766_IG03:        ; bbWeight=1, gcVars=00000100 {V01}, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M4766_IG03:        ; bbWeight=1, gcVars=00000200 {V01}, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0]
             mov     r0, r6
             ; gcrRegs +[r0]
@@ -79,12 +80,12 @@ G_M4766_IG04:        ; bbWeight=2, gcrefRegs=00E1 {r0 r5 r6 r7}, byrefRegs=0000
 G_M4766_IG05:        ; bbWeight=8, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r7+0x0C]
             cmp     r8, r0
-            bne     SHORT G_M4766_IG10
+            bne     SHORT G_M4766_IG09
                      ;; size=6 bbWeight=8 PerfScore 24.00
 G_M4766_IG06:        ; bbWeight=4.00, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r7+0x08]
             cmp     r9, r0
-            bhs     SHORT G_M4766_IG11
+            bhs     SHORT G_M4766_IG10
                      ;; size=6 bbWeight=4.00 PerfScore 11.99
 G_M4766_IG07:        ; bbWeight=3.35, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r7+0x04]
@@ -118,14 +119,8 @@ G_M4766_IG09:        ; bbWeight=0, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M4766_IG10:        ; bbWeight=0.65, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r5 r7]
-            ldr     r0, [r7+0x0C]
-            cmp     r8, r0
-            bne     SHORT G_M4766_IG09
-                       ;; size=6 bbWeight=0.65 PerfScore 1.96
-G_M4766_IG11:        ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r7]
+G_M4766_IG10:        ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r5]
             mov     r0, r6
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
@@ -144,34 +139,34 @@ G_M4766_IG11:        ; bbWeight=1, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, by
             ; gcrRegs -[r0 r5]
             ; gcr arg pop 0
                        ;; size=28 bbWeight=1 PerfScore 10.00
-G_M4766_IG12:        ; bbWeight=1, epilog, nogc, extend
+G_M4766_IG11:        ; bbWeight=1, epilog, nogc, extend
             add     sp, 16
             pop     {r4,r5,r6,r7,r8,r9,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M4766_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M4766_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             push    {r2,r3,r4,r5,r6,r7,r8,r9,r11,lr}
             add     r3, r11, 8
             str     r3, [sp+0x04]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M4766_IG14:        ; bbWeight=0, gcVars=00000100 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; GC ptr vars +{V01}
+G_M4766_IG13:        ; bbWeight=0, gcVars=00000200 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; GC ptr vars +{V01 V09}
             ldr     r0, [r11-0x24] // [V01 loc0]
             ; gcrRegs +[r0]
             cmp     r0, 0
-            beq     SHORT G_M4766_IG15
+            beq     SHORT G_M4766_IG14
             movw    r4, 0xd1ff
             movt    r4, 0xd1ff
             ldr     r3, [r4]
-            ; GC ptr vars -{V01}
+            ; GC ptr vars -{V01 V09}
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=20 bbWeight=0 PerfScore 0.00
-G_M4766_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M4766_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
             pop     {r2,r3,r4,r5,r6,r7,r8,r9,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 202, prolog size 16, PerfScore 111.08, instruction count 76, allocated bytes for code 202 (MethodHash=07d7ed61) for method Microsoft.Extensions.Configuration.ConfigurationManager:Microsoft.Extensions.Configuration.IConfigurationRoot.Reload():this (FullOpts)
+; Total bytes of code 196, prolog size 16, PerfScore 109.12, instruction count 73, allocated bytes for code 196 (MethodHash=07d7ed61) for method Microsoft.Extensions.Configuration.ConfigurationManager:Microsoft.Extensions.Configuration.IConfigurationRoot.Reload():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -183,7 +178,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 84 (0x00054) Actual length = 168 (0x0000a8)
+  Function Length   : 81 (0x00051) Actual length = 162 (0x0000a2)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
@@ -210,4 +205,4 @@ Unwind Info:
 
 *************** EH table for Microsoft.Extensions.Configuration.ConfigurationManager:Microsoft.Extensions.Configuration.IConfigurationRoot.Reload():this
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M4766_IG03..G_M4766_IG11) handled by [G_M4766_IG13..END) (fault)
+EH#0: try [G_M4766_IG03..G_M4766_IG10) handled by [G_M4766_IG12..END) (fault)
  
+8 (+0.78%) : 130581.dasm - System.IO.Tests.WriteTests:Write_Span_WritesExpectedData(int,int,int,ubyte):this (FullOpts)
@@ -260,7 +260,7 @@ G_M42812_IG10:        ; bbWeight=1, gcrefRegs=03C0 {r6 r7 r8 r9}, byrefRegs=0000
             movw    r8, 0xd1ff
             movt    r8, 0xd1ff
             cmp     r5, 0
-            blt     SHORT G_M42812_IG15
+            blt     G_M42812_IG21
             mov     r1, r5
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -291,23 +291,23 @@ G_M42812_IG10:        ; bbWeight=1, gcrefRegs=03C0 {r6 r7 r8 r9}, byrefRegs=0000
             ; byrRegs +[r7]
             ldr     r8, [r5+0x04]
             cmp     r8, 0
-            ble     SHORT G_M42812_IG24
-                       ;; size=90 bbWeight=1 PerfScore 30.00
+            ble     SHORT G_M42812_IG18
+                       ;; size=92 bbWeight=1 PerfScore 30.00
 G_M42812_IG11:        ; bbWeight=4.00, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r7}, byref, isz
             cmp     r8, r4
-            bgt     SHORT G_M42812_IG19
-                       ;; size=4 bbWeight=4.00 PerfScore 8.00
+            bgt     G_M42812_IG25
+                       ;; size=6 bbWeight=4.00 PerfScore 8.00
 G_M42812_IG12:        ; bbWeight=1.48, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r7}, byref
             mov     r3, r8
                        ;; size=2 bbWeight=1.48 PerfScore 1.48
 G_M42812_IG13:        ; bbWeight=4, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r7}, byref, isz
             cmp     r3, r8
-            bhi     SHORT G_M42812_IG18
+            bhi     G_M42812_IG22
             str     r3, [sp+0x1C]
             cmp     r3, 0
-            bge     SHORT G_M42812_IG21
-                       ;; size=10 bbWeight=4 PerfScore 20.00
-G_M42812_IG14:        ; bbWeight=2, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r7}, byref, isz
+            bge     SHORT G_M42812_IG15
+                       ;; size=12 bbWeight=4 PerfScore 20.00
+G_M42812_IG14:        ; bbWeight=2, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r7}, byref
             movw    r2, 0xd1ff
             movt    r2, 0xd1ff
             mov     r0, r2
@@ -323,64 +323,6 @@ G_M42812_IG14:        ; bbWeight=2, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r
             blx     lr     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; gcr arg pop 0
-            b       SHORT G_M42812_IG20
-                       ;; size=30 bbWeight=2 PerfScore 20.00
-G_M42812_IG15:        ; bbWeight=0, gcVars=0000000000004080 {V05 V06}, gcrefRegs=0240 {r6 r9}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r5]
-            ; byrRegs -[r7]
-            ; GC ptr vars -{V91}
-            movw    r0, 0xd1ff
-            movw    r1, 0xd1ff
-            movt    r1, 0xd1ff
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_STRCNS
-            ; gcrRegs +[r0]
-            ; gcr arg pop 0
-            mov     r1, r0
-            ; gcrRegs +[r1]
-            mov     r0, r5
-            ; gcrRegs -[r0]
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r3, [r3]
-            blx     r3     // System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
-            ; gcrRegs -[r1]
-            ; gcr arg pop 0
-            bkpt    
-                       ;; size=40 bbWeight=0 PerfScore 0.00
-G_M42812_IG16:        ; bbWeight=0, gcrefRegs=0240 {r6 r9}, byrefRegs=0000 {}, byref
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r3, [r3]
-            blx     r3     // System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
-            ; gcr arg pop 0
-            bkpt    
-                       ;; size=14 bbWeight=0 PerfScore 0.00
-G_M42812_IG17:        ; bbWeight=0, gcrefRegs=0240 {r6 r9}, byrefRegs=0000 {}, byref
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r3, [r3]
-            blx     r3     // System.IO.StreamWriter:ThrowAsyncIOInProgress()
-            ; gcr arg pop 0
-            bkpt    
-                       ;; size=14 bbWeight=0 PerfScore 0.00
-G_M42812_IG18:        ; bbWeight=0, gcrefRegs=0240 {r6 r9}, byrefRegs=0000 {}, byref
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r3, [r3]
-            blx     r3     // System.ThrowHelper:ThrowArgumentOutOfRangeException()
-            ; gcr arg pop 0
-            bkpt    
-                       ;; size=14 bbWeight=0 PerfScore 0.00
-G_M42812_IG19:        ; bbWeight=0.52, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r7}, byref, isz
-            ; gcrRegs +[r5]
-            ; byrRegs +[r7]
-            mov     r3, r4
-            b       SHORT G_M42812_IG13
-                       ;; size=4 bbWeight=0.52 PerfScore 1.04
-G_M42812_IG20:        ; bbWeight=2, gcVars=0000000000004088 {V05 V06 V91}, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r7}, gcvars, byref
-            ; GC ptr vars +{V03 V91}
             ldr     r0, [sp+0x08]  // [V91 cse0]
             ; gcrRegs +[r0]
             mov     r1, r0
@@ -388,12 +330,12 @@ G_M42812_IG20:        ; bbWeight=2, gcVars=0000000000004088 {V05 V06 V91}, gcref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
-            ; GC ptr vars -{V03 V91}
+            ; GC ptr vars -{V91}
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; gcr arg pop 0
-                      ;; size=16 bbWeight=2 PerfScore 12.00
-G_M42812_IG21:        ; bbWeight=4.00, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r7}, byref, isz
+                        ;; size=44 bbWeight=2 PerfScore 30.00
+G_M42812_IG15:        ; bbWeight=4.00, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r7}, byref, isz
             mov     r1, r7
             ; byrRegs +[r1]
             ldr     r3, [sp+0x1C]  // [V41 tmp30]
@@ -412,9 +354,9 @@ G_M42812_IG21:        ; bbWeight=4.00, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080
             adds    r7, r7, r1
             sub     r8, r8, r0
             cmp     r8, 0
-            bge     SHORT G_M42812_IG23
+            bge     SHORT G_M42812_IG17
                         ;; size=38 bbWeight=4.00 PerfScore 56.00
-G_M42812_IG22:        ; bbWeight=2.00, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r7}, byref
+G_M42812_IG16:        ; bbWeight=2.00, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r7}, byref
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             mov     r3, r0
@@ -431,11 +373,11 @@ G_M42812_IG22:        ; bbWeight=2.00, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080
             ; gcrRegs -[r0-r1]
             ; gcr arg pop 0
                        ;; size=26 bbWeight=2.00 PerfScore 18.00
-G_M42812_IG23:        ; bbWeight=4.00, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r7}, byref, isz
+G_M42812_IG17:        ; bbWeight=4.00, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r7}, byref, isz
             cmp     r8, 0
             bgt     SHORT G_M42812_IG11
                        ;; size=6 bbWeight=4.00 PerfScore 8.00
-G_M42812_IG24:        ; bbWeight=1, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+G_M42812_IG18:        ; bbWeight=1, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r7]
             ldr     r0, [r6+0x24]
             ; gcrRegs +[r0]
@@ -444,7 +386,7 @@ G_M42812_IG24:        ; bbWeight=1, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0000 {}
             dmb     15
             ands    r0, r0, 0x1600000
             cmp     r0, 0
-            beq     SHORT G_M42812_IG17
+            beq     G_M42812_IG24
             mov     r0, r6
             ; gcrRegs +[r0]
             movs    r1, 1
@@ -470,9 +412,9 @@ G_M42812_IG24:        ; bbWeight=1, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0000 {}
             ldr     r1, [r0]
             ; gcrRegs +[r1]
             cmp     r1, 0
-            bne     SHORT G_M42812_IG26
-                       ;; size=64 bbWeight=1 PerfScore 24.00
-G_M42812_IG25:        ; bbWeight=0.50, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+            bne     SHORT G_M42812_IG20
+                       ;; size=66 bbWeight=1 PerfScore 24.00
+G_M42812_IG19:        ; bbWeight=0.50, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r1]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -491,7 +433,7 @@ G_M42812_IG25:        ; bbWeight=0.50, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0
             ldr     r3, [r0]
             ; gcrRegs +[r3]
             cmp     r3, 0
-            beq     SHORT G_M42812_IG16
+            beq     SHORT G_M42812_IG23
             adds    r0, r1, 4
             ; byrRegs +[r0]
             mov     r1, r3
@@ -516,7 +458,7 @@ G_M42812_IG25:        ; bbWeight=0.50, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0
             mov     r1, r2
             ; gcrRegs +[r1]
                        ;; size=84 bbWeight=0.50 PerfScore 14.00
-G_M42812_IG26:        ; bbWeight=1, gcVars=0000000000004080 {V05 V06}, gcrefRegs=0272 {r1 r4 r5 r6 r9}, byrefRegs=0000 {}, gcvars, byref
+G_M42812_IG20:        ; bbWeight=1, gcVars=0000000000004080 {V05 V06}, gcrefRegs=0272 {r1 r4 r5 r6 r9}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r2]
             ; GC ptr vars -{V23}
             mov     r0, r4
@@ -561,8 +503,62 @@ G_M42812_IG26:        ; bbWeight=1, gcVars=0000000000004080 {V05 V06}, gcrefRegs
             blx     lr     // <unknown method>
             ; gcrRegs -[r1-r5 r7]
             ; gcr arg pop 0
-                      ;; size=80 bbWeight=1 PerfScore 27.00
-G_M42812_IG27:        ; bbWeight=1, gcrefRegs=0240 {r6 r9}, byrefRegs=0000 {}, byref
+            b       SHORT G_M42812_IG26
+                       ;; size=82 bbWeight=1 PerfScore 28.00
+G_M42812_IG21:        ; bbWeight=0, gcrefRegs=0240 {r6 r9}, byrefRegs=0000 {}, byref
+            movw    r0, 0xd1ff
+            movw    r1, 0xd1ff
+            movt    r1, 0xd1ff
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_STRCNS
+            ; gcrRegs +[r0]
+            ; gcr arg pop 0
+            mov     r1, r0
+            ; gcrRegs +[r1]
+            mov     r0, r5
+            ; gcrRegs -[r0]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
+            ; gcrRegs -[r1]
+            ; gcr arg pop 0
+            bkpt    
+                       ;; size=40 bbWeight=0 PerfScore 0.00
+G_M42812_IG22:        ; bbWeight=0, gcrefRegs=0240 {r6 r9}, byrefRegs=0000 {}, byref
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.ThrowHelper:ThrowArgumentOutOfRangeException()
+            ; gcr arg pop 0
+            bkpt    
+                       ;; size=14 bbWeight=0 PerfScore 0.00
+G_M42812_IG23:        ; bbWeight=0, gcrefRegs=0240 {r6 r9}, byrefRegs=0000 {}, byref
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
+            ; gcr arg pop 0
+            bkpt    
+                       ;; size=14 bbWeight=0 PerfScore 0.00
+G_M42812_IG24:        ; bbWeight=0, gcrefRegs=0240 {r6 r9}, byrefRegs=0000 {}, byref
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            ldr     r3, [r3]
+            blx     r3     // System.IO.StreamWriter:ThrowAsyncIOInProgress()
+            ; gcr arg pop 0
+            bkpt    
+                       ;; size=14 bbWeight=0 PerfScore 0.00
+G_M42812_IG25:        ; bbWeight=0.52, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0080 {r7}, byref, isz
+            ; gcrRegs +[r5]
+            ; byrRegs +[r7]
+            mov     r3, r4
+            b       SHORT G_M42812_IG13
+                       ;; size=4 bbWeight=0.52 PerfScore 1.04
+G_M42812_IG26:        ; bbWeight=1, gcrefRegs=0240 {r6 r9}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r5]
+            ; byrRegs -[r7]
...
  
+10 (+1.12%) : 209722.dasm - System.Tests.DecimalTests+BigIntegerCompare:Test() (FullOpts)
@@ -53,7 +53,7 @@
 ;* V42 tmp33        [V42    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[uint]>
 ;* V43 tmp34        [V43    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <uint[]>
 ;  V44 tmp35        [V44    ] (  7,160.00)  struct (16) [sp+0x20]  do-not-enreg[XS] addr-exposed ld-addr-op double-align "Inlining Arg" <System.Decimal>
-;  V45 tmp36        [V45,T17] (  8, 24   )     int  ->   r9         "Inline return value spill temp"
+;  V45 tmp36        [V45,T17] (  8, 24   )     int  ->  r10         "Inline return value spill temp"
 ;* V46 tmp37        [V46    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
 ;* V47 tmp38        [V47    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
 ;  V48 tmp39        [V48,T36] (  3, 16.00)     int  ->   r9         "Inline stloc first use temp"
@@ -80,10 +80,10 @@
 ;* V69 tmp60        [V69    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x4)" P-INDEP
 ;  V70 tmp61        [V70    ] (  3, 48   )     ref  ->  [sp+0x44]  do-not-enreg[X] addr-exposed "field V24._bits (fldOffset=0x0)" P-DEP
 ;  V71 tmp62        [V71    ] (  3, 48   )     int  ->  [sp+0x48]  do-not-enreg[X] addr-exposed "field V24._sign (fldOffset=0x4)" P-DEP
-;  V72 tmp63        [V72,T28] (  3, 16   )   byref  ->   r1         "field V26._reference (fldOffset=0x0)" P-INDEP
-;  V73 tmp64        [V73,T32] (  3, 16   )     int  ->   r2         "field V26._length (fldOffset=0x4)" P-INDEP
-;  V74 tmp65        [V74,T29] (  3, 16   )   byref  ->   r0         "field V29._reference (fldOffset=0x0)" P-INDEP
-;  V75 tmp66        [V75,T33] (  3, 16   )     int  ->   lr         "field V29._length (fldOffset=0x4)" P-INDEP
+;  V72 tmp63        [V72,T28] (  3, 20.27)   byref  ->   r1         "field V26._reference (fldOffset=0x0)" P-INDEP
+;  V73 tmp64        [V73,T30] (  3, 20.27)     int  ->   r2         "field V26._length (fldOffset=0x4)" P-INDEP
+;  V74 tmp65        [V74,T32] (  3, 16   )   byref  ->   r0         "field V29._reference (fldOffset=0x0)" P-INDEP
+;  V75 tmp66        [V75,T34] (  3, 16   )     int  ->   lr         "field V29._length (fldOffset=0x4)" P-INDEP
 ;  V76 tmp67        [V76    ] (  3, 24   )     ref  ->  [sp+0x3C]  do-not-enreg[X] addr-exposed "field V31._bits (fldOffset=0x0)" P-DEP
 ;  V77 tmp68        [V77    ] (  3, 24   )     int  ->  [sp+0x40]  do-not-enreg[X] addr-exposed "field V31._sign (fldOffset=0x4)" P-DEP
 ;  V78 tmp69        [V78,T16] (  4, 24.54)     ref  ->   r9         "field V32._bits (fldOffset=0x0)" P-INDEP
@@ -96,9 +96,9 @@
 ;* V85 tmp76        [V85    ] (  0,  0   )     int  ->  zero-ref    "field V35._length (fldOffset=0x4)" P-INDEP
 ;  V86 tmp77        [V86    ] (  3, 48   )     ref  ->  [sp+0x34]  do-not-enreg[X] addr-exposed "field V37._bits (fldOffset=0x0)" P-DEP
 ;  V87 tmp78        [V87    ] (  3, 48   )     int  ->  [sp+0x38]  do-not-enreg[X] addr-exposed "field V37._sign (fldOffset=0x4)" P-DEP
-;  V88 tmp79        [V88,T30] (  3, 16   )   byref  ->   r1         "field V39._reference (fldOffset=0x0)" P-INDEP
-;  V89 tmp80        [V89,T34] (  3, 16   )     int  ->   r2         "field V39._length (fldOffset=0x4)" P-INDEP
-;  V90 tmp81        [V90,T31] (  3, 16   )   byref  ->   r0         "field V42._reference (fldOffset=0x0)" P-INDEP
+;  V88 tmp79        [V88,T29] (  3, 20.27)   byref  ->   r1         "field V39._reference (fldOffset=0x0)" P-INDEP
+;  V89 tmp80        [V89,T31] (  3, 20.27)     int  ->   r2         "field V39._length (fldOffset=0x4)" P-INDEP
+;  V90 tmp81        [V90,T33] (  3, 16   )   byref  ->   r0         "field V42._reference (fldOffset=0x0)" P-INDEP
 ;  V91 tmp82        [V91,T35] (  3, 16   )     int  ->   lr         "field V42._length (fldOffset=0x4)" P-INDEP
 ;  V92 tmp83        [V92    ] (  4, 56.00)     int  ->  [sp+0x20]  do-not-enreg[X] addr-exposed "field V44._flags (fldOffset=0x0)" P-DEP
 ;  V93 tmp84        [V93    ] (  3, 64.00)     int  ->  [sp+0x24]  do-not-enreg[X] addr-exposed "field V44._hi32 (fldOffset=0x4)" P-DEP
@@ -156,7 +156,7 @@ G_M48799_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             movs    r5, 0
             ldr     r6, [r4+0x04]
             cmp     r6, 0
-            ble     G_M48799_IG36
+            ble     G_M48799_IG42
                         ;; size=28 bbWeight=1 PerfScore 11.00
 G_M48799_IG03:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
@@ -178,7 +178,7 @@ G_M48799_IG03:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ldr     r2, [r2+0x04]
             ; gcrRegs -[r2]
             cmp     r5, r2
-            bhs     G_M48799_IG40
+            bhs     G_M48799_IG43
             ldr     r2, [sp+0x9C]
             ; gcrRegs +[r2]
             movs    r3, 12
@@ -219,7 +219,7 @@ G_M48799_IG06:        ; bbWeight=16, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byr
             ldr     r2, [r2+0x04]
             ; gcrRegs -[r2]
             cmp     r7, r2
-            bhs     G_M48799_IG40
+            bhs     G_M48799_IG43
             ldr     r2, [sp+0x9C]
             ; gcrRegs +[r2]
             movs    r3, 12
@@ -246,7 +246,7 @@ G_M48799_IG08:        ; bbWeight=16, isz, extend
             ldrb    r2, [sp+0x7C]
             sub     r8, r2, r3
             cmp     r8, 0
-            ble     SHORT G_M48799_IG19
+            ble     SHORT G_M48799_IG22
                         ;; size=20 bbWeight=16 PerfScore 112.00
 G_M48799_IG09:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r9, [sp+0x60]
@@ -258,7 +258,7 @@ G_M48799_IG09:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ; gcrRegs +[r2]
             ldr     r0, [r2+0x04]
             cmp     r8, r0
-            bhs     G_M48799_IG40
+            bhs     G_M48799_IG43
             lsl     r0, r8, 3
             adds    r0, 8
             adds    r2, r2, r0
@@ -268,7 +268,7 @@ G_M48799_IG09:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ; gcrRegs +[r8]
             ldr     r10, [r2+0x04]
             cmp     r9, 0
-            bne     SHORT G_M48799_IG13
+            bne     SHORT G_M48799_IG15
             cmp     r8, 0
             bne     SHORT G_M48799_IG12
             movs    r2, 0
@@ -291,180 +291,35 @@ G_M48799_IG10:        ; bbWeight=8, nogc, extend
             str     r1, [sp+0x50]
                        ;; size=8 bbWeight=8 PerfScore 32.00
 G_M48799_IG11:        ; bbWeight=8, isz, extend
-            b       SHORT G_M48799_IG18
+            b       SHORT G_M48799_IG21
                       ;; size=2 bbWeight=8 PerfScore 8.00
-G_M48799_IG12:        ; bbWeight=3.73, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, byref, isz
+G_M48799_IG12:        ; bbWeight=8, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r8]
             movs    r1, 0
             movs    r2, 0
-            b       SHORT G_M48799_IG14
-                       ;; size=6 bbWeight=3.73 PerfScore 11.19
-G_M48799_IG13:        ; bbWeight=4.27, gcrefRegs=0310 {r4 r8 r9}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[r9]
-            add     r1, r9, 8
+                        ;; size=4 bbWeight=8 PerfScore 16.00
+G_M48799_IG13:        ; bbWeight=8, gcrefRegs=0110 {r4 r8}, byrefRegs=0002 {r1}, byref, isz
             ; byrRegs +[r1]
-            ldr     r2, [r9+0x04]
-                       ;; size=8 bbWeight=4.27 PerfScore 8.54
-G_M48799_IG14:        ; bbWeight=8, gcrefRegs=0110 {r4 r8}, byrefRegs=0002 {r1}, byref, isz
-            ; gcrRegs -[r9]
             cmp     r8, 0
-            bne     SHORT G_M48799_IG16
+            bne     SHORT G_M48799_IG19
                      ;; size=6 bbWeight=8 PerfScore 16.00
-G_M48799_IG15:        ; bbWeight=3.73, gcrefRegs=0010 {r4}, byrefRegs=0002 {r1}, byref, isz
+G_M48799_IG14:        ; bbWeight=3.73, gcrefRegs=0010 {r4}, byrefRegs=0002 {r1}, byref, isz
             ; gcrRegs -[r8]
             movs    r0, 0
             mov     lr, 0
-            b       SHORT G_M48799_IG17
+            b       SHORT G_M48799_IG20
                         ;; size=8 bbWeight=3.73 PerfScore 11.19
-G_M48799_IG16:        ; bbWeight=4.27, gcrefRegs=0110 {r4 r8}, byrefRegs=0002 {r1}, byref
-            ; gcrRegs +[r8]
-            add     r0, r8, 8
-            ; byrRegs +[r0]
-            ldr     lr, [r8+0x04]
-                       ;; size=8 bbWeight=4.27 PerfScore 8.54
-G_M48799_IG17:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0003 {r0 r1}, byref
-            ; gcrRegs -[r8]
-            str     r0, [sp]
-            ; byr arg write
-            str     lr, [sp+0x04]
-            str     r10, [sp+0x08]
-            add     r0, sp, 76
-            ; byrRegs -[r0]
-            movw    lr, 0xd1ff
-            movt    lr, 0xd1ff
-            ldr     lr, [lr]
-            blx     lr     // <unknown method>
+G_M48799_IG15:        ; bbWeight=4.27, gcrefRegs=0310 {r4 r8 r9}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r8-r9]
             ; byrRegs -[r1]
-            ; gcr arg pop 0
-                       ;; size=26 bbWeight=8 PerfScore 64.00
-G_M48799_IG18:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [sp+0x4C]
-            ; gcrRegs +[r1]
-            ldr     r2, [sp+0x50]
-            add     r0, sp, 128
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r3, [r3]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r1]
-            ; gcr arg pop 0
-            mov     r8, r0
-            b       SHORT G_M48799_IG31
-                       ;; size=22 bbWeight=8 PerfScore 72.00
-G_M48799_IG19:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            cmp     r8, 0
-            bge     SHORT G_M48799_IG30
-            ldr     r9, [sp+0x80]
-            ; gcrRegs +[r9]
-            ldr     r3, [sp+0x84]
-            movw    r2, 0xd1ff
-            movt    r2, 0xd1ff
-            ldr     r2, [r2]
-            ; gcrRegs +[r2]
-            rsbs    r0, r8, 0
-            ldr     r1, [r2+0x04]
-            cmp     r0, r1
-            bhs     G_M48799_IG40
-            rsbs    r0, r8, 0
-            lsls    r0, r0, 3
-            adds    r0, 8
-            adds    r2, r0, r2
-            ; gcrRegs -[r2]
-            ; byrRegs +[r2]
-            ldr     r8, [r2]
-            ; gcrRegs +[r8]
-            ldr     r10, [r2+0x04]
-            cmp     r9, 0
-            bne     SHORT G_M48799_IG23
-            cmp     r8, 0
-            bne     SHORT G_M48799_IG22
-            movs    r2, 0
-            ; byrRegs -[r2]
-            str     r2, [sp+0x34]
-            str     r2, [sp+0x38]
-            smull   r2, r3, r3, r10
-            add     r0, sp, 52
-            movw    r1, 0xd1ff
-            movt    r1, 0xd1ff
-            ldr     r1, [r1]
-            blx     r1     // <unknown method>
+            add     r1, r9, 8
+            ; byrRegs +[r1]
+            ldr     r2, [r9+0x04]
+            b       SHORT G_M48799_IG13
+                       ;; size=10 bbWeight=4.27 PerfScore 12.81
+G_M48799_IG16:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r8-r9]
-            ; gcr arg pop 0
-                       ;; size=88 bbWeight=8 PerfScore 240.00
-G_M48799_IG20:        ; bbWeight=8, nogc, extend
-            ldr     r1, [sp+0x34]
-            str     r1, [sp+0x3C]
-            ldr     r1, [sp+0x38]
-            str     r1, [sp+0x40]
-                       ;; size=8 bbWeight=8 PerfScore 32.00
-G_M48799_IG21:        ; bbWeight=8, isz, extend
-            b       SHORT G_M48799_IG28
-                       ;; size=2 bbWeight=8 PerfScore 8.00
-G_M48799_IG22:        ; bbWeight=3.73, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r8]
-            movs    r1, 0
-            movs    r2, 0
-            b       SHORT G_M48799_IG24
-                       ;; size=6 bbWeight=3.73 PerfScore 11.19
-G_M48799_IG23:        ; bbWeight=4.27, gcrefRegs=0310 {r4 r8 r9}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[r9]
-            add     r1, r9, 8
-            ; byrRegs +[r1]
-            ldr     r2, [r9+0x04]
-                       ;; size=8 bbWeight=4.27 PerfScore 8.54
-G_M48799_IG24:        ; bbWeight=8, gcrefRegs=0110 {r4 r8}, byrefRegs=0002 {r1}, byref, isz
-            ; gcrRegs -[r9]
-            cmp     r8, 0
-            bne     SHORT G_M48799_IG26
-                       ;; size=6 bbWeight=8 PerfScore 16.00
-G_M48799_IG25:        ; bbWeight=3.73, gcrefRegs=0010 {r4}, byrefRegs=0002 {r1}, byref, isz
-            ; gcrRegs -[r8]
-            movs    r0, 0
-            mov     lr, 0
-            b       SHORT G_M48799_IG27
-                       ;; size=8 bbWeight=3.73 PerfScore 11.19
-G_M48799_IG26:        ; bbWeight=4.27, gcrefRegs=0110 {r4 r8}, byrefRegs=0002 {r1}, byref
-            ; gcrRegs +[r8]
-            add     r0, r8, 8
-            ; byrRegs +[r0]
-            ldr     lr, [r8+0x04]
-                       ;; size=8 bbWeight=4.27 PerfScore 8.54
-G_M48799_IG27:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0003 {r0 r1}, byref
-            ; gcrRegs -[r8]
...
  
+8 (+1.65%) : 83060.dasm - System.ComponentModel.Composition.ContractMismatchExceptionTests:Constructor3ValueAsMessageArgumentShouldSetMessageProperty():this (FullOpts)
@@ -10,50 +10,50 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <System.ComponentModel.Composition.ContractMismatchExceptionTests>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.ComponentModel.Composition.Expectations+<GetExceptionMessages>d__16>
-;  V02 loc1         [V02,T05] (  7, 10   )     ref  ->  [sp+0x10]  class-hnd EH-live spill-single-def <<unknown class>>
-;  V03 loc2         [V03,T04] (  5, 12   )     ref  ->   r5         class-hnd <System.String>
+;  V02 loc1         [V02,T07] (  7, 10   )     ref  ->  [sp+0x10]  class-hnd EH-live single-def <<unknown class>>
+;  V03 loc2         [V03,T06] (  5, 12   )     ref  ->   r6         class-hnd <System.String>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.ComponentModel.Composition.CompositionContractMismatchException>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (16) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06,T01] (  3, 24   )     ref  ->   r4         class-hnd exact "NewObj constructor temp" <System.Exception>
-;  V07 tmp2         [V07,T00] (  6, 44   )     ref  ->   r6         class-hnd exact "NewObj constructor temp" <System.ComponentModel.Composition.CompositionContractMismatchException>
-;  V08 tmp3         [V08,T06] (  4,  8   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.Composition.Expectations+<GetExceptionMessages>d__16>
-;  V09 tmp4         [V09,T03] (  2, 16   )     ref  ->   r7         class-hnd exact "dup spill" <System.String>
-;  V10 tmp5         [V10,T02] (  8, 18   )     ref  ->   r7        
-;  V11 tmp6         [V11,T07] (  2,  8   )     ref  ->   r7         class-hnd exact "impAppendStmt" <System.String>
+;  V07 tmp2         [V07,T00] (  6, 48   )     ref  ->   r7         class-hnd exact "NewObj constructor temp" <System.ComponentModel.Composition.CompositionContractMismatchException>
+;  V08 tmp3         [V08,T08] (  4,  8   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.Composition.Expectations+<GetExceptionMessages>d__16>
+;  V09 tmp4         [V09,T03] (  2, 16   )     ref  ->   r8         class-hnd exact "dup spill" <System.String>
+;  V10 tmp5         [V10,T02] (  8, 22   )     ref  ->   r8        
+;  V11 tmp6         [V11,T04] (  2, 16   )     ref  ->   r8         class-hnd exact "impAppendStmt" <System.String>
 ;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.String>
-;  V13 tmp8         [V13,T08] (  2,  8   )     ref  ->   r0         class-hnd exact "Inlining Arg" <System.String>
+;  V13 tmp8         [V13,T05] (  2, 16   )     ref  ->   r0         class-hnd exact "Inlining Arg" <System.String>
 ;* V14 tmp9         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "dup spill" <System.Object[]>
 ;* V15 tmp10        [V15    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V16 tmp11        [V16    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V18 tmp13        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V19 tmp14        [V19    ] (  2,  8   )     ref  ->  [sp+0x14]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
+;  V19 tmp14        [V19    ] (  2, 16   )     ref  ->  [sp+0x14]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
 ;* V20 tmp15        [V20    ] (  0,  0   )  struct ( 8) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
 ;* V21 tmp16        [V21    ] (  0,  0   )  struct ( 8) zero-ref    multireg-arg "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V22 tmp17        [V22    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V23 tmp18        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V24 tmp19        [V24    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V25 tmp20        [V25,T11] (  2,  8   )     int  ->   r5         "Inlining Arg"
+;  V25 tmp20        [V25,T12] (  2,  8   )     int  ->   r6         "Inlining Arg"
 ;  V26 tmp21        [V26,T09] (  2,  8   )   byref  ->   r4         "Inlining Arg"
 ;* V27 tmp22        [V27    ] (  0,  0   )  struct ( 8) zero-ref    multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V28 tmp23        [V28    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V29 tmp24        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V30 tmp25        [V30,T12] (  2,  8   )     int  ->   r7         "Inlining Arg"
-;  V31 tmp26        [V31,T10] (  2,  8   )   byref  ->   r6         "Inlining Arg"
+;  V30 tmp25        [V30,T13] (  2,  8   )     int  ->   r8         "Inlining Arg"
+;  V31 tmp26        [V31,T10] (  2,  8   )   byref  ->   r7         "Inlining Arg"
 ;* V32 tmp27        [V32    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V33 tmp28        [V33    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x4)" P-INDEP
 ;* V34 tmp29        [V34    ] (  0,  0   )   byref  ->  zero-ref    "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V35 tmp30        [V35    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x4)" P-INDEP
 ;* V36 tmp31        [V36    ] (  0,  0   )   byref  ->  zero-ref    "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V37 tmp32        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x4)" P-INDEP
-;  V38 tmp33        [V38,T13] (  2,  4   )   byref  ->   r2         "field V20._reference (fldOffset=0x0)" P-INDEP
+;  V38 tmp33        [V38,T11] (  2,  8   )   byref  ->   r2         "field V20._reference (fldOffset=0x0)" P-INDEP
 ;* V39 tmp34        [V39,T22] (  0,  0   )     int  ->  zero-ref    "field V20._length (fldOffset=0x4)" P-INDEP
 ;  V40 tmp35        [V40,T14] (  2,  4   )   byref  ->   r4         "field V21._reference (fldOffset=0x0)" P-INDEP
-;  V41 tmp36        [V41,T18] (  2,  4   )     int  ->   r5         "field V21._length (fldOffset=0x4)" P-INDEP
+;  V41 tmp36        [V41,T18] (  2,  4   )     int  ->   r6         "field V21._length (fldOffset=0x4)" P-INDEP
 ;* V42 tmp37        [V42    ] (  0,  0   )   byref  ->  zero-ref    "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V43 tmp38        [V43    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x4)" P-INDEP
 ;  V44 tmp39        [V44,T15] (  2,  4   )   byref  ->   r4         "field V23._reference (fldOffset=0x0)" P-INDEP
-;  V45 tmp40        [V45,T19] (  2,  4   )     int  ->   r5         "field V23._length (fldOffset=0x4)" P-INDEP
+;  V45 tmp40        [V45,T19] (  2,  4   )     int  ->   r6         "field V23._length (fldOffset=0x4)" P-INDEP
 ;* V46 tmp41        [V46    ] (  0,  0   )   byref  ->  zero-ref    "field V24._reference (fldOffset=0x0)" P-INDEP
 ;* V47 tmp42        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V24._length (fldOffset=0x4)" P-INDEP
 ;  V48 tmp43        [V48,T16] (  2,  4   )   byref  ->   r2         "field V27._reference (fldOffset=0x0)" P-INDEP
@@ -62,18 +62,18 @@
 ;  V51 tmp46        [V51,T21] (  2,  4   )     int  ->   r3         "field V28._length (fldOffset=0x4)" P-INDEP
 ;* V52 tmp47        [V52    ] (  0,  0   )   byref  ->  zero-ref    "field V29._reference (fldOffset=0x0)" P-INDEP
 ;* V53 tmp48        [V53    ] (  0,  0   )     int  ->  zero-ref    "field V29._length (fldOffset=0x4)" P-INDEP
-;  V54 PSPSym       [V54,T23] (  1,  1   )     int  ->  [sp+0x18]  do-not-enreg[V] "PSPSym"
+;  V54 PSPSym       [V54,T23] (  1,  1   )     int  ->  [sp+0x1C]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 28
+; Lcl frame size = 32
 
 G_M9079_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r10,r11,lr}
-            sub     sp, 28
-            add     r11, sp, 48
+            push    {r4,r5,r6,r7,r8,r10,r11,lr}
+            sub     sp, 32
+            add     r11, sp, 56
             movs    r1, 0
             str     r1, [sp+0x14]  // [V19 tmp14]
-            add     r1, sp, 56
-            str     r1, [sp+0x18]  // [V54 PSPSym]
+            add     r1, sp, 64
+            str     r1, [sp+0x1C]  // [V54 PSPSym]
                      ;; size=18 bbWeight=1 PerfScore 7.00
 G_M9079_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r0, 0xd1ff
@@ -101,35 +101,34 @@ G_M9079_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             blx     r3     // <unknown method>
             ; gcrRegs -[r4]
             ; gcr arg pop 0
-            mov     r4, r0
-            ; gcrRegs +[r4]
-            str     r4, [sp+0x10]
+            mov     r5, r0
+            ; gcrRegs +[r5]
+            str     r5, [sp+0x10]
             ; GC ptr vars +{V02}
                        ;; size=56 bbWeight=1 PerfScore 19.00
-G_M9079_IG03:        ; bbWeight=1, gcVars=00000020 {V02}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M9079_IG03:        ; bbWeight=1, gcVars=00000080 {V02}, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0]
-            mov     r0, r4
+            mov     r0, r5
             ; 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
-            beq     G_M9079_IG13
+            beq     G_M9079_IG12
                       ;; size=20 bbWeight=1 PerfScore 7.00
-G_M9079_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [sp+0x10]  // [V02 loc1]
+G_M9079_IG04:        ; bbWeight=4, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r5
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
             movt    r4, 0xd1ff
             ldr     r3, [r4]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
-            mov     r5, r0
-            ; gcrRegs +[r5]
+            mov     r6, r0
+            ; gcrRegs +[r6]
             movw    r0, 0xd1ff
             ; gcrRegs -[r0]
             movt    r0, 0xd1ff
@@ -154,25 +153,25 @@ G_M9079_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             blx     r3     // CORINFO_HELP_NEWSFAST
             ; gcrRegs +[r0]
             ; gcr arg pop 0
-            mov     r6, r0
-            ; gcrRegs +[r6]
-            mov     r0, r6
+            mov     r7, r0
+            ; gcrRegs +[r7]
+            mov     r0, r7
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            add     r0, r6, 8
+            add     r0, r7, 8
             ; byrRegs +[r0]
-            mov     r1, r5
+            mov     r1, r6
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            add     r0, r6, 16
+            add     r0, r7, 16
             ; byrRegs +[r0]
             mov     r1, r4
             ; gcrRegs +[r1]
@@ -181,28 +180,25 @@ G_M9079_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1 r4]
             ; byrRegs -[r0]
-            ldr     r7, [r6+0x08]
-            ; gcrRegs +[r7]
-            cmp     r7, 0
-            bne     SHORT G_M9079_IG09
-                       ;; size=122 bbWeight=4 PerfScore 164.00
-G_M9079_IG05:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r7]
+            ldr     r8, [r7+0x08]
+            ; gcrRegs +[r8]
+            cmp     r8, 0
+            bne     SHORT G_M9079_IG08
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs +[r0]
+            ; gcrRegs -[r8] +[r0]
             ; gcr arg pop 0
-            mov     r7, r0
-            ; gcrRegs +[r7]
-            mov     r0, r6
+            mov     r8, r0
+            ; gcrRegs +[r8]
+            mov     r0, r7
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // <unknown method>
-            ; gcrRegs -[r6]
+            ; gcrRegs -[r7]
             ; gcr arg pop 0
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -213,7 +209,7 @@ G_M9079_IG05:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, by
             add     r2, sp, 20 // [V19 tmp14]
             ; byrRegs +[r2]
             movs    r3, 1
-            mov     r1, r7
+            mov     r1, r8
             ; gcrRegs +[r1]
             movs    r0, 0
             ; gcrRegs -[r0]
@@ -221,17 +217,17 @@ G_M9079_IG05:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, by
             movt    lr, 0xd1ff
             ldr     lr, [lr]
             blx     lr     // <unknown method>
-            ; gcrRegs -[r1 r7] +[r0]
+            ; gcrRegs -[r1 r8] +[r0]
             ; byrRegs -[r2]
             ; gcr arg pop 0
-            mov     r7, r0
-            ; gcrRegs +[r7]
-            cmp     r7, 0
-            bne     SHORT G_M9079_IG08
-                       ;; size=76 bbWeight=2 PerfScore 54.00
-G_M9079_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0 r5 r7]
-            ldr     r0, [sp+0x10]  // [V02 loc1]
+            mov     r8, r0
+            ; gcrRegs +[r8]
+            cmp     r8, 0
+            bne     SHORT G_M9079_IG07
+                       ;; size=204 bbWeight=4 PerfScore 272.00
+G_M9079_IG05:        ; bbWeight=4, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0 r6 r8]
+            mov     r0, r5
             ; gcrRegs +[r0]
             movw    r4, 0xd1ff
             movt    r4, 0xd1ff
@@ -242,14 +238,14 @@ G_M9079_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             cmp     r0, 0
             bne     SHORT G_M9079_IG04
                        ;; size=18 bbWeight=4 PerfScore 28.00
-G_M9079_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            b       SHORT G_M9079_IG13
...
  
  
realworld.run.linux.arm.checked.mch
-10 (-3.33%) : 20191.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
@@ -8,43 +8,44 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00    ] (  5,  7.50)  struct ( 4) [sp+0x2C]  single-def <System.Net.Http.Headers.HeaderDescriptor>
+;  V00 arg0         [V00    ] (  5,  7.50)  struct ( 4) [sp+0x24]  single-def <System.Net.Http.Headers.HeaderDescriptor>
 ;  V01 arg1         [V01,T03] (  8, 13.50)     ref  ->   r4         class-hnd single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
-;  V02 loc0         [V02,T16] (  3,  0.50)     ref  ->  [sp+0x00]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V02 loc0         [V02,T17] (  3,  0.50)     ref  ->  [sp+0x00]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
 ;  V03 loc1         [V03    ] (  6,  5   )   ubyte  ->  [sp+0x04]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V04 loc2         [V04,T12] (  3,  1.50)     ref  ->   r0         class-hnd single-def <<unknown class>>
+;  V04 loc2         [V04,T13] (  3,  1.50)     ref  ->   r0         class-hnd single-def <<unknown class>>
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V07 loc5         [V07,T11] (  4,  1.62)     ref  ->   r2         class-hnd exact <System.String>
+;  V07 loc5         [V07,T12] (  4,  1.62)     ref  ->   r2         class-hnd exact <System.String>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T10] (  2,  2   )     ref  ->   r2         single-def "CASTCLASS eval op1"
+;  V09 tmp1         [V09,T11] (  2,  2   )     ref  ->   r2         single-def "CASTCLASS eval op1"
 ;* V10 tmp2         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.String>
 ;* V11 tmp3         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
-;* V12 tmp4         [V12,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V12 tmp4         [V12,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V13 tmp5         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V14 tmp6         [V14,T06] (  5,  7.50)     ref  ->  [sp+0x2C]  do-not-enreg[] single-def "field V00._descriptor (fldOffset=0x0)" P-DEP
+;  V14 tmp6         [V14,T06] (  5,  7.50)     ref  ->  [sp+0x24]  do-not-enreg[] single-def "field V00._descriptor (fldOffset=0x0)" P-DEP
 ;  V15 tmp7         [V15,T02] (  4, 12.50)     ref  ->   r5         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V16 tmp8         [V16,T04] (  2,  8   )     ref  ->   r2         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V17 tmp9         [V17,T00] (  6, 20.50)     int  ->   r7         "field V05._index (fldOffset=0x8)" P-INDEP
-;  V18 tmp10        [V18,T07] (  3,  8.50)     int  ->   r6         "field V05._version (fldOffset=0xc)" P-INDEP
-;  V19 tmp11        [V19,T13] (  3,  1.50)     ref  ->   r5         single-def "field V11._list (fldOffset=0x0)" P-INDEP
+;  V18 tmp10        [V18,T09] (  2,  4.50)     int  ->   r6         "field V05._version (fldOffset=0xc)" P-INDEP
+;  V19 tmp11        [V19,T14] (  3,  1.50)     ref  ->   r5         single-def "field V11._list (fldOffset=0x0)" P-INDEP
 ;* V20 tmp12        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._current (fldOffset=0x4)" P-INDEP
-;* V21 tmp13        [V21,T17] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
-;  V22 tmp14        [V22,T14] (  2,  1   )     int  ->   r6         "field V11._version (fldOffset=0xc)" P-INDEP
+;* V21 tmp13        [V21,T18] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
+;  V22 tmp14        [V22,T15] (  2,  1   )     int  ->   r6         "field V11._version (fldOffset=0xc)" P-INDEP
 ;  V23 tmp15        [V23,T01] (  3, 24   )     ref  ->   r0         "arr expr"
-;  V24 PSPSym       [V24,T15] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
-;  V25 cse0         [V25,T05] (  3, 12   )     int  ->   r8         "CSE - aggressive"
-;  V26 cse1         [V26,T09] (  4,  3   )     ref  ->   r5         "CSE - aggressive"
+;  V24 PSPSym       [V24,T16] (  1,  1   )     int  ->  [sp+0x08]  do-not-enreg[V] "PSPSym"
+;  V25 cse0         [V25,T08] (  2,  8   )     int  ->   r0         "CSE - aggressive"
+;  V26 cse1         [V26,T05] (  2,  8   )     int  ->   r0         "CSE - aggressive"
+;  V27 cse2         [V27,T10] (  4,  3   )     ref  ->   r5         "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 12
 
 G_M53769_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r0}
-            push    {r4,r5,r6,r7,r8,r11,lr}
-            sub     sp, 16
-            add     r11, sp, 36
-            add     r0, sp, 48
-            str     r0, [sp+0x0C]  // [V24 PSPSym]
+            push    {r4,r5,r6,r7,r11,lr}
+            sub     sp, 12
+            add     r11, sp, 28
+            add     r0, sp, 40
+            str     r0, [sp+0x08]  // [V24 PSPSym]
             mov     r4, r1
             ; gcrRegs +[r4]
                        ;; size=18 bbWeight=1 PerfScore 7.00
@@ -54,7 +55,7 @@ G_M53769_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             movs    r1, 0
             str     r1, [sp+0x04]  // [V03 loc1]
                        ;; size=6 bbWeight=1 PerfScore 3.00
-G_M53769_IG03:        ; bbWeight=1, gcVars=00010000 {V02}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M53769_IG03:        ; bbWeight=1, gcVars=00020000 {V02}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x04]  // [V03 loc1]
             cmp     r1, 0
             bne     SHORT G_M53769_IG06
@@ -75,7 +76,7 @@ G_M53769_IG03:        ; bbWeight=1, gcVars=00010000 {V02}, gcrefRegs=0010 {r4},
             ldr     r5, [r4+0x04]
             ; gcrRegs +[r5]
             cmp     r5, 0
-            beq     SHORT G_M53769_IG14
+            beq     SHORT G_M53769_IG13
                         ;; size=44 bbWeight=1 PerfScore 16.00
 G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             mov     r1, r5
@@ -88,24 +89,24 @@ G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}
             ; gcrRegs -[r1] +[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     SHORT G_M53769_IG11
+            beq     SHORT G_M53769_IG10
             mov     r5, r0
             ldr     r6, [r5+0x0C]
             movs    r7, 0
                        ;; size=30 bbWeight=0.50 PerfScore 5.50
 G_M53769_IG05:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
-            ldr     r8, [r5+0x0C]
-            cmp     r6, r8
-            bne     SHORT G_M53769_IG07
+            ldr     r0, [r5+0x0C]
+            cmp     r6, r0
+            bne     SHORT G_M53769_IG09
             ldr     r0, [r5+0x08]
             cmp     r7, r0
-            bhs     SHORT G_M53769_IG08
+            bhs     SHORT G_M53769_IG07
             ldr     r0, [r5+0x04]
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x04]
             cmp     r7, r1
-            bhs     SHORT G_M53769_IG09
+            bhs     SHORT G_M53769_IG08
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -116,7 +117,7 @@ G_M53769_IG05:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             mov     r0, r4
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
-            ldr     r1, [sp+0x2C] // [V14 tmp6]
+            ldr     r1, [sp+0x24]    // [V14 tmp6]
             ; gcrRegs +[r1]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -125,7 +126,7 @@ G_M53769_IG05:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0-r2]
             ; gcr arg pop 0
             b       SHORT G_M53769_IG05
-                      ;; size=48 bbWeight=4 PerfScore 84.00
+                     ;; size=46 bbWeight=4 PerfScore 84.00
 G_M53769_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r4-r5]
             movw    r3, 0xd1ff
@@ -137,22 +138,18 @@ G_M53769_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
                        ;; size=14 bbWeight=0 PerfScore 0.00
 G_M53769_IG07:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4]
-            cmp     r6, r8
-            bne     SHORT G_M53769_IG10
-                       ;; size=4 bbWeight=4 PerfScore 8.00
-G_M53769_IG08:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             movs    r0, 0
             str     r0, [r4+0x04]
-            b       SHORT G_M53769_IG14
+            b       SHORT G_M53769_IG13
                         ;; size=6 bbWeight=4 PerfScore 12.00
-G_M53769_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53769_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r4]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M53769_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53769_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -160,7 +157,7 @@ G_M53769_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M53769_IG11:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+G_M53769_IG10:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4-r5]
             mov     r2, r5
             ; gcrRegs +[r2]
@@ -168,17 +165,17 @@ G_M53769_IG11:        ; bbWeight=0.50, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
             cmp     r0, r1
-            beq     SHORT G_M53769_IG13
+            beq     SHORT G_M53769_IG12
                        ;; size=16 bbWeight=0.50 PerfScore 3.00
-G_M53769_IG12:        ; bbWeight=0.12, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M53769_IG11:        ; bbWeight=0.12, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r2 r5]
             movs    r2, 0
                        ;; size=2 bbWeight=0.12 PerfScore 0.12
-G_M53769_IG13:        ; bbWeight=0.50, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, byref, isz
+G_M53769_IG12:        ; bbWeight=0.50, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r2]
             mov     r0, r4
             ; gcrRegs +[r0]
-            ldr     r1, [sp+0x2C] // [V14 tmp6]
+            ldr     r1, [sp+0x24]    // [V14 tmp6]
             ; gcrRegs +[r1]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -186,15 +183,15 @@ G_M53769_IG13:        ; bbWeight=0.50, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}
             blx     r3     // System.Net.Http.Headers.HttpHeaders:ParseSingleRawHeaderValue(System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo,System.Net.Http.Headers.HeaderDescriptor,System.String)
             ; gcrRegs -[r0-r2]
             ; gcr arg pop 0
-            b       SHORT G_M53769_IG08
+            b       SHORT G_M53769_IG07
                       ;; size=18 bbWeight=0.50 PerfScore 3.50
-G_M53769_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M53769_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r4]
             ldrb    r0, [sp+0x04]  // [V03 loc1]
             cmp     r0, 0
-            beq     SHORT G_M53769_IG16
+            beq     SHORT G_M53769_IG15
                         ;; size=8 bbWeight=1 PerfScore 3.00
-G_M53769_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M53769_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ldr     r0, [sp] // [V02 loc0]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
@@ -204,38 +201,36 @@ G_M53769_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M53769_IG16:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            add     sp, 16
-            pop     {r4,r5,r6,r7,r8,r11,lr}
+G_M53769_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+            add     sp, 12
+            pop     {r4,r5,r6,r7,r11,lr}
             add     sp, 4
             bx      lr
                        ;; size=10 bbWeight=1 PerfScore 4.00
-G_M53769_IG17:        ; bbWeight=0, gcVars=00010000 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
-            ; GC ptr vars +{V02 V16}
-            push    {r4,r5,r6,r7,r8,r11,lr}
-            sub     sp, 12
+G_M53769_IG16:        ; bbWeight=0, gcVars=00020000 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+            ; GC ptr vars +{V02 V17}
+            push    {r2,r3,r4,r5,r6,r7,r11,lr}
             add     r3, r11, 12
-            str     r3, [sp+0x04]
-                       ;; size=12 bbWeight=0 PerfScore 0.00
-G_M53769_IG18:        ; bbWeight=0, gcVars=00010000 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldrb    r0, [r11-0x20] // [V03 loc1]
+            str     r3, [sp]
+                       ;; size=10 bbWeight=0 PerfScore 0.00
+G_M53769_IG17:        ; bbWeight=0, gcVars=00020000 {V02}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldrb    r0, [r11-0x18] // [V03 loc1]
             cmp     r0, 0
-            beq     SHORT G_M53769_IG19
-            ldr     r0, [r11-0x24] // [V02 loc0]
+            beq     SHORT G_M53769_IG18
+            ldr     r0, [r11-0x1C] // [V02 loc0]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
-            ; GC ptr vars -{V02 V16}
+            ; GC ptr vars -{V02 V17}
             blx     r3       // <unknown method>
             ; gcrRegs -[r0]
...
  
-10 (-2.24%) : 5975.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
@@ -10,8 +10,8 @@
 ;
 ;  V00 this         [V00,T09] (  3,  4   )     ref  ->   r5         this class-hnd single-def <System.Threading.Tasks.Task>
 ;  V01 arg1         [V01,T08] (  5,  4.50)     ref  ->   r4         class-hnd single-def <System.Threading.Tasks.Task+ContingentProperties>
-;  V02 loc0         [V02,T11] (  5,  3.50)     ref  ->   r6         class-hnd single-def <<unknown class>>
-;  V03 loc1         [V03,T15] (  3,  0.50)     ref  ->  [sp+0x00]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V02 loc0         [V02,T12] (  5,  3.50)     ref  ->   r6         class-hnd single-def <<unknown class>>
+;  V03 loc1         [V03,T16] (  3,  0.50)     ref  ->  [sp+0x00]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V04 loc2         [V04    ] (  6,  2.50)   ubyte  ->  [sp+0x04]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Threading.Tasks.Task>
@@ -20,19 +20,20 @@
 ;* V09 tmp1         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V10 tmp2         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V11 tmp3         [V11,T04] (  3, 12   )     ref  ->   r9         class-hnd "Inlining Arg" <System.AggregateException>
-;* V12 tmp4         [V12,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V12 tmp4         [V12,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V13 tmp5         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V14 tmp6         [V14,T03] (  4, 12.50)     ref  ->   r6         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V15 tmp7         [V15,T02] (  5, 16   )     ref  ->   r9         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V16 tmp8         [V16,T00] (  6, 20.50)     int  ->   r8         "field V05._index (fldOffset=0x8)" P-INDEP
-;  V17 tmp9         [V17,T06] (  3,  8.50)     int  ->   r7         "field V05._version (fldOffset=0xc)" P-INDEP
-;  V18 tmp10        [V18,T12] (  3,  1.50)     ref  ->   r6         single-def "field V09._list (fldOffset=0x0)" P-INDEP
+;  V17 tmp9         [V17,T11] (  2,  4.50)     int  ->   r7         "field V05._version (fldOffset=0xc)" P-INDEP
+;  V18 tmp10        [V18,T13] (  3,  1.50)     ref  ->   r6         single-def "field V09._list (fldOffset=0x0)" P-INDEP
 ;* V19 tmp11        [V19    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V09._current (fldOffset=0x4)" P-INDEP
-;* V20 tmp12        [V20,T16] (  0,  0   )     int  ->  zero-ref    "field V09._index (fldOffset=0x8)" P-INDEP
-;  V21 tmp13        [V21,T13] (  2,  1   )     int  ->   r7         "field V09._version (fldOffset=0xc)" P-INDEP
+;* V20 tmp12        [V20,T17] (  0,  0   )     int  ->  zero-ref    "field V09._index (fldOffset=0x8)" P-INDEP
+;  V21 tmp13        [V21,T14] (  2,  1   )     int  ->   r7         "field V09._version (fldOffset=0xc)" P-INDEP
 ;  V22 tmp14        [V22,T01] (  3, 24   )     ref  ->   r0         "arr expr"
-;  V23 PSPSym       [V23,T14] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
-;  V24 cse0         [V24,T05] (  3, 12   )     int  ->   r9         "CSE - aggressive"
+;  V23 PSPSym       [V23,T15] (  1,  1   )     int  ->  [sp+0x0C]  do-not-enreg[V] "PSPSym"
+;  V24 cse0         [V24,T07] (  2,  8   )     int  ->   r0         "CSE - aggressive"
+;  V25 cse1         [V25,T05] (  2,  8   )     int  ->   r0         "CSE - aggressive"
 ;
 ; Lcl frame size = 16
 
@@ -66,7 +67,7 @@ G_M37406_IG04:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ; gcrRegs +[r6]
             dmb     15
             cmp     r6, 0
-            beq     G_M37406_IG21
+            beq     G_M37406_IG20
                         ;; size=24 bbWeight=1 PerfScore 8.00
 G_M37406_IG05:        ; bbWeight=0.50, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref
             str     r6, [sp]   // [V03 loc1]
@@ -74,7 +75,7 @@ G_M37406_IG05:        ; bbWeight=0.50, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000
             movs    r1, 0
             str     r1, [sp+0x04]  // [V04 loc2]
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M37406_IG06:        ; bbWeight=0.50, gcVars=00008000 {V03}, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M37406_IG06:        ; bbWeight=0.50, gcVars=00010000 {V03}, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x04] // [V04 loc2]
             cmp     r1, 0
             bne     G_M37406_IG15
@@ -96,17 +97,17 @@ G_M37406_IG06:        ; bbWeight=0.50, gcVars=00008000 {V03}, gcrefRegs=0070 {r4
             mov     r8, 0
                        ;; size=46 bbWeight=0.50 PerfScore 7.50
 G_M37406_IG07:        ; bbWeight=4, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ldr     r9, [r6+0x0C]
-            cmp     r7, r9
-            bne     SHORT G_M37406_IG16
+            ldr     r0, [r6+0x0C]
+            cmp     r7, r0
+            bne     SHORT G_M37406_IG17
             ldr     r0, [r6+0x08]
             cmp     r8, r0
-            bhs     G_M37406_IG19
+            bhs     SHORT G_M37406_IG18
             ldr     r0, [r6+0x04]
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x04]
             cmp     r8, r1
-            bhs     SHORT G_M37406_IG17
+            bhs     SHORT G_M37406_IG16
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -122,7 +123,7 @@ G_M37406_IG07:        ; bbWeight=4, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             bne     SHORT G_M37406_IG08
             movs    r0, 0
             b       SHORT G_M37406_IG09
-                      ;; size=58 bbWeight=4 PerfScore 84.00
+                     ;; size=54 bbWeight=4 PerfScore 84.00
 G_M37406_IG08:        ; bbWeight=4, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref
             movs    r0, 1
                        ;; size=2 bbWeight=4 PerfScore 4.00
@@ -218,20 +219,13 @@ G_M37406_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M37406_IG16:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r4]
-            cmp     r7, r9
-            bne     SHORT G_M37406_IG18
-            b       SHORT G_M37406_IG19
-                       ;; size=6 bbWeight=4 PerfScore 12.00
-G_M37406_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r4]
+G_M37406_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M37406_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M37406_IG17:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -239,11 +233,11 @@ G_M37406_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M37406_IG19:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M37406_IG18:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4]
             ldrb    r0, [sp+0x04]  // [V04 loc2]
             cmp     r0, 0
-            beq     SHORT G_M37406_IG20
+            beq     SHORT G_M37406_IG19
             ldr     r0, [sp]    // [V03 loc1]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
@@ -253,40 +247,40 @@ G_M37406_IG19:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=20 bbWeight=0.50 PerfScore 3.50
-G_M37406_IG20:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
+G_M37406_IG19:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             movs    r3, 0
             dmb     15
             str     r3, [r4+0x14]
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M37406_IG21:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M37406_IG20:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[r4]
             add     sp, 16
             pop     {r4,r5,r6,r7,r8,r9,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M37406_IG22:        ; bbWeight=0, gcVars=00008000 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
-            ; GC ptr vars +{V03 V15}
+G_M37406_IG21:        ; bbWeight=0, gcVars=00010000 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+            ; GC ptr vars +{V03 V16}
             push    {r2,r3,r4,r5,r6,r7,r8,r9,r11,lr}
             add     r3, r11, 8
             str     r3, [sp+0x04]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M37406_IG23:        ; bbWeight=0, gcVars=00008000 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M37406_IG22:        ; bbWeight=0, gcVars=00010000 {V03}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r0, [r11-0x24]    // [V04 loc2]
             cmp     r0, 0
-            beq     SHORT G_M37406_IG24
+            beq     SHORT G_M37406_IG23
             ldr     r0, [r11-0x28]  // [V03 loc1]
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
-            ; GC ptr vars -{V03 V15}
+            ; GC ptr vars -{V03 V16}
             blx     r3       // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=22 bbWeight=0 PerfScore 0.00
-G_M37406_IG24:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
+G_M37406_IG23:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, funclet epilog, nogc
             pop     {r2,r3,r4,r5,r6,r7,r8,r9,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 446, prolog size 18, PerfScore 272.00, instruction count 156, allocated bytes for code 446 (MethodHash=88f36de1) for method System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
+; Total bytes of code 436, prolog size 18, PerfScore 260.00, instruction count 153, allocated bytes for code 436 (MethodHash=88f36de1) for method System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -298,7 +292,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 205 (0x000cd) Actual length = 410 (0x00019a)
+  Function Length   : 200 (0x000c8) Actual length = 400 (0x000190)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
@@ -325,4 +319,4 @@ Unwind Info:
 
 *************** EH table for System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M37406_IG06..G_M37406_IG19) handled by [G_M37406_IG22..END) (fault)
+EH#0: try [G_M37406_IG06..G_M37406_IG18) handled by [G_M37406_IG21..END) (fault)
  
-6 (-1.82%) : 35442.dasm - System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
@@ -8,10 +8,10 @@
 ; 0 inlinees with PGO data; 11 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T18] (  3,  3   )     int  ->   r4         single-def
-;  V01 arg1         [V01,T19] (  3,  3   )     int  ->   r5         single-def
+;  V00 arg0         [V00,T19] (  3,  3   )     int  ->   r4         single-def
+;  V01 arg1         [V01,T20] (  3,  3   )     int  ->   r5         single-def
 ;  V02 loc0         [V02    ] (  4, 17   )  struct ( 8) [sp+0x10]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[ushort]>
-;  V03 loc1         [V03,T20] (  4, 11   )     int  ->   r5        
+;  V03 loc1         [V03,T21] (  4, 11   )     int  ->   r5        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V05 loc3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
@@ -19,14 +19,14 @@
 ;  V08 tmp1         [V08,T10] (  7, 84   )     ref  ->   r4         class-hnd single-def "non-inline candidate call" <<unknown class>>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V10 tmp3         [V10    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V11 tmp4         [V11,T28] (  3,  0   )     ref  ->   r0         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-;  V12 tmp5         [V12,T22] (  2,  4   )     ref  ->   r4         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V11 tmp4         [V11,T29] (  3,  0   )     ref  ->   r0         class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
+;  V12 tmp5         [V12,T23] (  2,  4   )     ref  ->   r4         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V13 tmp6         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V14 tmp7         [V14    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V15 tmp8         [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V16 tmp9         [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V17 tmp10        [V17,T08] (  2, 16   )     int  ->  [sp+0x0C]  spill-single-def "Inlining Arg"
-;  V18 tmp11        [V18,T07] (  2, 16   )   byref  ->  [sp+0x00]  spill-single-def "Inlining Arg"
+;  V17 tmp10        [V17,T07] (  2, 16   )     int  ->  [sp+0x0C]  spill-single-def "Inlining Arg"
+;  V18 tmp11        [V18,T06] (  2, 16   )   byref  ->  [sp+0x00]  spill-single-def "Inlining Arg"
 ;  V19 tmp12        [V19,T12] (  2,  8   )   ubyte  ->   r0         "Inline return value spill temp"
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V21 tmp14        [V21    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -38,30 +38,30 @@
 ;* V27 tmp20        [V27    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V28 tmp21        [V28    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V29 tmp22        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V30 tmp23        [V30,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V30 tmp23        [V30,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V31 tmp24        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V32 tmp25        [V32,T23] (  3, 17   )     ref  ->   r0         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V33 tmp26        [V33,T21] (  4, 18   )     int  ->   r3         "Inline stloc first use temp"
-;  V34 tmp27        [V34,T17] (  3, 20   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V32 tmp25        [V32,T24] (  3, 17   )     ref  ->   r0         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V33 tmp26        [V33,T22] (  4, 18   )     int  ->   r3         "Inline stloc first use temp"
+;  V34 tmp27        [V34,T18] (  3, 20   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V35 tmp28        [V35    ] (  3,  3   )  struct ( 8) [sp+0x04]  do-not-enreg[XS] addr-exposed "Reverse Pinvoke FrameVar"
 ;  V36 tmp29        [V36    ] (  3, 13   )   byref  ->  [sp+0x10]  do-not-enreg[X] addr-exposed "field V02._reference (fldOffset=0x0)" P-DEP
 ;  V37 tmp30        [V37    ] (  3, 13   )     int  ->  [sp+0x14]  do-not-enreg[X] addr-exposed "field V02._length (fldOffset=0x4)" P-DEP
-;  V38 tmp31        [V38,T02] (  4, 25   )     ref  ->   r4         single-def "field V04._list (fldOffset=0x0)" P-INDEP
-;  V39 tmp32        [V39,T03] (  4, 20   )     ref  ->   r0         "field V04._current (fldOffset=0x4)" P-INDEP
+;  V38 tmp31        [V38,T03] (  4, 25   )     ref  ->   r4         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V39 tmp32        [V39,T02] (  4, 20   )     ref  ->   r0         "field V04._current (fldOffset=0x4)" P-INDEP
 ;  V40 tmp33        [V40,T00] (  6, 41   )     int  ->   r7         "field V04._index (fldOffset=0x8)" P-INDEP
-;  V41 tmp34        [V41,T05] (  3, 17   )     int  ->   r6         "field V04._version (fldOffset=0xc)" P-INDEP
-;  V42 tmp35        [V42,T13] (  2,  8   )   byref  ->   r8         "field V09._reference (fldOffset=0x0)" P-INDEP
-;  V43 tmp36        [V43,T15] (  2,  8   )     int  ->   r9         "field V09._length (fldOffset=0x4)" P-INDEP
+;  V41 tmp34        [V41,T13] (  2,  9   )     int  ->   r6         "field V04._version (fldOffset=0xc)" P-INDEP
+;  V42 tmp35        [V42,T14] (  2,  8   )   byref  ->   r8         "field V09._reference (fldOffset=0x0)" P-INDEP
+;  V43 tmp36        [V43,T16] (  2,  8   )     int  ->   r9         "field V09._length (fldOffset=0x4)" P-INDEP
 ;* V44 tmp37        [V44    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V45 tmp38        [V45    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x4)" P-INDEP
-;  V46 tmp39        [V46,T24] (  3,  3   )     ref  ->   r4         single-def "field V13._list (fldOffset=0x0)" P-INDEP
+;  V46 tmp39        [V46,T25] (  3,  3   )     ref  ->   r4         single-def "field V13._list (fldOffset=0x0)" P-INDEP
 ;* V47 tmp40        [V47    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V13._current (fldOffset=0x4)" P-INDEP
-;* V48 tmp41        [V48,T26] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
-;  V49 tmp42        [V49,T25] (  2,  2   )     int  ->   r6         "field V13._version (fldOffset=0xc)" P-INDEP
+;* V48 tmp41        [V48,T27] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
+;  V49 tmp42        [V49,T26] (  2,  2   )     int  ->   r6         "field V13._version (fldOffset=0xc)" P-INDEP
 ;  V50 tmp43        [V50,T11] (  3, 12   )   byref  ->   r1         "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V51 tmp44        [V51,T06] (  4, 16   )     int  ->   r3         "field V14._length (fldOffset=0x4)" P-INDEP
-;  V52 tmp45        [V52,T14] (  2,  8   )   byref  ->   r1         "field V15._reference (fldOffset=0x0)" P-INDEP
-;  V53 tmp46        [V53,T16] (  2,  8   )     int  ->   r3         "field V15._length (fldOffset=0x4)" P-INDEP
+;  V51 tmp44        [V51,T05] (  4, 16   )     int  ->   r3         "field V14._length (fldOffset=0x4)" P-INDEP
+;  V52 tmp45        [V52,T15] (  2,  8   )   byref  ->   r1         "field V15._reference (fldOffset=0x0)" P-INDEP
+;  V53 tmp46        [V53,T17] (  2,  8   )     int  ->   r3         "field V15._length (fldOffset=0x4)" P-INDEP
 ;* V54 tmp47        [V54    ] (  0,  0   )   byref  ->  zero-ref    "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V55 tmp48        [V55    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x4)" P-INDEP
 ;* V56 tmp49        [V56    ] (  0,  0   )   byref  ->  zero-ref    "field V20._reference (fldOffset=0x0)" P-INDEP
@@ -77,8 +77,9 @@
 ;* V66 tmp59        [V66    ] (  0,  0   )   byref  ->  zero-ref    "field V29._reference (fldOffset=0x0)" P-INDEP
 ;* V67 tmp60        [V67    ] (  0,  0   )     int  ->  zero-ref    "field V29._length (fldOffset=0x4)" P-INDEP
 ;  V68 tmp61        [V68,T01] (  3, 48   )     ref  ->   r0         "arr expr"
-;  V69 PSPSym       [V69,T27] (  1,  1   )     int  ->  [sp+0x18]  do-not-enreg[V] "PSPSym"
-;  V70 cse0         [V70,T04] (  3, 24   )     int  ->   r8         "CSE - aggressive"
+;  V69 PSPSym       [V69,T28] (  1,  1   )     int  ->  [sp+0x18]  do-not-enreg[V] "PSPSym"
+;  V70 cse0         [V70,T09] (  2, 16   )     int  ->   r0         "CSE - aggressive"
+;  V71 cse1         [V71,T04] (  2, 16   )     int  ->   r0         "CSE - aggressive"
 ;
 ; Lcl frame size = 28
 
@@ -110,7 +111,7 @@ G_M58652_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcr arg pop 0
             ldrb    r0, [r5+0x04]
             cmp     r0, 0
-            beq     SHORT G_M58652_IG11
+            beq     SHORT G_M58652_IG10
             ldr     r4, [r5]
             ; gcrRegs +[r4]
             ldr     r6, [r4+0x0C]
@@ -161,15 +162,15 @@ G_M58652_IG06:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byr
             ; byrRegs -[r0-r1 r8]
             ; gcr arg pop 0
             cmp     r0, 0
-            bne     SHORT G_M58652_IG14
+            bne     SHORT G_M58652_IG13
                         ;; size=24 bbWeight=4 PerfScore 40.00
 G_M58652_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r8, [r4+0x0C]
-            cmp     r6, r8
-            bne     SHORT G_M58652_IG10
+            ldr     r0, [r4+0x0C]
+            cmp     r6, r0
+            bne     SHORT G_M58652_IG09
             ldr     r0, [r4+0x08]
             cmp     r7, r0
-            bhs     SHORT G_M58652_IG11
+            bhs     SHORT G_M58652_IG10
             ldr     r0, [r4+0x04]
             ; gcrRegs +[r0]
             ldr     r3, [r0+0x04]
@@ -184,7 +185,7 @@ G_M58652_IG07:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ; byrRegs -[r0]
             adds    r7, r7, 1
             b       SHORT G_M58652_IG04
-                      ;; size=32 bbWeight=8 PerfScore 120.00
+                        ;; size=30 bbWeight=8 PerfScore 120.00
 G_M58652_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0 r4]
             movw    r3, 0xd1ff
@@ -201,10 +202,6 @@ G_M58652_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
 G_M58652_IG10:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            cmp     r6, r8
-            bne     SHORT G_M58652_IG09
-                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M58652_IG11:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ldr     r4, [r5]
             ; gcrRegs +[r4]
             add     r0, sp, 16 // [V02 loc0]
@@ -225,9 +222,9 @@ G_M58652_IG11:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldr     r3, [r4+0x08]
             ldr     lr, [r0+0x04]
             cmp     lr, r3
-            bls     SHORT G_M58652_IG13
+            bls     SHORT G_M58652_IG12
                        ;; size=36 bbWeight=8 PerfScore 120.00
-G_M58652_IG12:        ; bbWeight=1, gcrefRegs=0013 {r0 r1 r4}, byrefRegs=0000 {}, byref, isz
+G_M58652_IG11:        ; bbWeight=1, gcrefRegs=0013 {r0 r1 r4}, byrefRegs=0000 {}, byref, isz
             add     lr, r3, 1
             str     lr, [r4+0x08]
             adds    r0, 8
@@ -240,9 +237,9 @@ G_M58652_IG12:        ; bbWeight=1, gcrefRegs=0013 {r0 r1 r4}, byrefRegs=0000 {}
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1 r4]
             ; byrRegs -[r0]
-            b       SHORT G_M58652_IG14
+            b       SHORT G_M58652_IG13
                       ;; size=26 bbWeight=1 PerfScore 9.00
-G_M58652_IG13:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref
+G_M58652_IG12:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r1 r4]
             mov     r0, r4
             ; gcrRegs +[r0]
@@ -253,24 +250,24 @@ G_M58652_IG13:        ; bbWeight=1, gcrefRegs=0012 {r1 r4}, byrefRegs=0000 {}, b
             ; gcrRegs -[r0-r1 r4]
             ; gcr arg pop 0
                        ;; size=14 bbWeight=1 PerfScore 5.00
-G_M58652_IG14:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M58652_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             add     r0, sp, 4 // [V35 tmp28]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_JIT_REVERSE_PINVOKE_EXIT
             ; gcr arg pop 0
                        ;; size=12 bbWeight=1 PerfScore 4.00
-G_M58652_IG15:        ; bbWeight=1, epilog, nogc, extend
+G_M58652_IG14:        ; bbWeight=1, epilog, nogc, extend
             add     sp, 28
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M58652_IG16:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
+G_M58652_IG15:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, funclet prolog, nogc
             ; gcrRegs +[r0]
             push    {r3,r4,r5,r6,r7,r8,r9,r10,r11,lr}
             add     r3, r11, 8
             str     r3, [sp]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M58652_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
+G_M58652_IG16:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
             ldr     r3, [r0]
             ldr     r3, [r3+0x2C]
             ldr     r3, [r3+0x04]
@@ -282,14 +279,14 @@ G_M58652_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byr
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            movw    r0, LOW ADDRESS G_M58652_IG14
-            movt    r0, HIGH ADDRESS G_M58652_IG14
+            movw    r0, LOW ADDRESS G_M58652_IG13
+            movt    r0, HIGH ADDRESS G_M58652_IG13
                      ;; size=28 bbWeight=0 PerfScore 0.00
-G_M58652_IG18:        ; bbWeight=0, funclet epilog, nogc, extend
+G_M58652_IG17:        ; bbWeight=0, funclet epilog, nogc, extend
             pop     {r3,r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 330, prolog size 22, PerfScore 414.00, instruction count 128, allocated bytes for code 330 (MethodHash=943d1ae3) for method System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
+; Total bytes of code 324, prolog size 22, PerfScore 398.00, instruction count 126, allocated bytes for code 324 (MethodHash=943d1ae3) for method System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -301,7 +298,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 144 (0x00090) Actual length = 288 (0x000120)
+  Function Length   : 141 (0x0008d) Actual length = 282 (0x00011a)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
@@ -329,4 +326,4 @@ Unwind Info:
 
 *************** EH table for System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int)
 1 EH table entries, 0 duplicate clauses, 0 cloned finallys, 1 total EH entries reported to VM
-EH#0: try [G_M58652_IG03..G_M58652_IG14) handled by [G_M58652_IG16..END) (class: 2000051)
+EH#0: try [G_M58652_IG03..G_M58652_IG13) handled by [G_M58652_IG15..END) (class: 2000051)
  
+2 (+0.45%) : 36047.dasm - System.Management.Automation.Internal.PipelineProcessor:Clean():this (FullOpts)
@@ -9,35 +9,36 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T07] ( 13, 13   )     ref  ->  [sp+0x10]  this class-hnd EH-live single-def <System.Management.Automation.Internal.PipelineProcessor>
-;  V01 loc0         [V01,T13] (  3,  1   )     ref  ->  [sp+0x0C]  class-hnd exact EH-live spill-single-def <<unknown class>>
-;  V02 loc1         [V02,T14] (  3,  1   )   ubyte  ->  [sp+0x1C]  EH-live single-def
+;  V01 loc0         [V01,T14] (  3,  1   )     ref  ->  [sp+0x0C]  class-hnd exact EH-live spill-single-def <<unknown class>>
+;  V02 loc1         [V02,T15] (  3,  1   )   ubyte  ->  [sp+0x1C]  EH-live single-def
 ;* V03 loc2         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Management.Automation.CommandProcessorBase]>
-;  V04 loc3         [V04,T09] (  3,  4   )     ref  ->  [sp+0x08]  do-not-enreg[Z] class-hnd EH-live <System.Management.Automation.CommandProcessorBase>
+;  V04 loc3         [V04,T10] (  3,  4   )     ref  ->  [sp+0x08]  do-not-enreg[Z] class-hnd EH-live <System.Management.Automation.CommandProcessorBase>
 ;* V05 loc4         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
 ;* V06 loc5         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
 ;* V07 loc6         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <<unknown class>>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T17] (  4,  0   )     ref  ->   r4         class-hnd "impSpillSpecialSideEff" <<unknown class>>
-;  V10 tmp2         [V10,T18] (  2,  0   )     ref  ->   r1         class-hnd "impSpillSpecialSideEff" <<unknown class>>
-;  V11 tmp3         [V11,T10] (  2,  4   )     ref  ->   r5         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V09 tmp1         [V09,T18] (  4,  0   )     ref  ->   r6         class-hnd "impSpillSpecialSideEff" <<unknown class>>
+;  V10 tmp2         [V10,T19] (  2,  0   )     ref  ->   r1         class-hnd "impSpillSpecialSideEff" <<unknown class>>
+;  V11 tmp3         [V11,T11] (  2,  4   )     ref  ->   r5         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V12 tmp4         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Management.Automation.CommandProcessorBase]>
-;* V13 tmp5         [V13,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V13 tmp5         [V13,T05] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V14 tmp6         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V15 tmp7         [V15,T08] (  6,  6   )     ref  ->   r4         class-hnd exact "Inlining Arg" <System.Management.Automation.Runspaces.LocalPipeline>
+;  V15 tmp7         [V15,T09] (  6,  6   )     ref  ->   r6         class-hnd exact "Inlining Arg" <System.Management.Automation.Runspaces.LocalPipeline>
 ;* V16 tmp8         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Management.Automation.Runspaces.PipelineStopper>
 ;  V17 tmp9         [V17,T03] (  4, 24   )     ref  ->  [sp+0x04]  EH-live single-def "field V03._list (fldOffset=0x0)" P-INDEP
-;  V18 tmp10        [V18,T02] (  5, 24   )     ref  ->   r0         "field V03._current (fldOffset=0x4)" P-INDEP
+;  V18 tmp10        [V18,T02] (  5, 24   )     ref  ->  registers   "field V03._current (fldOffset=0x4)" P-INDEP
 ;  V19 tmp11        [V19,T00] (  6, 41   )     int  ->  [sp+0x18]  do-not-enreg[Z] EH-live "field V03._index (fldOffset=0x8)" P-INDEP
-;  V20 tmp12        [V20,T05] (  3, 16   )     int  ->  [sp+0x14]  EH-live single-def "field V03._version (fldOffset=0xc)" P-INDEP
-;  V21 tmp13        [V21,T11] (  3,  3   )     ref  ->   r5         single-def "field V12._list (fldOffset=0x0)" P-INDEP
+;  V20 tmp12        [V20,T08] (  2,  8   )     int  ->  [sp+0x14]  EH-live spill-single-def "field V03._version (fldOffset=0xc)" P-INDEP
+;  V21 tmp13        [V21,T12] (  3,  3   )     ref  ->   r5         single-def "field V12._list (fldOffset=0x0)" P-INDEP
 ;* V22 tmp14        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V12._current (fldOffset=0x4)" P-INDEP
-;* V23 tmp15        [V23,T15] (  0,  0   )     int  ->  zero-ref    single-def "field V12._index (fldOffset=0x8)" P-INDEP
-;  V24 tmp16        [V24,T12] (  2,  2   )     int  ->   r6         single-def "field V12._version (fldOffset=0xc)" P-INDEP
+;* V23 tmp15        [V23,T16] (  0,  0   )     int  ->  zero-ref    single-def "field V12._index (fldOffset=0x8)" P-INDEP
+;  V24 tmp16        [V24,T13] (  2,  2   )     int  ->   r0         single-def "field V12._version (fldOffset=0xc)" P-INDEP
 ;  V25 tmp17        [V25,T01] (  3, 48   )     ref  ->   r0         "arr expr"
-;  V26 tmp18        [V26,T19] (  2,  0   )     ref  ->   r0         "argument with side effect"
-;  V27 tmp19        [V27,T20] (  2,  0   )     ref  ->   r1         "argument with side effect"
-;  V28 PSPSym       [V28,T16] (  1,  1   )     int  ->  [sp+0x20]  do-not-enreg[V] "PSPSym"
-;  V29 cse0         [V29,T04] (  3, 24   )     int  ->   r4         "CSE - aggressive"
+;  V26 tmp18        [V26,T20] (  2,  0   )     ref  ->   r0         "argument with side effect"
+;  V27 tmp19        [V27,T21] (  2,  0   )     ref  ->   r1         "argument with side effect"
+;  V28 PSPSym       [V28,T17] (  1,  1   )     int  ->  [sp+0x20]  do-not-enreg[V] "PSPSym"
+;  V29 cse0         [V29,T06] (  2, 16   )     int  ->   r0         "CSE - aggressive"
+;  V30 cse1         [V30,T04] (  2, 16   )     int  ->   r2         "CSE - aggressive"
 ;
 ; Lcl frame size = 36
 
@@ -90,70 +91,77 @@ G_M35394_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[r2]
             ldr     r5, [r2+0x04]
             ; gcrRegs +[r5]
-            ldr     r6, [r5+0x0C]
+            ldr     r0, [r5+0x0C]
             str     r5, [sp+0x04] // [V17 tmp9]
             ; GC ptr vars +{V17}
-            movs    r0, 0
-            str     r0, [sp+0x18]  // [V19 tmp11]
-            str     r6, [sp+0x14]  // [V20 tmp12]
+            movs    r3, 0
+            str     r3, [sp+0x18]  // [V19 tmp11]
+            str     r0, [sp+0x14]  // [V20 tmp12]
             b       SHORT G_M35394_IG08
                        ;; size=16 bbWeight=1 PerfScore 8.00
-G_M35394_IG06:        ; bbWeight=4, gcVars=00002088 {V00 V01 V17}, gcrefRegs=0021 {r0 r5}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M35394_IG06:        ; bbWeight=4, gcVars=00004088 {V00 V01 V17}, gcrefRegs=0021 {r0 r5}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r2] +[r0]
             str     r0, [sp+0x08]  // [V04 loc3]
             ; GC ptr vars +{V04}
             cmp     r0, 0
             beq     SHORT G_M35394_IG08
+            mov     r3, r0
+            ; gcrRegs +[r3]
+            ldr     r0, [sp+0x14]  // [V20 tmp12]
+            ; gcrRegs -[r0]
             ldr     r2, [sp+0x10]   // [V00 this]
             ; gcrRegs +[r2]
             ldr     r4, [sp+0x1C]  // [V02 loc1]
-            ldrb    r3, [r0+0x2A]
-            cmp     r3, 0
+            ldrb    r1, [r3+0x2A]
+            cmp     r1, 0
             beq     SHORT G_M35394_IG08
-                     ;; size=18 bbWeight=4 PerfScore 32.00
-G_M35394_IG07:        ; bbWeight=4, gcVars=00002288 {V00 V01 V04 V17}, gcrefRegs=0025 {r0 r2 r5}, byrefRegs=0000 {}, gcvars, byref
-            movs    r3, 0
-            str     r3, [r2+0x1C]
+                        ;; size=22 bbWeight=4 PerfScore 40.00
+G_M35394_IG07:        ; bbWeight=4, gcVars=00004488 {V00 V01 V04 V17}, gcrefRegs=002C {r2 r3 r5}, byrefRegs=0000 {}, gcvars, byref
+            movs    r1, 0
+            str     r1, [r2+0x1C]
+            mov     r0, r3
+            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
+            ; gcrRegs -[r3]
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
             ; gcrRegs -[r0 r2]
             ; gcr arg pop 0
-                      ;; size=16 bbWeight=4 PerfScore 24.00
-G_M35394_IG08:        ; bbWeight=8, gcVars=00002088 {V00 V01 V17}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+                      ;; size=18 bbWeight=4 PerfScore 28.00
+G_M35394_IG08:        ; bbWeight=8, gcVars=00004088 {V00 V01 V17}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r5]
             ; GC ptr vars -{V04}
             ldr     r5, [sp+0x04]  // [V17 tmp9]
             ; gcrRegs +[r5]
-            ldr     r4, [r5+0x0C]
-            ldr     r6, [sp+0x14]  // [V20 tmp12]
-            cmp     r6, r4
-            bne     SHORT G_M35394_IG11
+            ldr     r0, [r5+0x0C]
+            ldr     r3, [sp+0x14]  // [V20 tmp12]
+            cmp     r3, r0
+            bne     SHORT G_M35394_IG10
             ldr     r0, [sp+0x18]   // [V19 tmp11]
-            ldr     r3, [r5+0x08]
-            cmp     r0, r3
-            bhs     SHORT G_M35394_IG12
+            ldr     r2, [r5+0x08]
+            cmp     r0, r2
+            bhs     SHORT G_M35394_IG11
             ldr     r0, [r5+0x04]
             ; gcrRegs +[r0]
-            ldr     r3, [sp+0x18] // [V19 tmp11]
-            ldr     r2, [r0+0x04]
-            cmp     r3, r2
+            ldr     r2, [sp+0x18]  // [V19 tmp11]
+            ldr     r1, [r0+0x04]
+            cmp     r2, r1
             bhs     SHORT G_M35394_IG09
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            ldr     r3, [sp+0x18] // [V19 tmp11]
-            lsls    r3, r3, 2
-            ldr     r0, [r0+r3]
+            ldr     r2, [sp+0x18] // [V19 tmp11]
+            lsls    r2, r2, 2
+            ldr     r0, [r0+r2]
             ; gcrRegs +[r0]
             ; byrRegs -[r0]
-            ldr     r3, [sp+0x18] // [V19 tmp11]
-            adds    r3, r3, 1
-            str     r3, [sp+0x18]  // [V19 tmp11]
+            ldr     r2, [sp+0x18]   // [V19 tmp11]
+            adds    r2, r2, 1
+            str     r2, [sp+0x18]  // [V19 tmp11]
             b       SHORT G_M35394_IG06
                        ;; size=44 bbWeight=8 PerfScore 176.00
-G_M35394_IG09:        ; bbWeight=0, gcVars=00002080 {V00 V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M35394_IG09:        ; bbWeight=0, gcVars=00004080 {V00 V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0 r5]
             ; GC ptr vars -{V17}
             movw    r3, 0xd1ff
@@ -169,11 +177,7 @@ G_M35394_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M35394_IG11:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            cmp     r6, r4
-            bne     SHORT G_M35394_IG10
-                       ;; size=4 bbWeight=8 PerfScore 16.00
-G_M35394_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M35394_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ldr     r2, [sp+0x10]    // [V00 this]
             ; gcrRegs +[r2]
             add     r0, r2, 28
@@ -186,25 +190,24 @@ G_M35394_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            ldr     r4, [r2+0x30]
-            ; gcrRegs +[r4]
-            cmp     r4, 0
+            ldr     r6, [r2+0x30]
+            ; gcrRegs +[r6]
+            cmp     r6, 0
             beq     SHORT G_M35394_IG03
-            ldr     r3, [r4+0x60]
+            ldr     r3, [r6+0x60]
             ; gcrRegs +[r3]
             ldr     r4, [sp+0x1C]  // [V02 loc1]
-            ; gcrRegs -[r4]
             strb    r4, [r3+0x10]
             b       SHORT G_M35394_IG03
                        ;; size=32 bbWeight=1 PerfScore 13.00
-G_M35394_IG13:        ; bbWeight=0, gcVars=00002288 {V00 V01 V04 V17}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
-            ; gcrRegs -[r2-r3] +[r0]
-            ; GC ptr vars +{V01 V04 V09 V13 V17}
+G_M35394_IG12:        ; bbWeight=0, gcVars=00004488 {V00 V01 V04 V17}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+            ; gcrRegs -[r2-r3 r6] +[r0]
+            ; GC ptr vars +{V01 V04 V10 V17}
             push    {r3,r4,r5,r6,r11,lr}
             add     r3, r11, 8
             str     r3, [sp]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M35394_IG14:        ; bbWeight=0, gcVars=00002288 {V00 V01 V04 V17}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
+G_M35394_IG13:        ; bbWeight=0, gcVars=00004488 {V00 V01 V04 V17}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref
             mov     r1, r0
             ; gcrRegs +[r1]
             ldr     r0, [r11-0x20] // [V00 this]
@@ -226,27 +229,27 @@ G_M35394_IG14:        ; bbWeight=0, gcVars=00002288 {V00 V01 V04 V17}, gcrefRegs
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
-            ; GC ptr vars -{V04 V09 V13}
+            ; GC ptr vars -{V04 V10}
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; gcr arg pop 0
             movw    r0, LOW ADDRESS G_M35394_IG08
             movt    r0, HIGH ADDRESS G_M35394_IG08
                        ;; size=58 bbWeight=0 PerfScore 0.00
-G_M35394_IG15:        ; bbWeight=0, funclet epilog, nogc, extend
+G_M35394_IG14:        ; bbWeight=0, funclet epilog, nogc, extend
             pop     {r3,r4,r5,r6,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M35394_IG16:        ; bbWeight=0, gcVars=00002288 {V00 V01 V04 V17}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M35394_IG15:        ; bbWeight=0, gcVars=00004488 {V00 V01 V04 V17}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
             ; gcrRegs +[r0]
-            ; GC ptr vars +{V04 V09}
+            ; GC ptr vars +{V04 V10}
             push    {r3,r4,r5,r6,r11,lr}
             add     r3, r11, 8
             str     r3, [sp]
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M35394_IG17:        ; bbWeight=0, gcVars=00002288 {V00 V01 V04 V17}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
-            mov     r4, r0
-            ; gcrRegs +[r4]
-            mov     r1, r4
+G_M35394_IG16:        ; bbWeight=0, gcVars=00004488 {V00 V01 V04 V17}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
+            mov     r6, r0
+            ; gcrRegs +[r6]
+            mov     r1, r6
             ; gcrRegs +[r1]
             movw    r0, 0xd1ff
             ; gcrRegs -[r0]
@@ -257,8 +260,8 @@ G_M35394_IG17:        ; bbWeight=0, gcVars=00002288 {V00 V01 V04 V17}, gcrefRegs
             ; gcrRegs -[r1] +[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            bne     SHORT G_M35394_IG18
...
  
+4 (+0.46%) : 16240.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)
@@ -8,14 +8,14 @@
 ; 0 inlinees with PGO data; 13 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T17] (  8, 260   )     ref  ->   r4         class-hnd exact single-def <<unknown class>>
-;  V01 loc1         [V01,T00] ( 16,1249   )     ref  ->   r5         class-hnd single-def <<unknown class>>
+;  V00 loc0         [V00,T18] (  8, 260   )     ref  ->   r4         class-hnd exact single-def <<unknown class>>
+;  V01 loc1         [V01,T00] ( 15,1121   )     ref  ->   r5         class-hnd single-def <<unknown class>>
 ;  V02 loc2         [V02,T06] (  9, 641   )     ref  ->   r6         class-hnd single-def <<unknown class>>
 ;  V03 loc3         [V03,T09] (  8, 392   )     int  ->  registers  
-;  V04 loc4         [V04,T38] (  2,   0   )     ref  ->  [sp+0x10]  class-hnd exact EH-live single-def <<unknown class>>
+;  V04 loc4         [V04,T39] (  2,   0   )     ref  ->  [sp+0x10]  class-hnd exact EH-live single-def <<unknown class>>
 ;  V05 loc5         [V05    ] (  6,   5   )   ubyte  ->  [sp+0x2C]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V06 loc6         [V06    ] (  1,  64   )    long  ->  [sp+0x20]  multireg-ret
-;  V07 loc7         [V07,T30] (  3,  80   )     ref  ->  [sp+0x0C]  do-not-enreg[Z] class-hnd exact EH-live <<unknown class>>
+;  V07 loc7         [V07,T31] (  3,  80   )     ref  ->  [sp+0x0C]  do-not-enreg[Z] class-hnd exact EH-live <<unknown class>>
 ;  V08 loc8         [V08    ] (  6, 320   )   ubyte  ->  [sp+0x1C]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V09 loc9         [V09,T01] ( 11,1088   )     int  ->  [sp+0x18] 
 ;  V10 loc10        [V10,T08] (  5, 448   )     ref  ->   r1         class-hnd exact <System.Threading.TimerQueue>
@@ -24,41 +24,42 @@
 ;* V13 loc13        [V13    ] (  0,   0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Threading.TimerQueue]>
 ;* V14 loc14        [V14    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact <System.Threading.TimerQueue>
 ;  V15 OutArgs      [V15    ] (  1,   1   )  struct ( 4) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V16 tmp1         [V16,T36] (  2,   4   )   ubyte  ->   r0         "Inlining Arg"
+;  V16 tmp1         [V16,T37] (  2,   4   )   ubyte  ->   r0         "Inlining Arg"
 ;* V17 tmp2         [V17    ] (  0,   0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V18 tmp3         [V18,T31] (  0,   0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V19 tmp4         [V19,T22] (  2, 256   )   ubyte  ->   r0         "Inlining Arg"
-;  V20 tmp5         [V20,T24] (  3, 192   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V21 tmp6         [V21,T18] (  4, 256   )     int  ->   r3         "Inline stloc first use temp"
-;  V22 tmp7         [V22,T20] (  2, 256   )     ref  ->   lr         class-hnd "Inlining Arg" <System.__Canon>
+;* V18 tmp3         [V18,T32] (  0,   0   )     int  ->  zero-ref    "Inline return value spill temp"
+;  V19 tmp4         [V19,T23] (  2, 256   )   ubyte  ->   r0         "Inlining Arg"
+;  V20 tmp5         [V20,T25] (  3, 192   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V21 tmp6         [V21,T19] (  4, 256   )     int  ->   r3         "Inline stloc first use temp"
+;  V22 tmp7         [V22,T21] (  2, 256   )     ref  ->   lr         class-hnd "Inlining Arg" <System.__Canon>
 ;* V23 tmp8         [V23    ] (  0,   0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Threading.TimerQueue]>
-;* V24 tmp9         [V24,T23] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V24 tmp9         [V24,T24] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V25 tmp10        [V25    ] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V26 tmp11        [V26,T16] (  3, 272   )     int  ->   r2         "Inline stloc first use temp"
-;* V27 tmp12        [V27,T34] (  0,   0   )     ref  ->  zero-ref    "field V13._list (fldOffset=0x0)" P-INDEP
-;  V28 tmp13        [V28,T14] (  2, 192   )     ref  ->  [sp+0x08]  spill-single-def "field V13._current (fldOffset=0x4)" P-INDEP
+;  V26 tmp11        [V26,T17] (  3, 272   )     int  ->   r2         "Inline stloc first use temp"
+;* V27 tmp12        [V27,T35] (  0,   0   )     ref  ->  zero-ref    "field V13._list (fldOffset=0x0)" P-INDEP
+;  V28 tmp13        [V28,T15] (  2, 192   )     ref  ->  [sp+0x08]  spill-single-def "field V13._current (fldOffset=0x4)" P-INDEP
 ;  V29 tmp14        [V29,T02] (  6, 656   )     int  ->   r8         "field V13._index (fldOffset=0x8)" P-INDEP
-;  V30 tmp15        [V30,T28] (  2, 144   )     int  ->   r7         "field V13._version (fldOffset=0xc)" P-INDEP
-;  V31 tmp16        [V31,T32] (  2,  32   )     ref  ->   r0         "field V23._list (fldOffset=0x0)" P-INDEP
+;  V30 tmp15        [V30,T29] (  2, 144   )     int  ->   r7         "field V13._version (fldOffset=0xc)" P-INDEP
+;  V31 tmp16        [V31,T33] (  2,  32   )     ref  ->   r0         "field V23._list (fldOffset=0x0)" P-INDEP
 ;* V32 tmp17        [V32    ] (  0,   0   )     ref  ->  zero-ref    "field V23._current (fldOffset=0x4)" P-INDEP
-;* V33 tmp18        [V33,T35] (  0,   0   )     int  ->  zero-ref    "field V23._index (fldOffset=0x8)" P-INDEP
-;  V34 tmp19        [V34,T33] (  2,  32   )     int  ->   r7         "field V23._version (fldOffset=0xc)" P-INDEP
-;  V35 tmp20        [V35,T39] (  2,   0   )     ref  ->   r2         "argument with side effect"
+;* V33 tmp18        [V33,T36] (  0,   0   )     int  ->  zero-ref    "field V23._index (fldOffset=0x8)" P-INDEP
+;  V34 tmp19        [V34,T34] (  2,  32   )     int  ->   r7         "field V23._version (fldOffset=0xc)" P-INDEP
+;  V35 tmp20        [V35,T40] (  2,   0   )     ref  ->   r2         "argument with side effect"
 ;  V36 tmp21        [V36,T03] (  3, 768   )     ref  ->   r1         "arr expr"
 ;  V37 tmp22        [V37,T12] (  3, 384   )     ref  ->   lr         "arr expr"
 ;  V38 tmp23        [V38,T04] (  3, 768   )     ref  ->   r0         "arr expr"
-;  V39 tmp24        [V39,T21] (  2, 256   )     ref  ->   r0         "argument with side effect"
-;  V40 PSPSym       [V40,T37] (  1,   1   )     int  ->  [sp+0x30]  do-not-enreg[V] "PSPSym"
-;  V41 cse0         [V41,T07] (  3, 384   )     int  ->   r2         "CSE - aggressive"
-;  V42 cse1         [V42,T19] (  4, 256   )     int  ->   r0         "CSE - moderate"
-;  V43 cse2         [V43,T25] (  3, 192   )     ref  ->   r1         "CSE - moderate"
-;  V44 cse3         [V44,T29] (  2, 128   )     int  ->   lr         "CSE - moderate"
-;  V45 rat0         [V45,T26] (  2, 192   )     int  ->   r7         "field V06.lo (fldOffset=0x0)" P-INDEP
-;  V46 rat1         [V46,T27] (  2, 192   )     int  ->   r8         "field V06.hi (fldOffset=0x4)" P-INDEP
-;  V47 rat2         [V47,T11] (  4, 384   )     int  ->   r3         "field V11.lo (fldOffset=0x0)" P-INDEP
-;  V48 rat3         [V48,T15] (  3, 320   )     int  ->   lr         "field V11.hi (fldOffset=0x4)" P-INDEP
-;  V49 rat4         [V49,T05] (  3, 768   )   byref  ->   r0         "ReplaceWithLclVar is creating a new local variable"
-;  V50 rat5         [V50,T13] (  3, 384   )     int  ->   r0         "ReplaceWithLclVar is creating a new local variable"
+;  V39 tmp24        [V39,T22] (  2, 256   )     ref  ->   r0         "argument with side effect"
+;  V40 PSPSym       [V40,T38] (  1,   1   )     int  ->  [sp+0x30]  do-not-enreg[V] "PSPSym"
+;  V41 cse0         [V41,T13] (  3, 384   )     int  ->   r3         "CSE - aggressive"
+;  V42 cse1         [V42,T07] (  3, 384   )     int  ->   r2         "CSE - aggressive"
+;  V43 cse2         [V43,T20] (  4, 256   )     int  ->   r0         "CSE - moderate"
+;  V44 cse3         [V44,T26] (  3, 192   )     ref  ->   r1         "CSE - moderate"
+;  V45 cse4         [V45,T30] (  2, 128   )     int  ->   lr         "CSE - moderate"
+;  V46 rat0         [V46,T27] (  2, 192   )     int  ->   r7         "field V06.lo (fldOffset=0x0)" P-INDEP
+;  V47 rat1         [V47,T28] (  2, 192   )     int  ->   r8         "field V06.hi (fldOffset=0x4)" P-INDEP
+;  V48 rat2         [V48,T11] (  4, 384   )     int  ->   r3         "field V11.lo (fldOffset=0x0)" P-INDEP
+;  V49 rat3         [V49,T16] (  3, 320   )     int  ->   lr         "field V11.hi (fldOffset=0x4)" P-INDEP
+;  V50 rat4         [V50,T05] (  3, 768   )   byref  ->   r0         "ReplaceWithLclVar is creating a new local variable"
+;  V51 rat5         [V51,T14] (  3, 384   )     int  ->   r0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 52
 
@@ -83,7 +84,7 @@ G_M45973_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movs    r1, 0
             str     r1, [sp+0x2C]  // [V05 loc5]
                        ;; size=26 bbWeight=1 PerfScore 9.00
-G_M45973_IG03:        ; bbWeight=1, gcVars=0000004000000000 {V04}, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M45973_IG03:        ; bbWeight=1, gcVars=0000008000000000 {V04}, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x2C]   // [V05 loc5]
             cmp     r1, 0
             beq     SHORT G_M45973_IG05
@@ -172,7 +173,7 @@ G_M45973_IG09:        ; bbWeight=64, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {
             movs    r1, 0
             str     r1, [sp+0x1C]  // [V08 loc8]
                        ;; size=64 bbWeight=64 PerfScore 1472.00
-G_M45973_IG10:        ; bbWeight=64, gcVars=0000000040000000 {V07}, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M45973_IG10:        ; bbWeight=64, gcVars=0000000080000000 {V07}, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r1, [sp+0x1C]   // [V08 loc8]
             cmp     r1, 0
             bne     G_M45973_IG24
@@ -399,8 +400,8 @@ G_M45973_IG28:        ; bbWeight=16, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {
             mov     r8, 0
             b       SHORT G_M45973_IG31
                        ;; size=10 bbWeight=16 PerfScore 64.00
-G_M45973_IG29:        ; bbWeight=64, gcVars=0000000000004000 {V28}, gcrefRegs=0078 {r3 r4 r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[r0] +[r3]
+G_M45973_IG29:        ; bbWeight=64, gcVars=0000000000008000 {V28}, gcrefRegs=4070 {r4 r5 r6 lr}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[r0] +[lr]
             ; GC ptr vars +{V28}
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -409,26 +410,25 @@ G_M45973_IG29:        ; bbWeight=64, gcVars=0000000000004000 {V28}, gcrefRegs=00
             cmp     r0, 1
             bne     SHORT G_M45973_IG37
                        ;; size=18 bbWeight=64 PerfScore 384.00
-G_M45973_IG30:        ; bbWeight=64, gcrefRegs=0078 {r3 r4 r5 r6}, byrefRegs=0000 {}, byref
+G_M45973_IG30:        ; bbWeight=64, gcrefRegs=4070 {r4 r5 r6 lr}, byrefRegs=0000 {}, byref
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             ldr     r0, [r0]
             ; gcrRegs +[r0]
-            mov     r1, r3
+            mov     r1, lr
             ; gcrRegs +[r1]
             movw    r3, 0xd1ff
-            ; gcrRegs -[r3]
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             ldr     r2, [r0]
             ; GC ptr vars -{V28}
             blx     r3     // System.Threading.ThreadPoolWorkQueue:EnqueueAtHighPriority(System.Object):this
-            ; gcrRegs -[r0-r1]
+            ; gcrRegs -[r0-r1 lr]
             ; gcr arg pop 0
                        ;; size=26 bbWeight=64 PerfScore 576.00
 G_M45973_IG31:        ; bbWeight=128, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ldr     r0, [r5+0x0C]
-            cmp     r7, r0
+            ldr     r3, [r5+0x0C]
+            cmp     r7, r3
             bne     SHORT G_M45973_IG39
             ldr     r2, [r5+0x08]
             cmp     r8, r2
@@ -442,25 +442,24 @@ G_M45973_IG31:        ; bbWeight=128, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
             lsl     r1, r8, 2
-            ldr     r3, [r0+r1]
-            ; gcrRegs +[r3]
-            str     r3, [sp+0x08]  // [V28 tmp13]
+            ldr     lr, [r0+r1]
+            ; gcrRegs +[lr]
+            str     lr, [sp+0x08]  // [V28 tmp13]
             ; GC ptr vars +{V28}
             add     r8, r8, 1
             b       SHORT G_M45973_IG29
-                      ;; size=36 bbWeight=128 PerfScore 2048.00
+                     ;; size=40 bbWeight=128 PerfScore 2048.00
 G_M45973_IG32:        ; bbWeight=128, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r3]
+            ; gcrRegs -[lr]
             ; byrRegs -[r0]
             ; GC ptr vars -{V28}
-            ldr     r0, [r5+0x0C]
-            adds    r0, r0, 1
+            adds    r0, r3, 1
             str     r0, [r5+0x0C]
             movs    r0, 0
             str     r0, [r5+0x08]
             cmp     r2, 0
             ble     SHORT G_M45973_IG34
-                      ;; size=14 bbWeight=128 PerfScore 896.00
+                      ;; size=12 bbWeight=128 PerfScore 768.00
 G_M45973_IG33:        ; bbWeight=16, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref
             ldr     r0, [r5+0x04]
             ; gcrRegs +[r0]
@@ -488,23 +487,23 @@ G_M45973_IG36:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M45973_IG37:        ; bbWeight=0, gcVars=0000000000004000 {V28}, gcrefRegs=0078 {r3 r4 r5 r6}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[r3-r6]
+G_M45973_IG37:        ; bbWeight=0, gcVars=0000000000008000 {V28}, gcrefRegs=4070 {r4 r5 r6 lr}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[r4-r6 lr]
             ; GC ptr vars +{V28}
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             mov     r1, 740
-            movw    r2, 0xd1ff
-            movt    r2, 0xd1ff
-            blx     r2     // CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
-            ; gcrRegs -[r3]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+            ; gcrRegs -[lr]
             ; gcr arg pop 0
-            ldr     r3, [sp+0x08]  // [V28 tmp13]
-            ; gcrRegs +[r3]
+            ldr     lr, [sp+0x08] // [V28 tmp13]
+            ; gcrRegs +[lr]
             b       SHORT G_M45973_IG30
-                       ;; size=26 bbWeight=0 PerfScore 0.00
+                      ;; size=28 bbWeight=0 PerfScore 0.00
 G_M45973_IG38:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r3-r6]
+            ; gcrRegs -[r4-r6 lr]
             ; GC ptr vars -{V28}
             movw    r0, 0xd1ff
             movw    r1, 0xd1ff
@@ -535,14 +534,14 @@ G_M45973_IG39:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcr arg pop 0
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M45973_IG40:        ; bbWeight=0, gcVars=0000004000000000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
-            ; GC ptr vars +{V04 V38}
+G_M45973_IG40:        ; bbWeight=0, gcVars=0000008000000000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+            ; GC ptr vars +{V04 V39}
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             sub     sp, 12
             add     r3, r11, 8
             str     r3, [sp+0x08]
                        ;; size=12 bbWeight=0 PerfScore 0.00
-G_M45973_IG41:        ; bbWeight=0, gcVars=0000004000000000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M45973_IG41:        ; bbWeight=0, gcVars=0000008000000000 {V04}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ldrb    r0, [r11-0x24]    // [V05 loc5]
             cmp     r0, 0
             beq     SHORT G_M45973_IG42
@@ -550,7 +549,7 @@ G_M45973_IG41:        ; bbWeight=0, gcVars=0000004000000000 {V04}, gcrefRegs=000
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
-            ; GC ptr vars -{V04 V38}
+            ; GC ptr vars -{V04 V39}
             blx     r3       // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
@@ -559,14 +558,14 @@ G_M45973_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             add     sp, 12
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=0 PerfScore 0.00
-G_M45973_IG43:        ; bbWeight=0, gcVars=0000000040000000 {V07}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
-            ; GC ptr vars +{V07 V30}
...
  
+14 (+3.18%) : 6301.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (FullOpts)
@@ -12,39 +12,39 @@
 ;  V01 arg1         [V01,T13] (  4,  3   )     int  ->   r6         single-def
 ;  V02 arg2         [V02,T11] (  3,  4   )     int  ->   r4         single-def
 ;  V03 arg3         [V03,T12] (  5,  3.50)     int  ->   r5         single-def
-;  V04 arg4         [V04,T21] (  1,  0.50)     int  ->  [sp+0x38]  single-def
+;  V04 arg4         [V04,T21] (  1,  0.50)     int  ->  [sp+0x30]  single-def
 ;* V05 loc0         [V05    ] (  0,  0   )     int  ->  zero-ref   
 ;  V06 loc1         [V06,T15] (  3,  1.50)     int  ->   r7        
 ;* V07 loc2         [V07,T22] (  0,  0   )     ref  ->  zero-ref    class-hnd exact EH-live single-def <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V08 loc3         [V08    ] (  6,  2.50)   ubyte  ->  [sp+0x0C]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V09 loc4         [V09,T14] (  3,  4.50)     ref  ->   r6         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
 ;  V10 loc5         [V10,T02] ( 10, 13.25)     int  ->  registers  
-;  V11 loc6         [V11,T07] (  5, 10   )     ref  ->   r5         class-hnd <System.Array>
-;  V12 loc7         [V12,T08] (  4,  8   )     int  ->   r3        
+;  V11 loc6         [V11,T06] (  5, 10   )     ref  ->  registers   class-hnd <System.Array>
+;  V12 loc7         [V12,T08] (  4,  8   )     int  ->   r1        
 ;  V13 OutArgs      [V13    ] (  1,  1   )  struct ( 4) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V14 tmp1         [V14,T16] (  3,  1.50)     int  ->   r7        
 ;* V15 tmp2         [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V17 tmp4         [V17,T17] (  3,  1.50)     int  ->   r4        
 ;  V18 tmp5         [V18,T00] (  3, 24   )     int  ->   r8         "impSpillLclRefs"
-;  V19 tmp6         [V19,T03] (  3, 12   )     ref  ->   r1         class-hnd "impSpillLclRefs" <<unknown class>>
+;  V19 tmp6         [V19,T03] (  3, 12   )     ref  ->   r3         class-hnd "impSpillLclRefs" <<unknown class>>
 ;  V20 tmp7         [V20,T09] (  2,  8   )     int  ->   r2         "impAppendStmt"
 ;  V21 tmp8         [V21,T10] (  2,  8   )     int  ->   r3         "Inlining Arg"
 ;  V22 tmp9         [V22,T04] (  3, 12   )     ref  ->   r3         "arr expr"
 ;  V23 tmp10        [V23,T05] (  3, 12   )     int  ->   r2         "index expr"
-;  V24 PSPSym       [V24,T20] (  1,  1   )     int  ->  [sp+0x14]  do-not-enreg[V] "PSPSym"
-;  V25 cse0         [V25,T06] (  4, 10.50)     int  ->   r5         "CSE - aggressive"
+;  V24 PSPSym       [V24,T20] (  1,  1   )     int  ->  [sp+0x10]  do-not-enreg[V] "PSPSym"
+;  V25 cse0         [V25,T07] (  3, 10   )     int  ->   r1         "CSE - aggressive"
 ;  V26 cse1         [V26,T18] (  3,  1.50)     int  ->   r1         "CSE - moderate"
 ;  V27 cse2         [V27,T19] (  3,  1.50)     int  ->   r1         "CSE - moderate"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 20
 
 G_M62513_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r9,r11,lr}
-            sub     sp, 24
-            add     r11, sp, 48
-            add     r4, sp, 56
-            str     r4, [sp+0x14]  // [V24 PSPSym]
+            push    {r4,r5,r6,r7,r8,r11,lr}
+            sub     sp, 20
+            add     r11, sp, 40
+            add     r4, sp, 48
+            str     r4, [sp+0x10]  // [V24 PSPSym]
             str     r0, [sp+0x08]    // [V00 this]
             ; GC ptr vars +{V00}
             mov     r6, r1
@@ -60,8 +60,8 @@ G_M62513_IG02:        ; bbWeight=1, gcVars=00000002 {V00}, gcrefRegs=0001 {r0},
 G_M62513_IG03:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
             ; gcrRegs -[r0]
             ; GC ptr vars -{V00}
-            add     sp, 24
-            pop     {r4,r5,r6,r7,r8,r9,r11,pc}
+            add     sp, 20
+            pop     {r4,r5,r6,r7,r8,r11,pc}
                         ;; size=6 bbWeight=1 PerfScore 2.00
 G_M62513_IG04:        ; bbWeight=0.50, gcVars=00000002 {V00}, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r0]
@@ -98,12 +98,12 @@ G_M62513_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x0C]
             cmp     r1, 0
-            beq     G_M62513_IG22
+            beq     G_M62513_IG23
             ldr     r1, [r0+0x10]
             cmp     r1, 0
             bne     SHORT G_M62513_IG11
             str     r6, [r0+0x10]
-            b       SHORT G_M62513_IG22
+            b       SHORT G_M62513_IG23
                         ;; size=56 bbWeight=0.50 PerfScore 10.50
 G_M62513_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
@@ -130,7 +130,7 @@ G_M62513_IG11:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             ; gcrRegs +[r0]
             subs    r1, r6, r1
             cmp     r1, r7
-            ble     SHORT G_M62513_IG22
+            ble     SHORT G_M62513_IG23
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
             ldr     r6, [r1]
@@ -141,7 +141,7 @@ G_M62513_IG11:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             cmp     r5, 2
             bne     SHORT G_M62513_IG17
             mov     r8, 32
-            ldr     r5, [sp+0x38]  // [V04 arg4]
+            ldr     r5, [sp+0x30]    // [V04 arg4]
             cmp     r5, 0x4000
             ble     SHORT G_M62513_IG12
             mov     r8, 33
@@ -161,30 +161,30 @@ G_M62513_IG13:        ; bbWeight=1.75, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}
             b       SHORT G_M62513_IG17
                        ;; size=6 bbWeight=1.75 PerfScore 3.50
 G_M62513_IG14:        ; bbWeight=2, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}, byref, isz
-            ldr     r1, [r0+0x04]
-            ; gcrRegs +[r1]
-            subs    r3, r5, 1
-            str     r3, [r0+0x0C]
-            ldr     r2, [r1+0x04]
-            cmp     r3, r2
+            ldr     r3, [r0+0x04]
+            ; gcrRegs +[r3]
+            subs    r1, r1, 1
+            str     r1, [r0+0x0C]
+            ldr     r2, [r3+0x04]
+            cmp     r1, r2
             bhs     SHORT G_M62513_IG09
-            adds    r1, 8
-            ; gcrRegs -[r1]
-            ; byrRegs +[r1]
-            lsls    r3, r3, 2
-            ldr     r5, [r1+r3]
-            ; gcrRegs +[r5]
-            cmp     r5, 0
+            adds    r3, 8
+            ; gcrRegs -[r3]
+            ; byrRegs +[r3]
+            lsls    r1, r1, 2
+            ldr     r8, [r3+r1]
+            ; gcrRegs +[r8]
+            cmp     r8, 0
             bne     SHORT G_M62513_IG15
             movs    r0, 0
             ; gcrRegs -[r0]
             b       SHORT G_M62513_IG16
-                      ;; size=26 bbWeight=2 PerfScore 26.00
-G_M62513_IG15:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref
-            ; byrRegs -[r1]
+                      ;; size=30 bbWeight=2 PerfScore 26.00
+G_M62513_IG15:        ; bbWeight=2, gcrefRegs=0140 {r6 r8}, byrefRegs=0000 {}, byref
+            ; byrRegs -[r3]
             movs    r0, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
-G_M62513_IG16:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, byref, isz
+G_M62513_IG16:        ; bbWeight=2, gcrefRegs=0140 {r6 r8}, byrefRegs=0000 {}, byref, isz
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
             movw    r3, 0xd1ff
@@ -209,9 +209,15 @@ G_M62513_IG16:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
             ldrb    r3, [r6+0x5D]
             ; byrRegs -[r3]
             cmp     r3, 0
-            mov     r8, r9
-            beq     SHORT G_M62513_IG17
+            beq     SHORT G_M62513_IG19
             mov     r0, r5
+            ; gcrRegs -[r0]
+            mov     r5, r8
+            ; gcrRegs +[r5]
+            mov     r8, r0
+            ; gcrRegs -[r8]
+            mov     r0, r5
+            ; gcrRegs +[r0]
             ldr     r3, [r5]
             ldr     r3, [r3+0x2C]
             ldr     r3, [r3+0x0C]
@@ -233,29 +239,35 @@ G_M62513_IG16:        ; bbWeight=2, gcrefRegs=0060 {r5 r6}, byrefRegs=0000 {}, b
             blx     lr     // <unknown method>
             ; gcrRegs -[r0 r5]
             ; gcr arg pop 0
-                      ;; size=90 bbWeight=2 PerfScore 74.00
-G_M62513_IG17:        ; bbWeight=4, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [sp+0x08]    // [V00 this]
             ; gcrRegs +[r0]
-            ldr     r5, [r0+0x0C]
-            cmp     r5, 0
-            ble     SHORT G_M62513_IG19
-            add     r1, r8, -1
-            mov     r9, r1
+                       ;; size=96 bbWeight=2 PerfScore 80.00
+G_M62513_IG17:        ; bbWeight=4, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}, byref, isz
+            ldr     r1, [r0+0x0C]
+            cmp     r1, 0
+            ble     SHORT G_M62513_IG20
+            add     r3, r8, -1
+            mov     r5, r3
             cmp     r8, 0
             bgt     SHORT G_M62513_IG14
-                      ;; size=20 bbWeight=4 PerfScore 32.00
+                     ;; size=18 bbWeight=4 PerfScore 28.00
 G_M62513_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r6]
-            b       SHORT G_M62513_IG20
-                       ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M62513_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            cmp     r5, 0
-            bgt     SHORT G_M62513_IG20
-            movs    r4, 0
             b       SHORT G_M62513_IG21
-                     ;; size=8 bbWeight=0.50 PerfScore 2.00
-G_M62513_IG20:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+                     ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M62513_IG19:        ; bbWeight=1, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0] +[r6]
+            mov     r8, r5
+            ldr     r0, [sp+0x08]  // [V00 this]
+            ; gcrRegs +[r0]
+            b       SHORT G_M62513_IG17
+                       ;; size=6 bbWeight=1 PerfScore 3.00
+G_M62513_IG20:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r6]
+            movs    r4, 0
+            b       SHORT G_M62513_IG22
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M62513_IG21:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
             ldr     r4, [r0+0x10]
             mov     r0, r7
             ; gcrRegs -[r0]
@@ -268,10 +280,10 @@ G_M62513_IG20:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             ldr     r0, [sp+0x08]  // [V00 this]
             ; gcrRegs +[r0]
                        ;; size=20 bbWeight=0.50 PerfScore 4.00
-G_M62513_IG21:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
+G_M62513_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
             str     r4, [r0+0x10]
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M62513_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
+G_M62513_IG23:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ldrb    r3, [sp+0x0C]   // [V08 loc3]
             cmp     r3, 0
             beq     G_M62513_IG03
@@ -283,17 +295,18 @@ G_M62513_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             ; gcr arg pop 0
             b       SHORT G_M62513_IG03
                        ;; size=22 bbWeight=0.50 PerfScore 3.50
-G_M62513_IG23:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M62513_IG24:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
             ; GC ptr vars +{V00 V01}
-            push    {r2,r3,r4,r5,r6,r7,r8,r9,r11,lr}
+            push    {r4,r5,r6,r7,r8,r11,lr}
+            sub     sp, 12
             add     r3, r11, 8
-            str     r3, [sp+0x04]
-                       ;; size=10 bbWeight=0 PerfScore 0.00
-G_M62513_IG24:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ldrb    r0, [r11-0x24] // [V08 loc3]
+            str     r3, [sp+0x08]
+                       ;; size=12 bbWeight=0 PerfScore 0.00
+G_M62513_IG25:        ; bbWeight=0, gcVars=00000002 {V00}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+            ldrb    r0, [r11-0x1C] // [V08 loc3]
             cmp     r0, 0
-            beq     SHORT G_M62513_IG25
-            ldr     r0, [r11-0x28] // [V00 this]
+            beq     SHORT G_M62513_IG26
...
  
  
  
Details
Improvements/regressions per collection
| Collection | Contexts with diffs | Improvements | Regressions | Same size | Improvements (bytes) | Regressions (bytes) | 
| benchmarks.run.linux.arm.checked.mch | 19 | 14 | 4 | 1 | -88 | +20 | 
| benchmarks.run_pgo.linux.arm.checked.mch | 10 | 6 | 3 | 1 | -34 | +8 | 
| benchmarks.run_tiered.linux.arm.checked.mch | 19 | 14 | 4 | 1 | -84 | +20 | 
| coreclr_tests.run.linux.arm.checked.mch | 141 | 83 | 53 | 5 | -780 | +282 | 
| libraries.crossgen2.linux.arm.checked.mch | 10 | 8 | 1 | 1 | -46 | +18 | 
| libraries.pmi.linux.arm.checked.mch | 126 | 118 | 5 | 3 | -1,090 | +20 | 
| libraries_tests.run.linux.arm.Release.mch | 11 | 10 | 1 | 0 | -86 | +2 | 
| librariestestsnotieredcompilation.run.linux.arm.Release.mch | 141 | 104 | 18 | 19 | -960 | +74 | 
| realworld.run.linux.arm.checked.mch | 31 | 24 | 5 | 2 | -152 | +24 | 
|  | 508 | 381 | 94 | 33 | -3,320 | +468 | 
Context information
| Collection | Diffed contexts | MinOpts | FullOpts | Missed, base | Missed, diff | 
| benchmarks.run.linux.arm.checked.mch | 42,331 | 4,278 | 38,053 | 1,165 (2.68%) | 1,165 (2.68%) | 
| benchmarks.run_pgo.linux.arm.checked.mch | 47,709 | 18,036 | 29,673 | 753 (1.55%) | 753 (1.55%) | 
| benchmarks.run_tiered.linux.arm.checked.mch | 72,866 | 38,765 | 34,101 | 1,011 (1.37%) | 1,011 (1.37%) | 
| coreclr_tests.run.linux.arm.checked.mch | 471,634 | 259,195 | 212,439 | 7,529 (1.57%) | 7,529 (1.57%) | 
| libraries.crossgen2.linux.arm.checked.mch | 198,321 | 14 | 198,307 | 77 (0.04%) | 77 (0.04%) | 
| libraries.pmi.linux.arm.checked.mch | 272,819 | 6 | 272,813 | 7,891 (2.81%) | 7,891 (2.81%) | 
| libraries_tests.run.linux.arm.Release.mch | 33,537 | 3,662 | 29,875 | 1,186 (3.42%) | 1,186 (3.42%) | 
| librariestestsnotieredcompilation.run.linux.arm.Release.mch | 274,024 | 21,625 | 252,399 | 34,271 (11.12%) | 34,271 (11.12%) | 
| realworld.run.linux.arm.checked.mch | 36,436 | 153 | 36,283 | 1,426 (3.77%) | 1,426 (3.77%) | 
|  | 1,449,677 | 345,734 | 1,103,943 | 55,309 (3.68%) | 55,309 (3.68%) | 
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: 13691660 (overridden on cmd)
Total bytes of diff: 13691592 (overridden on cmd)
Total bytes of delta: -68 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
          14 : 1660.dasm (3.03 % of base)
           2 : 4637.dasm (0.21 % of base)
           2 : 3362.dasm (0.10 % of base)
           2 : 4628.dasm (0.18 % of base)
Top file improvements (bytes):
         -12 : 19073.dasm (-0.15 % of base)
         -10 : 4106.dasm (-2.22 % of base)
         -10 : 3865.dasm (-3.33 % of base)
          -8 : 17394.dasm (-0.51 % of base)
          -8 : 13684.dasm (-0.48 % of base)
          -8 : 69.dasm (-0.93 % of base)
          -8 : 1341.dasm (-1.31 % of base)
          -6 : 5404.dasm (-1.94 % of base)
          -6 : 7931.dasm (-1.01 % of base)
          -4 : 28788.dasm (-0.41 % of base)
          -2 : 31075.dasm (-0.32 % of base)
          -2 : 3370.dasm (-0.11 % of base)
          -2 : 2984.dasm (-0.24 % of base)
          -2 : 494.dasm (-0.20 % of base)
18 total files with Code Size differences (14 improved, 4 regressed), 1 unchanged.
Top method regressions (bytes):
          14 (3.03 % of base) : 1660.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (FullOpts)
           2 (0.10 % of base) : 3362.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
           2 (0.18 % of base) : 4628.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
           2 (0.21 % of base) : 4637.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
Top method improvements (bytes):
         -12 (-0.15 % of base) : 19073.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.Net.WebSockets.ValueWebSocketReceiveResult]:MoveNext():this (FullOpts)
         -10 (-3.33 % of base) : 3865.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
         -10 (-2.22 % of base) : 4106.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
          -8 (-1.31 % of base) : 1341.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (FullOpts)
          -8 (-0.93 % of base) : 69.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -8 (-0.48 % of base) : 13684.dasm - System.Environment:ReadXdgDirectory(System.String,System.String,System.String):System.String (FullOpts)
          -8 (-0.51 % of base) : 17394.dasm - System.Formats.Tar.TarReader+<DisposeAsync>d__8:MoveNext():this (FullOpts)
          -6 (-1.94 % of base) : 5404.dasm - System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
          -6 (-1.01 % of base) : 7931.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (FullOpts)
          -4 (-0.41 % of base) : 28788.dasm - System.Diagnostics.ProcessWaitState:CheckChildren(ubyte,ubyte) (FullOpts)
          -2 (-0.32 % of base) : 31075.dasm - System.IO.BinaryReader:Read():int:this (FullOpts)
          -2 (-0.11 % of base) : 3370.dasm - System.Net.Security.SslStream+<EnsureFullTlsFrameAsync>d__169`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
          -2 (-0.20 % of base) : 494.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (FullOpts)
          -2 (-0.24 % of base) : 2984.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)
Top method regressions (percentages):
          14 (3.03 % of base) : 1660.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (FullOpts)
           2 (0.21 % of base) : 4637.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
           2 (0.18 % of base) : 4628.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
           2 (0.10 % of base) : 3362.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
Top method improvements (percentages):
         -10 (-3.33 % of base) : 3865.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
         -10 (-2.22 % of base) : 4106.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
          -6 (-1.94 % of base) : 5404.dasm - System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
          -8 (-1.31 % of base) : 1341.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (FullOpts)
          -6 (-1.01 % of base) : 7931.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (FullOpts)
          -8 (-0.93 % of base) : 69.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -8 (-0.51 % of base) : 17394.dasm - System.Formats.Tar.TarReader+<DisposeAsync>d__8:MoveNext():this (FullOpts)
          -8 (-0.48 % of base) : 13684.dasm - System.Environment:ReadXdgDirectory(System.String,System.String,System.String):System.String (FullOpts)
          -4 (-0.41 % of base) : 28788.dasm - System.Diagnostics.ProcessWaitState:CheckChildren(ubyte,ubyte) (FullOpts)
          -2 (-0.32 % of base) : 31075.dasm - System.IO.BinaryReader:Read():int:this (FullOpts)
          -2 (-0.24 % of base) : 2984.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)
          -2 (-0.20 % of base) : 494.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (FullOpts)
         -12 (-0.15 % of base) : 19073.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.Net.WebSockets.ValueWebSocketReceiveResult]:MoveNext():this (FullOpts)
          -2 (-0.11 % of base) : 3370.dasm - System.Net.Security.SslStream+<EnsureFullTlsFrameAsync>d__169`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (FullOpts)
18 total methods with Code Size differences (14 improved, 4 regressed).
  
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: 24676764 (overridden on cmd)
Total bytes of diff: 24676738 (overridden on cmd)
Total bytes of delta: -26 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
           4 : 43857.dasm (0.45 % of base)
           2 : 15987.dasm (0.18 % of base)
           2 : 9965.dasm (0.21 % of base)
Top file improvements (bytes):
          -8 : 17233.dasm (-0.47 % of base)
          -6 : 175.dasm (-0.69 % of base)
          -6 : 40766.dasm (-0.79 % of base)
          -6 : 7591.dasm (-1.94 % of base)
          -6 : 17145.dasm (-0.94 % of base)
          -2 : 1399.dasm (-0.20 % of base)
9 total files with Code Size differences (6 improved, 3 regressed), 1 unchanged.
Top method regressions (bytes):
           4 (0.45 % of base) : 43857.dasm - System.Threading.TimerQueue:TimerThread() (Tier0-FullOpts)
           2 (0.18 % of base) : 15987.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (Tier0-FullOpts)
           2 (0.21 % of base) : 9965.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
Top method improvements (bytes):
          -8 (-0.47 % of base) : 17233.dasm - System.Environment:ReadXdgDirectory(System.String,System.String,System.String):System.String (Tier0-FullOpts)
          -6 (-0.94 % of base) : 17145.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (Tier0-FullOpts)
          -6 (-0.69 % of base) : 175.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier0-FullOpts)
          -6 (-1.94 % of base) : 7591.dasm - System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
          -6 (-0.79 % of base) : 40766.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
          -2 (-0.20 % of base) : 1399.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (Tier0-FullOpts)
Top method regressions (percentages):
           4 (0.45 % of base) : 43857.dasm - System.Threading.TimerQueue:TimerThread() (Tier0-FullOpts)
           2 (0.21 % of base) : 9965.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
           2 (0.18 % of base) : 15987.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (Tier0-FullOpts)
Top method improvements (percentages):
          -6 (-1.94 % of base) : 7591.dasm - System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
          -6 (-0.94 % of base) : 17145.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (Tier0-FullOpts)
          -6 (-0.79 % of base) : 40766.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
          -6 (-0.69 % of base) : 175.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier0-FullOpts)
          -8 (-0.47 % of base) : 17233.dasm - System.Environment:ReadXdgDirectory(System.String,System.String,System.String):System.String (Tier0-FullOpts)
          -2 (-0.20 % of base) : 1399.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (Tier0-FullOpts)
9 total methods with Code Size differences (6 improved, 3 regressed).
  
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: 17983552 (overridden on cmd)
Total bytes of diff: 17983488 (overridden on cmd)
Total bytes of delta: -64 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
          14 : 11723.dasm (3.03 % of base)
           2 : 6889.dasm (0.21 % of base)
           2 : 6875.dasm (0.18 % of base)
           2 : 10759.dasm (0.10 % of base)
Top file improvements (bytes):
         -12 : 40756.dasm (-0.15 % of base)
         -10 : 15877.dasm (-3.12 % of base)
          -8 : 38667.dasm (-0.51 % of base)
          -8 : 165.dasm (-0.93 % of base)
          -8 : 29579.dasm (-0.48 % of base)
          -8 : 3199.dasm (-1.31 % of base)
          -6 : 5411.dasm (-1.94 % of base)
          -6 : 11291.dasm (-1.01 % of base)
          -6 : 16324.dasm (-1.22 % of base)
          -4 : 56293.dasm (-0.41 % of base)
          -2 : 1234.dasm (-0.20 % of base)
          -2 : 60342.dasm (-0.32 % of base)
          -2 : 11777.dasm (-0.24 % of base)
          -2 : 9473.dasm (-0.11 % of base)
18 total files with Code Size differences (14 improved, 4 regressed), 1 unchanged.
Top method regressions (bytes):
          14 (3.03 % of base) : 11723.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (Tier0-FullOpts)
           2 (0.10 % of base) : 10759.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Tier0-FullOpts)
           2 (0.18 % of base) : 6875.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (Tier0-FullOpts)
           2 (0.21 % of base) : 6889.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
Top method improvements (bytes):
         -12 (-0.15 % of base) : 40756.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.Net.WebSockets.ValueWebSocketReceiveResult]:MoveNext():this (Tier0-FullOpts)
         -10 (-3.12 % of base) : 15877.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (Tier0-FullOpts)
          -8 (-1.31 % of base) : 3199.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (Tier0-FullOpts)
          -8 (-0.93 % of base) : 165.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier0-FullOpts)
          -8 (-0.48 % of base) : 29579.dasm - System.Environment:ReadXdgDirectory(System.String,System.String,System.String):System.String (Tier0-FullOpts)
          -8 (-0.51 % of base) : 38667.dasm - System.Formats.Tar.TarReader+<DisposeAsync>d__8:MoveNext():this (Tier0-FullOpts)
          -6 (-1.94 % of base) : 5411.dasm - System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
          -6 (-1.22 % of base) : 16324.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (Tier0-FullOpts)
          -6 (-1.01 % of base) : 11291.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
          -4 (-0.41 % of base) : 56293.dasm - System.Diagnostics.ProcessWaitState:CheckChildren(ubyte,ubyte) (Tier0-FullOpts)
          -2 (-0.32 % of base) : 60342.dasm - System.IO.BinaryReader:Read():int:this (Tier0-FullOpts)
          -2 (-0.11 % of base) : 9473.dasm - System.Net.Security.SslStream+<EnsureFullTlsFrameAsync>d__169`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (Tier0-FullOpts)
          -2 (-0.20 % of base) : 1234.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (Tier0-FullOpts)
          -2 (-0.24 % of base) : 11777.dasm - System.Threading.TimerQueue:TimerThread() (Tier0-FullOpts)
Top method regressions (percentages):
          14 (3.03 % of base) : 11723.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (Tier0-FullOpts)
           2 (0.21 % of base) : 6889.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
           2 (0.18 % of base) : 6875.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (Tier0-FullOpts)
           2 (0.10 % of base) : 10759.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Tier0-FullOpts)
Top method improvements (percentages):
         -10 (-3.12 % of base) : 15877.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (Tier0-FullOpts)
          -6 (-1.94 % of base) : 5411.dasm - System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
          -8 (-1.31 % of base) : 3199.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (Tier0-FullOpts)
          -6 (-1.22 % of base) : 16324.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (Tier0-FullOpts)
          -6 (-1.01 % of base) : 11291.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
          -8 (-0.93 % of base) : 165.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier0-FullOpts)
          -8 (-0.51 % of base) : 38667.dasm - System.Formats.Tar.TarReader+<DisposeAsync>d__8:MoveNext():this (Tier0-FullOpts)
          -8 (-0.48 % of base) : 29579.dasm - System.Environment:ReadXdgDirectory(System.String,System.String,System.String):System.String (Tier0-FullOpts)
          -4 (-0.41 % of base) : 56293.dasm - System.Diagnostics.ProcessWaitState:CheckChildren(ubyte,ubyte) (Tier0-FullOpts)
          -2 (-0.32 % of base) : 60342.dasm - System.IO.BinaryReader:Read():int:this (Tier0-FullOpts)
          -2 (-0.24 % of base) : 11777.dasm - System.Threading.TimerQueue:TimerThread() (Tier0-FullOpts)
          -2 (-0.20 % of base) : 1234.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (Tier0-FullOpts)
         -12 (-0.15 % of base) : 40756.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.Net.WebSockets.ValueWebSocketReceiveResult]:MoveNext():this (Tier0-FullOpts)
          -2 (-0.11 % of base) : 9473.dasm - System.Net.Security.SslStream+<EnsureFullTlsFrameAsync>d__169`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (Tier0-FullOpts)
18 total methods with Code Size differences (14 improved, 4 regressed).
  
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: 321243680 (overridden on cmd)
Total bytes of diff: 321243182 (overridden on cmd)
Total bytes of delta: -498 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
           6 : 118627.dasm (0.14 % of base)
           6 : 167759.dasm (0.15 % of base)
           6 : 185428.dasm (0.14 % of base)
           6 : 210555.dasm (0.14 % of base)
           6 : 214984.dasm (0.14 % of base)
           6 : 237164.dasm (0.14 % of base)
           6 : 246883.dasm (0.14 % of base)
           6 : 111483.dasm (0.14 % of base)
           6 : 156932.dasm (0.14 % of base)
           6 : 226039.dasm (0.14 % of base)
           6 : 27113.dasm (0.15 % of base)
           6 : 294544.dasm (0.14 % of base)
           6 : 5020.dasm (0.14 % of base)
           6 : 116451.dasm (0.14 % of base)
           6 : 166172.dasm (0.14 % of base)
           6 : 179412.dasm (0.14 % of base)
           6 : 208823.dasm (0.14 % of base)
           6 : 216924.dasm (0.14 % of base)
           6 : 218480.dasm (0.14 % of base)
           6 : 8064.dasm (0.14 % of base)
Top file improvements (bytes):
         -32 : 202699.dasm (-19.75 % of base)
         -32 : 418649.dasm (-19.75 % of base)
         -26 : 2142.dasm (-0.84 % of base)
         -22 : 309793.dasm (-0.92 % of base)
         -22 : 477180.dasm (-0.93 % of base)
         -20 : 311037.dasm (-0.79 % of base)
         -18 : 2859.dasm (-2.22 % of base)
         -16 : 477587.dasm (-0.61 % of base)
         -14 : 274382.dasm (-0.39 % of base)
         -14 : 300827.dasm (-3.59 % of base)
         -14 : 301680.dasm (-3.59 % of base)
         -14 : 303287.dasm (-3.63 % of base)
         -14 : 303678.dasm (-3.63 % of base)
         -12 : 304388.dasm (-3.00 % of base)
         -12 : 302423.dasm (-3.19 % of base)
         -12 : 311135.dasm (-3.00 % of base)
         -10 : 167001.dasm (-3.38 % of base)
         -10 : 272938.dasm (-2.66 % of base)
         -10 : 2877.dasm (-1.66 % of base)
         -10 : 301841.dasm (-2.65 % of base)
58 total files with Code Size differences (28 improved, 30 regressed), 5 unchanged.
Top method regressions (bytes):
           6 (0.14 % of base) : 118627.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.15 % of base) : 167759.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 185428.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 210555.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 214984.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 237164.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 246883.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 111483.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 156932.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 226039.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.15 % of base) : 27113.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 294544.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 5020.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 116451.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 166172.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 179412.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 208823.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 216924.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 218480.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 8064.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
Top method improvements (bytes):
         -32 (-19.75 % of base) : 418649.dasm - Program:M49() (FullOpts)
         -32 (-19.75 % of base) : 202699.dasm - Program:M49() (Tier0-FullOpts)
         -26 (-0.84 % of base) : 2142.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         -22 (-0.93 % of base) : 477180.dasm - Microsoft.Build.BackEnd.Scheduler:DumpSchedulerState():this (FullOpts)
         -22 (-0.92 % of base) : 309793.dasm - Microsoft.Build.BackEnd.Scheduler:DumpSchedulerState():this (Tier0-FullOpts)
         -20 (-0.79 % of base) : 311037.dasm - R2RTest.Buckets:WriteToStream(System.IO.StreamWriter,ubyte):this (Tier0-FullOpts)
         -18 (-2.22 % of base) : 2859.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         -16 (-0.61 % of base) : 477587.dasm - R2RTest.Buckets:WriteToStream(System.IO.StreamWriter,ubyte):this (FullOpts)
         -14 (-0.39 % of base) : 274382.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitPortableExecutable():this (Tier0-FullOpts)
         -14 (-3.59 % of base) : 300827.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -14 (-3.59 % of base) : 301680.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -14 (-3.63 % of base) : 303287.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -14 (-3.63 % of base) : 303678.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -12 (-3.00 % of base) : 304388.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -12 (-3.19 % of base) : 302423.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -12 (-3.00 % of base) : 311135.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -10 (-0.65 % of base) : 476929.dasm - Microsoft.Build.Execution.ProjectInstance:CreateItemsSnapshot(System.Collections.Generic.ICollection`1[Microsoft.Build.Evaluation.ProjectItem],int,ubyte):System.Collections.Generic.Dictionary`2[Microsoft.Build.Evaluation.ProjectItem,Microsoft.Build.Execution.ProjectItemInstance]:this (FullOpts)
         -10 (-2.66 % of base) : 272938.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -10 (-2.65 % of base) : 301841.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -10 (-2.66 % of base) : 301128.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
Top method regressions (percentages):
           4 (0.50 % of base) : 463819.dasm - ILCompiler.PEWriter.SectionBuilder:RelocateOutputFile(System.Reflection.Metadata.BlobBuilder,ulong,System.IO.Stream):this (FullOpts)
           4 (0.50 % of base) : 275254.dasm - ILCompiler.PEWriter.SectionBuilder:RelocateOutputFile(System.Reflection.Metadata.BlobBuilder,ulong,System.IO.Stream):this (Tier0-FullOpts)
           2 (0.21 % of base) : 315517.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
           4 (0.21 % of base) : 312274.dasm - System.IO.BinaryReader:ReadString():System.String:this (Tier1)
           2 (0.21 % of base) : 1012.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
           2 (0.19 % of base) : 167529.dasm - System.Reflection.RuntimeParameterInfo:GetParameters(System.IRuntimeMethodInfo,System.Reflection.MemberInfo,System.Signature,byref,ubyte):System.Reflection.ParameterInfo[] (Tier1)
           2 (0.19 % of base) : 382956.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
           2 (0.19 % of base) : 153148.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (Tier0-FullOpts)
           6 (0.15 % of base) : 167759.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.15 % of base) : 27113.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.15 % of base) : 174498.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 118627.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 185428.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 210555.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 237164.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 246883.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 111483.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 226039.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 294544.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
           6 (0.14 % of base) : 5020.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier1)
Top method improvements (percentages):
         -32 (-19.75 % of base) : 418649.dasm - Program:M49() (FullOpts)
         -32 (-19.75 % of base) : 202699.dasm - Program:M49() (Tier0-FullOpts)
          -8 (-3.92 % of base) : 424436.dasm - Test.BB:TestEntryPoint() (FullOpts)
          -8 (-3.85 % of base) : 211836.dasm - Test.BB:TestEntryPoint() (Tier0-FullOpts)
         -14 (-3.63 % of base) : 303287.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -14 (-3.63 % of base) : 303678.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -14 (-3.59 % of base) : 300827.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -14 (-3.59 % of base) : 301680.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -10 (-3.38 % of base) : 167001.dasm - System.Diagnostics.Tracing.ManifestBuilder:TranslateIndexToManifestConvention(int,System.String):int:this (Instrumented Tier1)
         -12 (-3.19 % of base) : 302423.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -12 (-3.00 % of base) : 304388.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -12 (-3.00 % of base) : 311135.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -10 (-2.66 % of base) : 272938.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -10 (-2.66 % of base) : 301128.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -10 (-2.65 % of base) : 301841.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:UnionWith(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -18 (-2.22 % of base) : 2859.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         -10 (-1.66 % of base) : 2877.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier1)
          -6 (-1.42 % of base) : 416327.dasm - Mutate:TestEntryPoint():int (FullOpts)
          -6 (-1.42 % of base) : 201661.dasm - Mutate:TestEntryPoint():int (Tier0-FullOpts)
          -8 (-1.31 % of base) : 464022.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (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: 35989292 (overridden on cmd)
Total bytes of diff: 35989264 (overridden on cmd)
Total bytes of delta: -28 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
          18 : 167795.dasm (2.33 % of base)
Top file improvements (bytes):
          -8 : 107925.dasm (-1.49 % of base)
          -8 : 19865.dasm (-1.36 % of base)
          -6 : 107930.dasm (-0.97 % of base)
          -6 : 192287.dasm (-0.74 % of base)
          -6 : 171960.dasm (-0.36 % of base)
          -6 : 108885.dasm (-0.36 % of base)
          -4 : 167768.dasm (-3.57 % of base)
          -2 : 18274.dasm (-0.26 % of base)
9 total files with Code Size differences (8 improved, 1 regressed), 1 unchanged.
Top method regressions (bytes):
          18 (2.33 % of base) : 167795.dasm - ParallelRunner:BuildProjects(int,int,int,int,System.Collections.Generic.List`1[ProcessInfo],ReadyToRunJittedMethods,int) (FullOpts)
Top method improvements (bytes):
          -8 (-1.36 % of base) : 19865.dasm - System.Diagnostics.Tracing.EventSource:GetSources():System.Collections.Generic.IEnumerable`1[System.Diagnostics.Tracing.EventSource] (FullOpts)
          -8 (-1.49 % of base) : 107925.dasm - System.Xml.Linq.Extensions+<GetDescendantNodes>d__22`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -6 (-0.36 % of base) : 171960.dasm - System.Configuration.BaseConfigurationRecord:Evaluate(System.Configuration.FactoryRecord,System.Configuration.SectionRecord,System.Object,ubyte,ubyte,byref,byref):ubyte:this (FullOpts)
          -6 (-0.36 % of base) : 108885.dasm - System.Configuration.BaseConfigurationRecord:Evaluate(System.Configuration.FactoryRecord,System.Configuration.SectionRecord,System.Object,ubyte,ubyte,byref,byref):ubyte:this (FullOpts)
          -6 (-0.74 % of base) : 192287.dasm - System.Data.ProviderBase.DbConnectionPool:TryGetConnection(System.Data.Common.DbConnection,uint,ubyte,ubyte,System.Data.Common.DbConnectionOptions,byref):ubyte:this (FullOpts)
          -6 (-0.97 % of base) : 107930.dasm - System.Xml.Linq.Extensions+<GetDescendants>d__23`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -4 (-3.57 % of base) : 167768.dasm - System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this (FullOpts)
          -2 (-0.26 % of base) : 18274.dasm - System.IO.BinaryReader:Read():int:this (FullOpts)
Top method regressions (percentages):
          18 (2.33 % of base) : 167795.dasm - ParallelRunner:BuildProjects(int,int,int,int,System.Collections.Generic.List`1[ProcessInfo],ReadyToRunJittedMethods,int) (FullOpts)
Top method improvements (percentages):
          -4 (-3.57 % of base) : 167768.dasm - System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this (FullOpts)
          -8 (-1.49 % of base) : 107925.dasm - System.Xml.Linq.Extensions+<GetDescendantNodes>d__22`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-1.36 % of base) : 19865.dasm - System.Diagnostics.Tracing.EventSource:GetSources():System.Collections.Generic.IEnumerable`1[System.Diagnostics.Tracing.EventSource] (FullOpts)
          -6 (-0.97 % of base) : 107930.dasm - System.Xml.Linq.Extensions+<GetDescendants>d__23`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -6 (-0.74 % of base) : 192287.dasm - System.Data.ProviderBase.DbConnectionPool:TryGetConnection(System.Data.Common.DbConnection,uint,ubyte,ubyte,System.Data.Common.DbConnectionOptions,byref):ubyte:this (FullOpts)
          -6 (-0.36 % of base) : 171960.dasm - System.Configuration.BaseConfigurationRecord:Evaluate(System.Configuration.FactoryRecord,System.Configuration.SectionRecord,System.Object,ubyte,ubyte,byref,byref):ubyte:this (FullOpts)
          -6 (-0.36 % of base) : 108885.dasm - System.Configuration.BaseConfigurationRecord:Evaluate(System.Configuration.FactoryRecord,System.Configuration.SectionRecord,System.Object,ubyte,ubyte,byref,byref):ubyte:this (FullOpts)
          -2 (-0.26 % of base) : 18274.dasm - System.IO.BinaryReader:Read():int:this (FullOpts)
9 total methods with Code Size differences (8 improved, 1 regressed).
  
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: 49882798 (overridden on cmd)
Total bytes of diff: 49881728 (overridden on cmd)
Total bytes of delta: -1070 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
          10 : 176397.dasm (2.92 % of base)
           4 : 189564.dasm (0.21 % of base)
           2 : 220344.dasm (0.18 % of base)
           2 : 68009.dasm (0.23 % of base)
           2 : 88.dasm (0.21 % of base)
Top file improvements (bytes):
         -30 : 272542.dasm (-2.03 % of base)
         -28 : 245942.dasm (-0.98 % of base)
         -24 : 98558.dasm (-1.08 % of base)
         -22 : 191628.dasm (-0.66 % of base)
         -22 : 252989.dasm (-0.93 % of base)
         -20 : 227741.dasm (-0.76 % of base)
         -20 : 256732.dasm (-0.79 % of base)
         -18 : 27387.dasm (-0.21 % of base)
         -18 : 184752.dasm (-1.05 % of base)
         -18 : 239795.dasm (-1.05 % of base)
         -16 : 270576.dasm (-1.24 % of base)
         -16 : 71179.dasm (-0.77 % of base)
         -14 : 196263.dasm (-0.24 % of base)
         -14 : 251961.dasm (-0.69 % of base)
         -14 : 254151.dasm (-1.35 % of base)
         -14 : 191666.dasm (-1.08 % of base)
         -14 : 255899.dasm (-1.89 % of base)
         -14 : 272209.dasm (-0.67 % of base)
         -14 : 174334.dasm (-1.06 % of base)
         -14 : 252017.dasm (-1.41 % of base)
61 total files with Code Size differences (56 improved, 5 regressed), 3 unchanged.
Top method regressions (bytes):
          10 (2.92 % of base) : 176397.dasm - System.Collections.Generic.SortedSet`1[ubyte]:IntersectWithEnumerable(System.Collections.Generic.IEnumerable`1[ubyte]):this (FullOpts)
           4 (0.21 % of base) : 189564.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) (FullOpts)
           2 (0.23 % of base) : 68009.dasm - ILCompiler.PEWriter.SectionBuilder:RelocateOutputFile(System.Reflection.Metadata.BlobBuilder,ulong,System.IO.Stream):this (FullOpts)
           2 (0.18 % of base) : 220344.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
           2 (0.21 % of base) : 88.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
Top method improvements (bytes):
         -30 (-2.03 % of base) : 272542.dasm - System.Composition.Convention.PartConventionBuilder:BuildPropertyAttributes(System.Type,byref):this (FullOpts)
         -28 (-0.98 % of base) : 245942.dasm - System.Data.DataTable:ReadXmlSchema(System.Xml.XmlReader,ubyte):this (FullOpts)
         -24 (-1.08 % of base) : 98558.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.StackScheduler:FilterValidStackLocals(System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.CodeGen.StackScheduler+LocalDefUseInfo]):System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.CodeGen.StackScheduler+LocalDefUseInfo] (FullOpts)
         -22 (-0.93 % of base) : 252989.dasm - Microsoft.Build.BackEnd.Scheduler:DumpSchedulerState():this (FullOpts)
         -22 (-0.66 % of base) : 191628.dasm - Xunit.Sdk.XunitTestAssemblyRunner+<RunTestCollectionsAsync>d__14:MoveNext():this (FullOpts)
         -20 (-0.79 % of base) : 256732.dasm - Microsoft.Build.BackEnd.TaskBuilder+<ExecuteBucket>d__19:MoveNext():this (FullOpts)
         -20 (-0.76 % of base) : 227741.dasm - R2RTest.Buckets:WriteToStream(System.IO.StreamWriter,ubyte):this (FullOpts)
         -18 (-1.05 % of base) : 184752.dasm - System.Configuration.BaseConfigurationRecord:Evaluate(System.Configuration.FactoryRecord,System.Configuration.SectionRecord,System.Object,ubyte,ubyte,byref,byref):ubyte:this (FullOpts)
         -18 (-1.05 % of base) : 239795.dasm - System.Configuration.BaseConfigurationRecord:Evaluate(System.Configuration.FactoryRecord,System.Configuration.SectionRecord,System.Object,ubyte,ubyte,byref,byref):ubyte:this (FullOpts)
         -18 (-0.21 % of base) : 27387.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.__Canon]:MoveNext():this (FullOpts)
         -16 (-0.77 % of base) : 71179.dasm - Microsoft.Diagnostics.Tracing.ZippedETLWriter:WriteArchive(int):ubyte:this (FullOpts)
         -16 (-1.24 % of base) : 270576.dasm - Microsoft.DotNet.XUnitExtensions.XunitParallelTheoryTestCaseRunner+<RunTestAsync>d__11:MoveNext():this (FullOpts)
         -14 (-1.35 % of base) : 254151.dasm - Microsoft.Build.BackEnd.Logging.LoggingService:ShutdownComponent():this (FullOpts)
         -14 (-1.89 % of base) : 255899.dasm - Microsoft.Build.Evaluation.ProjectCollection+LoadedProjectCollection:AddProject(Microsoft.Build.Evaluation.Project):this (FullOpts)
         -14 (-0.69 % of base) : 251961.dasm - Microsoft.Build.Execution.BuildManager:EndBuild():this (FullOpts)
         -14 (-1.41 % of base) : 252017.dasm - Microsoft.Build.Execution.BuildManager:OnThreadException(System.Exception):this (FullOpts)
         -14 (-0.24 % of base) : 196263.dasm - Microsoft.CodeAnalysis.CommonCompiler:CompileAndEmit(Microsoft.CodeAnalysis.TouchedFileLogger,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText],Microsoft.CodeAnalysis.AnalyzerConfigSet,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AnalyzerConfigOptionsResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.ErrorLogger,System.Threading.CancellationToken,byref,byref,byref):this (FullOpts)
         -14 (-1.19 % of base) : 272541.dasm - System.Composition.Convention.PartConventionBuilder:BuildOnImportsSatisfiedNotification(System.Type,byref):this (FullOpts)
         -14 (-1.06 % of base) : 174334.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateIPAddresses>d__8:MoveNext():ubyte:this (FullOpts)
         -14 (-0.67 % of base) : 272209.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts)
Top method regressions (percentages):
          10 (2.92 % of base) : 176397.dasm - System.Collections.Generic.SortedSet`1[ubyte]:IntersectWithEnumerable(System.Collections.Generic.IEnumerable`1[ubyte]):this (FullOpts)
           2 (0.23 % of base) : 68009.dasm - ILCompiler.PEWriter.SectionBuilder:RelocateOutputFile(System.Reflection.Metadata.BlobBuilder,ulong,System.IO.Stream):this (FullOpts)
           2 (0.21 % of base) : 88.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
           4 (0.21 % of base) : 189564.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) (FullOpts)
           2 (0.18 % of base) : 220344.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
Top method improvements (percentages):
          -4 (-4.26 % of base) : 237348.dasm - System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this (FullOpts)
         -10 (-3.62 % of base) : 166607.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (FullOpts)
          -6 (-2.97 % of base) : 272709.dasm - Microsoft.Extensions.Configuration.ConfigurationManager:Microsoft.Extensions.Configuration.IConfigurationRoot.Reload():this (FullOpts)
          -8 (-2.76 % of base) : 255898.dasm - Microsoft.Build.Evaluation.ProjectCollection+LoadedProjectCollection:GetMatchingProjectIfAny(System.String,System.Collections.Generic.IDictionary`2[System.String,System.String],System.String):Microsoft.Build.Evaluation.Project:this (FullOpts)
          -6 (-2.46 % of base) : 235971.dasm - System.IO.Packaging.PackagePart:Close():this (FullOpts)
         -12 (-2.43 % of base) : 229626.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[ubyte]:ReserveOneMessage():ubyte:this (FullOpts)
          -8 (-2.26 % of base) : 230508.dasm - Microsoft.Extensions.DependencyInjection.DependencyInjectionEventSource:OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this (FullOpts)
          -8 (-2.22 % of base) : 254146.dasm - Microsoft.Build.BackEnd.Logging.LoggingService:get_RegisteredLoggerTypeNames():System.Collections.Generic.ICollection`1[System.String]:this (FullOpts)
          -6 (-2.17 % of base) : 251116.dasm - Microsoft.Build.Evaluation.ProjectCollection:RemoveGlobalProperty(System.String):ubyte:this (FullOpts)
         -12 (-2.17 % of base) : 224974.dasm - Microsoft.Build.Framework.NativeMethods:KillTree(int) (FullOpts)
          -6 (-2.11 % of base) : 166606.dasm - Xunit.AggregateMessageSink:Dispose():this (FullOpts)
         -30 (-2.03 % of base) : 272542.dasm - System.Composition.Convention.PartConventionBuilder:BuildPropertyAttributes(System.Type,byref):this (FullOpts)
          -6 (-2.03 % of base) : 251096.dasm - Microsoft.Build.Evaluation.ProjectCollection:RemoveAllToolsets():this (FullOpts)
          -8 (-1.98 % of base) : 174793.dasm - System.Security.Cryptography.X509Certificates.X500NameEncoder:X500DistinguishedNameEncode(System.String,int):ubyte[] (FullOpts)
          -6 (-1.96 % of base) : 237359.dasm - System.Net.HttpEndPointListener:Close():this (FullOpts)
          -8 (-1.92 % of base) : 155880.dasm - Newtonsoft.Json.Linq.JsonPath.ArrayMultipleIndexFilter+<ExecuteFilter>d__2:MoveNext():ubyte:this (FullOpts)
          -6 (-1.90 % of base) : 265690.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
         -14 (-1.89 % of base) : 255899.dasm - Microsoft.Build.Evaluation.ProjectCollection+LoadedProjectCollection:AddProject(Microsoft.Build.Evaluation.Project):this (FullOpts)
          -8 (-1.89 % of base) : 265784.dasm - System.Net.Http.Headers.HttpHeaderValueCollection`1+<<GetEnumerator>g__Iterate|14_0>d[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-1.87 % of base) : 267588.dasm - System.Security.Claims.ClaimsIdentity+<CombinedClaimsIterator>d__38: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: 17138332 (overridden on cmd)
Total bytes of diff: 17138248 (overridden on cmd)
Total bytes of delta: -84 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
           2 : 568.dasm (0.21 % of base)
Top file improvements (bytes):
         -26 : 24249.dasm (-0.79 % of base)
         -10 : 23800.dasm (-3.62 % of base)
          -8 : 5323.dasm (-0.88 % of base)
          -8 : 681.dasm (-0.68 % of base)
          -8 : 9482.dasm (-0.88 % of base)
          -6 : 17791.dasm (-0.58 % of base)
          -6 : 671.dasm (-0.47 % of base)
          -6 : 1442.dasm (-0.62 % of base)
          -6 : 6463.dasm (-0.58 % of base)
          -2 : 5279.dasm (-0.18 % of base)
11 total files with Code Size differences (10 improved, 1 regressed), 0 unchanged.
Top method regressions (bytes):
           2 (0.21 % of base) : 568.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
Top method improvements (bytes):
         -26 (-0.79 % of base) : 24249.dasm - Xunit.Sdk.XunitTestAssemblyRunner+<RunTestCollectionsAsync>d__14:MoveNext():this (Tier0-FullOpts)
         -10 (-3.62 % of base) : 23800.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier0-FullOpts)
          -8 (-0.68 % of base) : 681.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Instrumented Tier1)
          -8 (-0.88 % of base) : 5323.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier1)
          -8 (-0.88 % of base) : 9482.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier1)
          -6 (-0.62 % of base) : 1442.dasm - System.Diagnostics.ProcessWaitState:CheckChildren(ubyte,ubyte) (Tier0-FullOpts)
          -6 (-0.47 % of base) : 671.dasm - System.Diagnostics.Tracing.EventSource:InitializeProviderMetadata():this (Instrumented Tier1)
          -6 (-0.58 % of base) : 17791.dasm - System.Reflection.RuntimeParameterInfo:GetParameters(System.IRuntimeMethodInfo,System.Reflection.MemberInfo,System.Signature,byref,ubyte):System.Reflection.ParameterInfo[] (Tier1)
          -6 (-0.58 % of base) : 6463.dasm - System.Reflection.RuntimeParameterInfo:GetParameters(System.IRuntimeMethodInfo,System.Reflection.MemberInfo,System.Signature,byref,ubyte):System.Reflection.ParameterInfo[] (Tier1)
          -2 (-0.18 % of base) : 5279.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
Top method regressions (percentages):
           2 (0.21 % of base) : 568.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (Tier0-FullOpts)
Top method improvements (percentages):
         -10 (-3.62 % of base) : 23800.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier0-FullOpts)
          -8 (-0.88 % of base) : 5323.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier1)
          -8 (-0.88 % of base) : 9482.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier1)
         -26 (-0.79 % of base) : 24249.dasm - Xunit.Sdk.XunitTestAssemblyRunner+<RunTestCollectionsAsync>d__14:MoveNext():this (Tier0-FullOpts)
          -8 (-0.68 % of base) : 681.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Instrumented Tier1)
          -6 (-0.62 % of base) : 1442.dasm - System.Diagnostics.ProcessWaitState:CheckChildren(ubyte,ubyte) (Tier0-FullOpts)
          -6 (-0.58 % of base) : 17791.dasm - System.Reflection.RuntimeParameterInfo:GetParameters(System.IRuntimeMethodInfo,System.Reflection.MemberInfo,System.Signature,byref,ubyte):System.Reflection.ParameterInfo[] (Tier1)
          -6 (-0.58 % of base) : 6463.dasm - System.Reflection.RuntimeParameterInfo:GetParameters(System.IRuntimeMethodInfo,System.Reflection.MemberInfo,System.Signature,byref,ubyte):System.Reflection.ParameterInfo[] (Tier1)
          -6 (-0.47 % of base) : 671.dasm - System.Diagnostics.Tracing.EventSource:InitializeProviderMetadata():this (Instrumented Tier1)
          -2 (-0.18 % of base) : 5279.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
11 total methods with Code Size differences (10 improved, 1 regressed).
  
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: 93857406 (overridden on cmd)
Total bytes of diff: 93856520 (overridden on cmd)
Total bytes of delta: -886 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
          10 : 209722.dasm (1.12 % of base)
           8 : 130581.dasm (0.78 % of base)
           8 : 83060.dasm (1.65 % of base)
           6 : 130578.dasm (0.65 % of base)
           4 : 208069.dasm (0.42 % of base)
           4 : 58517.dasm (0.23 % of base)
           4 : 208092.dasm (0.46 % of base)
           4 : 208141.dasm (0.46 % of base)
           4 : 208024.dasm (0.44 % of base)
           4 : 208027.dasm (0.46 % of base)
           4 : 231168.dasm (0.32 % of base)
           2 : 196.dasm (0.21 % of base)
           2 : 269936.dasm (0.21 % of base)
           2 : 156911.dasm (0.12 % of base)
           2 : 157496.dasm (0.12 % of base)
           2 : 271127.dasm (0.18 % of base)
           2 : 142758.dasm (0.14 % of base)
           2 : 7784.dasm (0.18 % of base)
Top file improvements (bytes):
         -22 : 304820.dasm (-0.79 % of base)
         -22 : 122886.dasm (-1.00 % of base)
         -22 : 846.dasm (-0.67 % of base)
         -22 : 88456.dasm (-1.46 % of base)
         -18 : 149923.dasm (-0.21 % of base)
         -16 : 122523.dasm (-0.78 % of base)
         -16 : 297614.dasm (-0.76 % of base)
         -16 : 9365.dasm (-1.29 % of base)
         -16 : 300294.dasm (-0.64 % of base)
         -14 : 299525.dasm (-0.79 % of base)
         -14 : 149875.dasm (-0.33 % of base)
         -14 : 20609.dasm (-0.73 % of base)
         -14 : 224430.dasm (-1.06 % of base)
         -14 : 156089.dasm (-0.57 % of base)
         -14 : 3897.dasm (-1.11 % of base)
         -14 : 14651.dasm (-1.52 % of base)
         -12 : 306653.dasm (-1.38 % of base)
         -12 : 150969.dasm (-1.56 % of base)
         -12 : 152157.dasm (-1.56 % of base)
         -12 : 187418.dasm (-1.56 % of base)
59 total files with Code Size differences (41 improved, 18 regressed), 19 unchanged.
Top method regressions (bytes):
          10 (1.12 % of base) : 209722.dasm - System.Tests.DecimalTests+BigIntegerCompare:Test() (FullOpts)
           8 (1.65 % of base) : 83060.dasm - System.ComponentModel.Composition.ContractMismatchExceptionTests:Constructor3_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
           8 (0.78 % of base) : 130581.dasm - System.IO.Tests.WriteTests:Write_Span_WritesExpectedData(int,int,int,ubyte):this (FullOpts)
           6 (0.65 % of base) : 130578.dasm - System.IO.Tests.WriteTests:WriteLine_Span_WritesExpectedData(int,int,int,ubyte):this (FullOpts)
           4 (0.23 % of base) : 58517.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) (FullOpts)
           4 (0.46 % of base) : 208027.dasm - System.Tests.DecimalTests:BigInteger_Ceiling() (FullOpts)
           4 (0.46 % of base) : 208092.dasm - System.Tests.DecimalTests:BigInteger_Floor() (FullOpts)
           4 (0.42 % of base) : 208069.dasm - System.Tests.DecimalTests:BigInteger_Round() (FullOpts)
           4 (0.46 % of base) : 208141.dasm - System.Tests.DecimalTests:BigInteger_RoundAwayFromZero() (FullOpts)
           4 (0.44 % of base) : 208024.dasm - System.Tests.DecimalTests:BigInteger_Truncate() (FullOpts)
           4 (0.32 % of base) : 231168.dasm - System.Text.Tests.EncodingTest+<>c:<TestGetEncodingsWithProvider>b__19_0():this (FullOpts)
           2 (0.14 % of base) : 142758.dasm - System.Buffers.Text.Tests.Base64DecoderUnitTests:BasicDecodingInvalidInputLength():this (FullOpts)
           2 (0.12 % of base) : 156911.dasm - System.Security.Cryptography.X509Certificates.Tests.Common.CertificateAuthority:CheckRevocation(System.ReadOnlyMemory`1[ubyte],byref):int:this (FullOpts)
           2 (0.12 % of base) : 157496.dasm - System.Security.Cryptography.X509Certificates.Tests.Common.CertificateAuthority:CheckRevocation(System.ReadOnlyMemory`1[ubyte],byref):int:this (FullOpts)
           2 (0.18 % of base) : 271127.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
           2 (0.18 % of base) : 7784.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
           2 (0.21 % of base) : 196.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
           2 (0.21 % of base) : 269936.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
Top method improvements (bytes):
         -22 (-1.00 % of base) : 122886.dasm - System.AssertExtensions:SequenceEqual[System.__Canon](System.ReadOnlySpan`1[System.__Canon],System.ReadOnlySpan`1[System.__Canon]) (FullOpts)
         -22 (-1.46 % of base) : 88456.dasm - System.Configuration.BaseConfigurationRecord:Evaluate(System.Configuration.FactoryRecord,System.Configuration.SectionRecord,System.Object,ubyte,ubyte,byref,byref):ubyte:this (FullOpts)
         -22 (-0.79 % of base) : 304820.dasm - System.Threading.Tests.EtwTests+<>c:<WaitHandleWaitEventTest>b__1_0():this (FullOpts)
         -22 (-0.67 % of base) : 846.dasm - Xunit.Sdk.XunitTestAssemblyRunner+<RunTestCollectionsAsync>d__14:MoveNext():this (FullOpts)
         -18 (-0.21 % of base) : 149923.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.__Canon]:MoveNext():this (FullOpts)
         -16 (-1.29 % of base) : 9365.dasm - Microsoft.DotNet.XUnitExtensions.XunitParallelTheoryTestCaseRunner+<RunTestAsync>d__11:MoveNext():this (FullOpts)
         -16 (-0.78 % of base) : 122523.dasm - System.IO.Compression.Tests.ZipFileTestBase+<CreateFromDir>d__25:MoveNext():this (FullOpts)
         -16 (-0.76 % of base) : 297614.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[System.__Canon,int]:MoveNext():this (FullOpts)
         -16 (-0.64 % of base) : 300294.dasm - System.Threading.Tasks.Dataflow.Tests.BatchBlockTests+<TestNonGreedyLostMessages>d__17:MoveNext():this (FullOpts)
         -14 (-1.52 % of base) : 14651.dasm - Microsoft.CodeAnalysis.DocumentationCommentId+Parser:ParseTypeSymbol(System.String,byref,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.ISymbol,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.ISymbol]) (FullOpts)
         -14 (-0.73 % of base) : 20609.dasm - NuGet.Protocol.HttpSourceAuthenticationHandler+<SendAsync>d__9:MoveNext():this (FullOpts)
         -14 (-0.57 % of base) : 156089.dasm - System.Net.Security.Kerberos.KerberosExecutor+<PrepareInvoke>d__21:MoveNext():this (FullOpts)
         -14 (-0.33 % of base) : 149875.dasm - System.Net.WebSockets.WebSocketHandle+<ConnectAsync>d__22:MoveNext():this (FullOpts)
         -14 (-1.06 % of base) : 224430.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateIPAddresses>d__8:MoveNext():ubyte:this (FullOpts)
         -14 (-0.79 % of base) : 299525.dasm - System.Threading.Tasks.Dataflow.Tests.SimpleNetworkTests+<BufferBlocksToBatchNonGreedyToAction>d__8:MoveNext():this (FullOpts)
         -14 (-1.11 % of base) : 3897.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<RunTestAsync>d__11:MoveNext():this (FullOpts)
         -12 (-1.38 % of base) : 306653.dasm - CoreXml.Test.XLinq.FunctionalTests.EventsTests.EventsRemove:XAttributeRemoveOneByOne():this (FullOpts)
         -12 (-1.65 % of base) : 36283.dasm - LamarCodeGeneration.DependencyGatherer+<findDependencies>d__5:MoveNext():ubyte:this (FullOpts)
         -12 (-1.56 % of base) : 150969.dasm - System.Diagnostics.Tracing.TestEventListener:AddSource(System.String,System.Nullable`1[System.Guid],int,long):this (FullOpts)
         -12 (-1.56 % of base) : 152157.dasm - System.Diagnostics.Tracing.TestEventListener:AddSource(System.String,System.Nullable`1[System.Guid],int,long):this (FullOpts)
Top method regressions (percentages):
           8 (1.65 % of base) : 83060.dasm - System.ComponentModel.Composition.ContractMismatchExceptionTests:Constructor3_ValueAsMessageArgument_ShouldSetMessageProperty():this (FullOpts)
          10 (1.12 % of base) : 209722.dasm - System.Tests.DecimalTests+BigIntegerCompare:Test() (FullOpts)
           8 (0.78 % of base) : 130581.dasm - System.IO.Tests.WriteTests:Write_Span_WritesExpectedData(int,int,int,ubyte):this (FullOpts)
           6 (0.65 % of base) : 130578.dasm - System.IO.Tests.WriteTests:WriteLine_Span_WritesExpectedData(int,int,int,ubyte):this (FullOpts)
           4 (0.46 % of base) : 208027.dasm - System.Tests.DecimalTests:BigInteger_Ceiling() (FullOpts)
           4 (0.46 % of base) : 208092.dasm - System.Tests.DecimalTests:BigInteger_Floor() (FullOpts)
           4 (0.46 % of base) : 208141.dasm - System.Tests.DecimalTests:BigInteger_RoundAwayFromZero() (FullOpts)
           4 (0.44 % of base) : 208024.dasm - System.Tests.DecimalTests:BigInteger_Truncate() (FullOpts)
           4 (0.42 % of base) : 208069.dasm - System.Tests.DecimalTests:BigInteger_Round() (FullOpts)
           4 (0.32 % of base) : 231168.dasm - System.Text.Tests.EncodingTest+<>c:<TestGetEncodingsWithProvider>b__19_0():this (FullOpts)
           4 (0.23 % of base) : 58517.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) (FullOpts)
           2 (0.21 % of base) : 269936.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
           2 (0.21 % of base) : 196.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
           2 (0.18 % of base) : 271127.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
           2 (0.18 % of base) : 7784.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
           2 (0.14 % of base) : 142758.dasm - System.Buffers.Text.Tests.Base64DecoderUnitTests:BasicDecodingInvalidInputLength():this (FullOpts)
           2 (0.12 % of base) : 156911.dasm - System.Security.Cryptography.X509Certificates.Tests.Common.CertificateAuthority:CheckRevocation(System.ReadOnlyMemory`1[ubyte],byref):int:this (FullOpts)
           2 (0.12 % of base) : 157496.dasm - System.Security.Cryptography.X509Certificates.Tests.Common.CertificateAuthority:CheckRevocation(System.ReadOnlyMemory`1[ubyte],byref):int:this (FullOpts)
Top method improvements (percentages):
          -4 (-4.26 % of base) : 149255.dasm - System.Net.HttpEndPointListener:Accept(System.Net.Sockets.SocketAsyncEventArgs):this (FullOpts)
         -10 (-3.62 % of base) : 539.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (FullOpts)
          -6 (-2.97 % of base) : 33852.dasm - Microsoft.Extensions.Configuration.ConfigurationManager:Microsoft.Extensions.Configuration.IConfigurationRoot.Reload():this (FullOpts)
          -6 (-2.46 % of base) : 127552.dasm - System.IO.Packaging.PackagePart:Close():this (FullOpts)
         -12 (-2.43 % of base) : 299508.dasm - System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1[int]:ReserveOneMessage():ubyte:this (FullOpts)
          -8 (-2.26 % of base) : 37595.dasm - Microsoft.Extensions.DependencyInjection.DependencyInjectionEventSource:OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this (FullOpts)
          -8 (-1.98 % of base) : 153465.dasm - System.Security.Cryptography.X509Certificates.X500NameEncoder:X500DistinguishedNameEncode(System.String,int):ubyte[] (FullOpts)
          -6 (-1.96 % of base) : 149281.dasm - System.Net.HttpEndPointListener:Close():this (FullOpts)
          -6 (-1.90 % of base) : 20614.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
          -6 (-1.90 % of base) : 147127.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
          -8 (-1.89 % of base) : 20687.dasm - System.Net.Http.Headers.HttpHeaderValueCollection`1+<<GetEnumerator>g__Iterate|14_0>d[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-1.89 % of base) : 147244.dasm - System.Net.Http.Headers.HttpHeaderValueCollection`1+<<GetEnumerator>g__Iterate|14_0>d[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-1.87 % of base) : 215093.dasm - System.Security.Claims.ClaimsIdentity+<CombinedClaimsIterator>d__38:MoveNext():ubyte:this (FullOpts)
         -12 (-1.65 % of base) : 36283.dasm - LamarCodeGeneration.DependencyGatherer+<findDependencies>d__5:MoveNext():ubyte:this (FullOpts)
          -8 (-1.63 % of base) : 223403.dasm - System.Security.Cryptography.X509Certificates.Tests.PfxIterationCountTests+<GetCertsWith_NonNullOrEmptyPassword_MemberData>d__19:MoveNext():ubyte:this (FullOpts)
          -8 (-1.59 % of base) : 221787.dasm - System.Security.Cryptography.X509Certificates.Tests.PfxIterationCountTests+<GetCertsWith_IterationCountNotExceedingDefaultLimit_AndNullOrEmptyPassword_MemberData>d__17:MoveNext():ubyte:this (FullOpts)
         -12 (-1.56 % of base) : 150969.dasm - System.Diagnostics.Tracing.TestEventListener:AddSource(System.String,System.Nullable`1[System.Guid],int,long):this (FullOpts)
         -12 (-1.56 % of base) : 152157.dasm - System.Diagnostics.Tracing.TestEventListener:AddSource(System.String,System.Nullable`1[System.Guid],int,long):this (FullOpts)
         -12 (-1.56 % of base) : 187418.dasm - System.Diagnostics.Tracing.TestEventListener:AddSource(System.String,System.Nullable`1[System.Guid],int,long):this (FullOpts)
         -12 (-1.56 % of base) : 301125.dasm - System.Diagnostics.Tracing.TestEventListener:AddSource(System.String,System.Nullable`1[System.Guid],int,long):this (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: 13598268 (overridden on cmd)
Total bytes of diff: 13598140 (overridden on cmd)
Total bytes of delta: -128 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
          14 : 6301.dasm (3.18 % of base)
           4 : 16240.dasm (0.46 % of base)
           2 : 36047.dasm (0.45 % of base)
           2 : 23354.dasm (0.21 % of base)
           2 : 34263.dasm (0.17 % of base)
Top file improvements (bytes):
         -10 : 5975.dasm (-2.24 % of base)
         -10 : 20191.dasm (-3.33 % of base)
         -10 : 17035.dasm (-0.52 % of base)
         -10 : 20764.dasm (-0.58 % of base)
          -8 : 1458.dasm (-1.31 % of base)
          -8 : 35980.dasm (-0.58 % of base)
          -8 : 69.dasm (-0.93 % of base)
          -6 : 35955.dasm (-1.78 % of base)
          -6 : 37807.dasm (-1.02 % of base)
          -6 : 20415.dasm (-1.54 % of base)
          -6 : 35317.dasm (-1.03 % of base)
          -6 : 35442.dasm (-1.82 % of base)
          -6 : 37805.dasm (-0.68 % of base)
          -6 : 37826.dasm (-1.02 % of base)
          -6 : 18176.dasm (-1.01 % of base)
          -6 : 35359.dasm (-1.60 % of base)
          -6 : 36019.dasm (-0.34 % of base)
          -6 : 36187.dasm (-0.57 % of base)
          -6 : 36235.dasm (-1.36 % of base)
          -4 : 17533.dasm (-0.10 % of base)
29 total files with Code Size differences (24 improved, 5 regressed), 2 unchanged.
Top method regressions (bytes):
          14 (3.18 % of base) : 6301.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (FullOpts)
           4 (0.46 % of base) : 16240.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)
           2 (0.45 % of base) : 36047.dasm - System.Management.Automation.Internal.PipelineProcessor:Clean():this (FullOpts)
           2 (0.17 % of base) : 34263.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
           2 (0.21 % of base) : 23354.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
Top method improvements (bytes):
         -10 (-0.58 % of base) : 20764.dasm - Microsoft.CodeAnalysis.RuleSetProcessor:ReadRuleSet(System.Xml.Linq.XElement,System.String):Microsoft.CodeAnalysis.RuleSet (FullOpts)
         -10 (-0.52 % of base) : 17035.dasm - SixLabors.ImageSharp.Metadata.Profiles.Exif.BaseExifReader:ReadBigValues(System.Collections.Generic.List`1[SixLabors.ImageSharp.Metadata.Profiles.Exif.IExifValue]):this (FullOpts)
         -10 (-3.33 % of base) : 20191.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
         -10 (-2.24 % of base) : 5975.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
          -8 (-0.58 % of base) : 35980.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase+<GetModuleForRootedPaths>d__95:MoveNext():ubyte:this (FullOpts)
          -8 (-1.31 % of base) : 1458.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (FullOpts)
          -8 (-0.93 % of base) : 69.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -6 (-1.54 % of base) : 20415.dasm - Microsoft.ML.Data.SimpleFileHandle:Dispose():this (FullOpts)
          -6 (-1.36 % of base) : 36235.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseManager:LoadFormatDataHelper(System.Management.Automation.ExtendedTypeDefinition,Microsoft.PowerShell.Commands.Internal.Format.PSPropertyExpressionFactory,System.Collections.Generic.List`1[Microsoft.PowerShell.Commands.Internal.Format.XmlLoaderLoggerEntry],byref,System.Management.Automation.Runspaces.PSSnapInTypeAndFormatErrors,Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBase,ubyte,ubyte) (FullOpts)
          -6 (-0.57 % of base) : 36187.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseManager:LoadFromFileHelper(System.Collections.ObjectModel.Collection`1[System.Management.Automation.Runspaces.PSSnapInTypeAndFormatErrors],Microsoft.PowerShell.Commands.Internal.Format.PSPropertyExpressionFactory,System.Management.Automation.AuthorizationManager,System.Management.Automation.Host.PSHost,ubyte,byref,byref):Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBase (FullOpts)
          -6 (-1.82 % of base) : 35442.dasm - System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
          -6 (-1.78 % of base) : 35955.dasm - System.Management.Automation.CommandProcessor:DoBegin():this (FullOpts)
          -6 (-0.34 % of base) : 36019.dasm - System.Management.Automation.Internal.ModuleUtils+<GetDefaultAvailableModuleFiles>d__9:MoveNext():ubyte:this (FullOpts)
          -6 (-1.03 % of base) : 35317.dasm - System.Management.Automation.Language.PSGetMemberBinder:TypeTableMemberAdded(System.String) (FullOpts)
          -6 (-1.60 % of base) : 35359.dasm - System.Management.Automation.Language.PSGetMemberBinder:TypeTableMemberPossiblyUpdated(System.String) (FullOpts)
          -6 (-1.02 % of base) : 37826.dasm - System.Management.Automation.PSObject:GetMappedAdapter(System.Object,System.Management.Automation.Runspaces.TypeTable):System.Management.Automation.PSObject+AdapterSet (FullOpts)
          -6 (-1.02 % of base) : 37807.dasm - System.Management.Automation.Runspaces.LocalRunspace:CloseOrDisconnectAllRemoteRunspaces(System.Func`1[System.Collections.Generic.List`1[System.Management.Automation.RemoteRunspace]]) (FullOpts)
          -6 (-0.68 % of base) : 37805.dasm - System.Management.Automation.Runspaces.LocalRunspace:StopOrDisconnectAllJobs():this (FullOpts)
          -6 (-1.01 % of base) : 18176.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (FullOpts)
          -4 (-0.10 % of base) : 17533.dasm - Microsoft.ML.Data.TextLoader+Bindings:.ctor(Microsoft.ML.Data.TextLoader,Microsoft.ML.Data.TextLoader+Column[],Microsoft.ML.Data.IMultiStreamSource,Microsoft.ML.Data.IMultiStreamSource):this (FullOpts)
Top method regressions (percentages):
          14 (3.18 % of base) : 6301.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (FullOpts)
           4 (0.46 % of base) : 16240.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)
           2 (0.45 % of base) : 36047.dasm - System.Management.Automation.Internal.PipelineProcessor:Clean():this (FullOpts)
           2 (0.21 % of base) : 23354.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts)
           2 (0.17 % of base) : 34263.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
Top method improvements (percentages):
         -10 (-3.33 % of base) : 20191.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
         -10 (-2.24 % of base) : 5975.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
          -6 (-1.82 % of base) : 35442.dasm - System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
          -6 (-1.78 % of base) : 35955.dasm - System.Management.Automation.CommandProcessor:DoBegin():this (FullOpts)
          -6 (-1.60 % of base) : 35359.dasm - System.Management.Automation.Language.PSGetMemberBinder:TypeTableMemberPossiblyUpdated(System.String) (FullOpts)
          -6 (-1.54 % of base) : 20415.dasm - Microsoft.ML.Data.SimpleFileHandle:Dispose():this (FullOpts)
          -6 (-1.36 % of base) : 36235.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseManager:LoadFormatDataHelper(System.Management.Automation.ExtendedTypeDefinition,Microsoft.PowerShell.Commands.Internal.Format.PSPropertyExpressionFactory,System.Collections.Generic.List`1[Microsoft.PowerShell.Commands.Internal.Format.XmlLoaderLoggerEntry],byref,System.Management.Automation.Runspaces.PSSnapInTypeAndFormatErrors,Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBase,ubyte,ubyte) (FullOpts)
          -8 (-1.31 % of base) : 1458.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (FullOpts)
          -6 (-1.03 % of base) : 35317.dasm - System.Management.Automation.Language.PSGetMemberBinder:TypeTableMemberAdded(System.String) (FullOpts)
          -6 (-1.02 % of base) : 37826.dasm - System.Management.Automation.PSObject:GetMappedAdapter(System.Object,System.Management.Automation.Runspaces.TypeTable):System.Management.Automation.PSObject+AdapterSet (FullOpts)
          -6 (-1.02 % of base) : 37807.dasm - System.Management.Automation.Runspaces.LocalRunspace:CloseOrDisconnectAllRemoteRunspaces(System.Func`1[System.Collections.Generic.List`1[System.Management.Automation.RemoteRunspace]]) (FullOpts)
          -6 (-1.01 % of base) : 18176.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (FullOpts)
          -8 (-0.93 % of base) : 69.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -6 (-0.68 % of base) : 37805.dasm - System.Management.Automation.Runspaces.LocalRunspace:StopOrDisconnectAllJobs():this (FullOpts)
          -4 (-0.63 % of base) : 35786.dasm - System.Management.Automation.Internal.PipelineProcessor:SynchronousExecuteEnumerate(System.Object):System.Array:this (FullOpts)
          -8 (-0.58 % of base) : 35980.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase+<GetModuleForRootedPaths>d__95:MoveNext():ubyte:this (FullOpts)
         -10 (-0.58 % of base) : 20764.dasm - Microsoft.CodeAnalysis.RuleSetProcessor:ReadRuleSet(System.Xml.Linq.XElement,System.String):Microsoft.CodeAnalysis.RuleSet (FullOpts)
          -6 (-0.57 % of base) : 36187.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseManager:LoadFromFileHelper(System.Collections.ObjectModel.Collection`1[System.Management.Automation.Runspaces.PSSnapInTypeAndFormatErrors],Microsoft.PowerShell.Commands.Internal.Format.PSPropertyExpressionFactory,System.Management.Automation.AuthorizationManager,System.Management.Automation.Host.PSHost,ubyte,byref,byref):Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBase (FullOpts)
         -10 (-0.52 % of base) : 17035.dasm - SixLabors.ImageSharp.Metadata.Profiles.Exif.BaseExifReader:ReadBigValues(System.Collections.Generic.List`1[SixLabors.ImageSharp.Metadata.Profiles.Exif.IExifValue]):this (FullOpts)
          -6 (-0.34 % of base) : 36019.dasm - System.Management.Automation.Internal.ModuleUtils+<GetDefaultAvailableModuleFiles>d__9:MoveNext():ubyte:this (FullOpts)
29 total methods with Code Size differences (24 improved, 5 regressed).
  
  
windows x86
Diffs are based on 1,625,054 contexts (327,626 MinOpts, 1,297,428 FullOpts).
MISSED contexts: base: 4,647 (0.29%), diff: 4,685 (0.29%)
Overall (-2,380 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | 
| benchmarks.run.windows.x86.checked.mch | 11,308,587 | -228 | 
| benchmarks.run_pgo.windows.x86.checked.mch | 33,240,977 | -110 | 
| benchmarks.run_tiered.windows.x86.checked.mch | 14,131,622 | -220 | 
| coreclr_tests.run.windows.x86.checked.mch | 215,366,523 | +206 | 
| libraries.crossgen2.windows.x86.checked.mch | 36,012,344 | -91 | 
| libraries.pmi.windows.x86.checked.mch | 51,340,369 | -1,121 | 
| libraries_tests.run.windows.x86.Release.mch | 14,894,587 | -72 | 
| librariestestsnotieredcompilation.run.windows.x86.Release.mch | 109,493,031 | -679 | 
| realworld.run.windows.x86.checked.mch | 11,827,284 | -65 | 
  
FullOpts (-2,380 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | 
| benchmarks.run.windows.x86.checked.mch | 11,308,109 | -228 | 
| benchmarks.run_pgo.windows.x86.checked.mch | 27,119,029 | -110 | 
| benchmarks.run_tiered.windows.x86.checked.mch | 7,276,985 | -220 | 
| coreclr_tests.run.windows.x86.checked.mch | 93,105,499 | +206 | 
| libraries.crossgen2.windows.x86.checked.mch | 36,011,284 | -91 | 
| libraries.pmi.windows.x86.checked.mch | 51,245,136 | -1,121 | 
| libraries_tests.run.windows.x86.Release.mch | 9,404,392 | -72 | 
| librariestestsnotieredcompilation.run.windows.x86.Release.mch | 100,540,258 | -679 | 
| realworld.run.windows.x86.checked.mch | 11,531,570 | -65 | 
  
Example diffs
benchmarks.run.windows.x86.checked.mch
-7 (-3.00%) : 10788.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
@@ -10,30 +10,31 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct ( 4) zero-ref    single-def <System.Net.Http.Headers.HeaderDescriptor>
 ;  V01 arg1         [V01,T03] (  8, 13.50)     ref  ->  esi         class-hnd single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
-;  V02 loc0         [V02,T15] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V02 loc0         [V02,T16] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
 ;  V03 loc1         [V03    ] (  6,  5   )   ubyte  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V04 loc2         [V04,T12] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
+;  V04 loc2         [V04,T13] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V07 loc5         [V07,T10] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
-;  V08 tmp0         [V08,T11] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
+;  V07 loc5         [V07,T11] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
+;  V08 tmp0         [V08,T12] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
 ;* V09 tmp1         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.String>
 ;* V10 tmp2         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
-;* V11 tmp3         [V11,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V11 tmp3         [V11,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V12 tmp4         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V13 tmp5         [V13,T08] (  2,  4.50)     ref  ->  edi         single-def "field V00._descriptor (fldOffset=0x0)" P-INDEP
 ;  V14 tmp6         [V14,T02] (  4, 12.50)     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V15 tmp7         [V15,T04] (  2,  8   )     ref  ->  edx         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V16 tmp8         [V16,T00] (  6, 20.50)     int  ->  [ebp-0x28]  "field V05._index (fldOffset=0x8)" P-INDEP
-;  V17 tmp9         [V17,T06] (  3,  8.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
-;  V18 tmp10        [V18,T13] (  3,  1.50)     ref  ->  ebx         single-def "field V10._list (fldOffset=0x0)" P-INDEP
+;  V17 tmp9         [V17,T09] (  2,  4.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
+;  V18 tmp10        [V18,T14] (  3,  1.50)     ref  ->  ebx         single-def "field V10._list (fldOffset=0x0)" P-INDEP
 ;* V19 tmp11        [V19    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V10._current (fldOffset=0x4)" P-INDEP
-;* V20 tmp12        [V20,T16] (  0,  0   )     int  ->  zero-ref    "field V10._index (fldOffset=0x8)" P-INDEP
-;  V21 tmp13        [V21,T14] (  2,  1   )     int  ->  eax         "field V10._version (fldOffset=0xc)" P-INDEP
+;* V20 tmp12        [V20,T17] (  0,  0   )     int  ->  zero-ref    "field V10._index (fldOffset=0x8)" P-INDEP
+;  V21 tmp13        [V21,T15] (  2,  1   )     int  ->  eax         "field V10._version (fldOffset=0xc)" P-INDEP
 ;  V22 tmp14        [V22,T01] (  3, 24   )     ref  ->  edx         "arr expr"
 ;  V23 EHSlots      [V23    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V24 cse0         [V24,T05] (  3, 12   )     int  ->  edx         "CSE - aggressive"
-;  V25 cse1         [V25,T09] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
+;  V24 cse0         [V24,T07] (  2,  8   )     int  ->  edx         "CSE - aggressive"
+;  V25 cse1         [V25,T05] (  2,  8   )     int  ->  edx         "CSE - aggressive"
+;  V26 cse2         [V26,T10] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 36
 
@@ -57,7 +58,7 @@ G_M53769_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        xor      edx, edx
        mov      dword ptr [ebp-0x24], edx
                        ;; size=8 bbWeight=1 PerfScore 2.25
-G_M53769_IG03:        ; bbWeight=1, gcVars=00008000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M53769_IG03:        ; bbWeight=1, gcVars=00010000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      byte  ptr [ebp-0x24], 0
        jne      SHORT G_M53769_IG06
        lea      edx, [ebp-0x24]
@@ -70,8 +71,8 @@ G_M53769_IG03:        ; bbWeight=1, gcVars=00008000 {V02}, gcrefRegs=000000C0 {e
        mov      ebx, gword ptr [esi+0x04]
        ; gcrRegs +[ebx]
        test     ebx, ebx
-       je       G_M53769_IG12
-                       ;; size=37 bbWeight=1 PerfScore 12.00
+       je       SHORT G_M53769_IG11
+                       ;; size=33 bbWeight=1 PerfScore 12.00
 G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -79,7 +80,7 @@ G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[edx] +[eax]
        test     eax, eax
-       je       SHORT G_M53769_IG11
+       je       SHORT G_M53769_IG10
        mov      ebx, eax
        mov      eax, dword ptr [ebx+0x0C]
        ; gcrRegs -[eax]
@@ -89,13 +90,14 @@ G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
 G_M53769_IG05:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [ebx+0x0C]
        cmp      eax, edx
-       jne      SHORT G_M53769_IG07
-       cmp      ecx, dword ptr [ebx+0x08]
-       jae      SHORT G_M53769_IG08
+       jne      SHORT G_M53769_IG09
+       mov      edx, dword ptr [ebx+0x08]
+       cmp      ecx, edx
+       jae      SHORT G_M53769_IG07
        mov      edx, gword ptr [ebx+0x04]
        ; gcrRegs +[edx]
        cmp      ecx, dword ptr [edx+0x04]
-       jae      SHORT G_M53769_IG09
+       jae      SHORT G_M53769_IG08
        mov      edx, gword ptr [edx+4*ecx+0x08]
        inc      ecx
        mov      dword ptr [ebp-0x28], ecx
@@ -107,7 +109,7 @@ G_M53769_IG05:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
        mov      eax, dword ptr [ebp-0x2C]
        mov      ecx, dword ptr [ebp-0x28]
        jmp      SHORT G_M53769_IG05
-                      ;; size=45 bbWeight=4 PerfScore 99.00
+                     ;; size=47 bbWeight=4 PerfScore 96.00
 G_M53769_IG06:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ebx esi edi]
        call     [System.Threading.Monitor:ThrowLockTakenException()]
@@ -115,24 +117,20 @@ G_M53769_IG06:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=7 bbWeight=0 PerfScore 0.00
 G_M53769_IG07:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi]
-       cmp      dword ptr [ebp-0x2C], edx
-       jne      SHORT G_M53769_IG10
-                       ;; size=5 bbWeight=4 PerfScore 12.00
-G_M53769_IG08:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        xor      ecx, ecx
        ; gcrRegs +[ecx]
        mov      gword ptr [esi+0x04], ecx
-       jmp      SHORT G_M53769_IG12
+       jmp      SHORT G_M53769_IG11
                         ;; size=7 bbWeight=4 PerfScore 13.00
-G_M53769_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx esi]
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M53769_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M53769_IG11:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG10:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ebx esi edi]
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -144,36 +142,36 @@ G_M53769_IG11:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        mov      ecx, esi
        call     [System.Net.Http.Headers.HttpHeaders:ParseSingleRawHeaderValue(System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo,System.Net.Http.Headers.HeaderDescriptor,System.String)]
        ; gcrRegs -[ecx edx ebx edi]
-       jmp      SHORT G_M53769_IG08
+       jmp      SHORT G_M53769_IG07
                       ;; size=24 bbWeight=0.50 PerfScore 5.00
-G_M53769_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG11:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG16
+       je       SHORT G_M53769_IG15
                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M53769_IG13:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG12:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V02}
        call     <unknown method>
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M53769_IG16
+       jmp      SHORT G_M53769_IG15
                       ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M53769_IG14:        ; bbWeight=0, gcVars=00008000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V02 V15}
+G_M53769_IG13:        ; bbWeight=0, gcVars=00010000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V02 V16}
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG15
+       je       SHORT G_M53769_IG14
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V02 V15}
+       ; GC ptr vars -{V02 V16}
        call     <unknown method>
        ; gcrRegs -[ecx]
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M53769_IG15:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG14:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M53769_IG16:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M53769_IG15:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -182,9 +180,9 @@ G_M53769_IG16:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
 
-; Total bytes of code 233, prolog size 14, PerfScore 162.88, instruction count 84, allocated bytes for code 233 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
+; Total bytes of code 226, prolog size 14, PerfScore 147.88, instruction count 83, allocated bytes for code 226 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
 ; ============================================================
 
 *************** EH table for System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo)
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M53769_IG03..G_M53769_IG12) handled by [G_M53769_IG14..G_M53769_IG16) (fault)
+EH#0: try [G_M53769_IG03..G_M53769_IG11) handled by [G_M53769_IG13..G_M53769_IG15) (fault)
  
-7 (-3.00%) : 21268.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
@@ -10,30 +10,31 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct ( 4) zero-ref    single-def <System.Net.Http.Headers.HeaderDescriptor>
 ;  V01 arg1         [V01,T03] (  8, 13.50)     ref  ->  esi         class-hnd single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
-;  V02 loc0         [V02,T15] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V02 loc0         [V02,T16] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
 ;  V03 loc1         [V03    ] (  6,  5   )   ubyte  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V04 loc2         [V04,T12] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
+;  V04 loc2         [V04,T13] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V07 loc5         [V07,T10] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
-;  V08 tmp0         [V08,T11] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
+;  V07 loc5         [V07,T11] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
+;  V08 tmp0         [V08,T12] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
 ;* V09 tmp1         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.String>
 ;* V10 tmp2         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
-;* V11 tmp3         [V11,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V11 tmp3         [V11,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V12 tmp4         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V13 tmp5         [V13,T08] (  2,  4.50)     ref  ->  edi         single-def "field V00._descriptor (fldOffset=0x0)" P-INDEP
 ;  V14 tmp6         [V14,T02] (  4, 12.50)     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V15 tmp7         [V15,T04] (  2,  8   )     ref  ->  edx         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V16 tmp8         [V16,T00] (  6, 20.50)     int  ->  [ebp-0x28]  "field V05._index (fldOffset=0x8)" P-INDEP
-;  V17 tmp9         [V17,T06] (  3,  8.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
-;  V18 tmp10        [V18,T13] (  3,  1.50)     ref  ->  ebx         single-def "field V10._list (fldOffset=0x0)" P-INDEP
+;  V17 tmp9         [V17,T09] (  2,  4.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
+;  V18 tmp10        [V18,T14] (  3,  1.50)     ref  ->  ebx         single-def "field V10._list (fldOffset=0x0)" P-INDEP
 ;* V19 tmp11        [V19    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V10._current (fldOffset=0x4)" P-INDEP
-;* V20 tmp12        [V20,T16] (  0,  0   )     int  ->  zero-ref    "field V10._index (fldOffset=0x8)" P-INDEP
-;  V21 tmp13        [V21,T14] (  2,  1   )     int  ->  eax         "field V10._version (fldOffset=0xc)" P-INDEP
+;* V20 tmp12        [V20,T17] (  0,  0   )     int  ->  zero-ref    "field V10._index (fldOffset=0x8)" P-INDEP
+;  V21 tmp13        [V21,T15] (  2,  1   )     int  ->  eax         "field V10._version (fldOffset=0xc)" P-INDEP
 ;  V22 tmp14        [V22,T01] (  3, 24   )     ref  ->  edx         "arr expr"
 ;  V23 EHSlots      [V23    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V24 cse0         [V24,T05] (  3, 12   )     int  ->  edx         "CSE - aggressive"
-;  V25 cse1         [V25,T09] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
+;  V24 cse0         [V24,T07] (  2,  8   )     int  ->  edx         "CSE - aggressive"
+;  V25 cse1         [V25,T05] (  2,  8   )     int  ->  edx         "CSE - aggressive"
+;  V26 cse2         [V26,T10] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 36
 
@@ -57,7 +58,7 @@ G_M53769_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        xor      edx, edx
        mov      dword ptr [ebp-0x24], edx
                        ;; size=8 bbWeight=1 PerfScore 2.25
-G_M53769_IG03:        ; bbWeight=1, gcVars=00008000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M53769_IG03:        ; bbWeight=1, gcVars=00010000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      byte  ptr [ebp-0x24], 0
        jne      SHORT G_M53769_IG06
        lea      edx, [ebp-0x24]
@@ -70,8 +71,8 @@ G_M53769_IG03:        ; bbWeight=1, gcVars=00008000 {V02}, gcrefRegs=000000C0 {e
        mov      ebx, gword ptr [esi+0x04]
        ; gcrRegs +[ebx]
        test     ebx, ebx
-       je       G_M53769_IG12
-                       ;; size=37 bbWeight=1 PerfScore 12.00
+       je       SHORT G_M53769_IG11
+                       ;; size=33 bbWeight=1 PerfScore 12.00
 G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -79,7 +80,7 @@ G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[edx] +[eax]
        test     eax, eax
-       je       SHORT G_M53769_IG11
+       je       SHORT G_M53769_IG10
        mov      ebx, eax
        mov      eax, dword ptr [ebx+0x0C]
        ; gcrRegs -[eax]
@@ -89,13 +90,14 @@ G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
 G_M53769_IG05:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [ebx+0x0C]
        cmp      eax, edx
-       jne      SHORT G_M53769_IG07
-       cmp      ecx, dword ptr [ebx+0x08]
-       jae      SHORT G_M53769_IG08
+       jne      SHORT G_M53769_IG09
+       mov      edx, dword ptr [ebx+0x08]
+       cmp      ecx, edx
+       jae      SHORT G_M53769_IG07
        mov      edx, gword ptr [ebx+0x04]
        ; gcrRegs +[edx]
        cmp      ecx, dword ptr [edx+0x04]
-       jae      SHORT G_M53769_IG09
+       jae      SHORT G_M53769_IG08
        mov      edx, gword ptr [edx+4*ecx+0x08]
        inc      ecx
        mov      dword ptr [ebp-0x28], ecx
@@ -107,7 +109,7 @@ G_M53769_IG05:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
        mov      eax, dword ptr [ebp-0x2C]
        mov      ecx, dword ptr [ebp-0x28]
        jmp      SHORT G_M53769_IG05
-                      ;; size=45 bbWeight=4 PerfScore 99.00
+                     ;; size=47 bbWeight=4 PerfScore 96.00
 G_M53769_IG06:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ebx esi edi]
        call     [System.Threading.Monitor:ThrowLockTakenException()]
@@ -115,24 +117,20 @@ G_M53769_IG06:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=7 bbWeight=0 PerfScore 0.00
 G_M53769_IG07:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi]
-       cmp      dword ptr [ebp-0x2C], edx
-       jne      SHORT G_M53769_IG10
-                       ;; size=5 bbWeight=4 PerfScore 12.00
-G_M53769_IG08:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        xor      ecx, ecx
        ; gcrRegs +[ecx]
        mov      gword ptr [esi+0x04], ecx
-       jmp      SHORT G_M53769_IG12
+       jmp      SHORT G_M53769_IG11
                         ;; size=7 bbWeight=4 PerfScore 13.00
-G_M53769_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx esi]
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M53769_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M53769_IG11:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG10:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ebx esi edi]
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -144,36 +142,36 @@ G_M53769_IG11:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        mov      ecx, esi
        call     [System.Net.Http.Headers.HttpHeaders:ParseSingleRawHeaderValue(System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo,System.Net.Http.Headers.HeaderDescriptor,System.String)]
        ; gcrRegs -[ecx edx ebx edi]
-       jmp      SHORT G_M53769_IG08
+       jmp      SHORT G_M53769_IG07
                       ;; size=24 bbWeight=0.50 PerfScore 5.00
-G_M53769_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG11:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG16
+       je       SHORT G_M53769_IG15
                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M53769_IG13:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG12:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V02}
        call     <unknown method>
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M53769_IG16
+       jmp      SHORT G_M53769_IG15
                       ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M53769_IG14:        ; bbWeight=0, gcVars=00008000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V02 V15}
+G_M53769_IG13:        ; bbWeight=0, gcVars=00010000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V02 V16}
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG15
+       je       SHORT G_M53769_IG14
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V02 V15}
+       ; GC ptr vars -{V02 V16}
        call     <unknown method>
        ; gcrRegs -[ecx]
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M53769_IG15:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG14:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M53769_IG16:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M53769_IG15:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -182,9 +180,9 @@ G_M53769_IG16:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
 
-; Total bytes of code 233, prolog size 14, PerfScore 162.88, instruction count 84, allocated bytes for code 233 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
+; Total bytes of code 226, prolog size 14, PerfScore 147.88, instruction count 83, allocated bytes for code 226 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
 ; ============================================================
 
 *************** EH table for System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo)
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M53769_IG03..G_M53769_IG12) handled by [G_M53769_IG14..G_M53769_IG16) (fault)
+EH#0: try [G_M53769_IG03..G_M53769_IG11) handled by [G_M53769_IG13..G_M53769_IG15) (fault)
  
-5 (-1.43%) : 21538.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
@@ -10,8 +10,8 @@
 ;
 ;  V00 this         [V00,T09] (  3,  4   )     ref  ->  edi         this class-hnd single-def <System.Threading.Tasks.Task>
 ;  V01 arg1         [V01,T08] (  5,  4.50)     ref  ->  esi         class-hnd single-def <System.Threading.Tasks.Task+ContingentProperties>
-;  V02 loc0         [V02,T11] (  5,  3.50)     ref  ->  ebx         class-hnd single-def <<unknown class>>
-;  V03 loc1         [V03,T14] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V02 loc0         [V02,T12] (  5,  3.50)     ref  ->  ebx         class-hnd single-def <<unknown class>>
+;  V03 loc1         [V03,T15] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V04 loc2         [V04    ] (  6,  2.50)   ubyte  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Threading.Tasks.Task>
@@ -23,19 +23,20 @@
 ;  V12 tmp4         [V12,T04] (  3, 12   )     ref  ->  [ebp-0x38]  class-hnd spill-single-def "Inlining Arg" <System.AggregateException>
 ;* V13 tmp5         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V14 tmp6         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V15 tmp7         [V15,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V15 tmp7         [V15,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V16 tmp8         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V17 tmp9         [V17,T03] (  4, 12.50)     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V18 tmp10        [V18,T02] (  5, 14   )     ref  ->  [ebp-0x3C]  "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V19 tmp11        [V19,T00] (  6, 20.50)     int  ->  [ebp-0x28]  "field V05._index (fldOffset=0x8)" P-INDEP
-;  V20 tmp12        [V20,T06] (  3,  8.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
-;  V21 tmp13        [V21,T12] (  3,  1.50)     ref  ->  ebx         single-def "field V08._list (fldOffset=0x0)" P-INDEP
+;  V20 tmp12        [V20,T11] (  2,  4.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
+;  V21 tmp13        [V21,T13] (  3,  1.50)     ref  ->  ebx         single-def "field V08._list (fldOffset=0x0)" P-INDEP
 ;* V22 tmp14        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V08._current (fldOffset=0x4)" P-INDEP
-;* V23 tmp15        [V23,T15] (  0,  0   )     int  ->  zero-ref    "field V08._index (fldOffset=0x8)" P-INDEP
-;  V24 tmp16        [V24,T13] (  2,  1   )     int  ->  eax         "field V08._version (fldOffset=0xc)" P-INDEP
+;* V23 tmp15        [V23,T16] (  0,  0   )     int  ->  zero-ref    "field V08._index (fldOffset=0x8)" P-INDEP
+;  V24 tmp16        [V24,T14] (  2,  1   )     int  ->  eax         "field V08._version (fldOffset=0xc)" P-INDEP
 ;  V25 tmp17        [V25,T01] (  3, 24   )     ref  ->  edx         "arr expr"
 ;  V26 EHSlots      [V26    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V27 cse0         [V27,T05] (  3, 12   )     int  ->  edx         "CSE - moderate"
+;  V27 cse0         [V27,T07] (  2,  8   )     int  ->  edx         "CSE - moderate"
+;  V28 cse1         [V28,T05] (  2,  8   )     int  ->  edx         "CSE - moderate"
 ;
 ; Lcl frame size = 48
 
@@ -61,7 +62,7 @@ G_M37406_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        mov      ebx, gword ptr [esi+0x14]
        ; gcrRegs +[ebx]
        test     ebx, ebx
-       je       G_M37406_IG18
+       je       G_M37406_IG17
                      ;; size=24 bbWeight=1 PerfScore 7.75
 G_M37406_IG03:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
        mov      gword ptr [ebp-0x30], ebx
@@ -69,7 +70,7 @@ G_M37406_IG03:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        xor      edx, edx
        mov      dword ptr [ebp-0x24], edx
                        ;; size=8 bbWeight=0.50 PerfScore 1.12
-G_M37406_IG04:        ; bbWeight=0.50, gcVars=00004000 {V03}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M37406_IG04:        ; bbWeight=0.50, gcVars=00008000 {V03}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
        cmp      byte  ptr [ebp-0x24], 0
        jne      G_M37406_IG10
        lea      edx, [ebp-0x24]
@@ -86,13 +87,14 @@ G_M37406_IG04:        ; bbWeight=0.50, gcVars=00004000 {V03}, gcrefRegs=000000C8
 G_M37406_IG05:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [ebx+0x0C]
        cmp      eax, edx
-       jne      G_M37406_IG11
-       cmp      ecx, dword ptr [ebx+0x08]
-       jae      G_M37406_IG14
+       jne      G_M37406_IG12
+       mov      edx, dword ptr [ebx+0x08]
+       cmp      ecx, edx
+       jae      G_M37406_IG13
        mov      edx, gword ptr [ebx+0x04]
        ; gcrRegs +[edx]
        cmp      ecx, dword ptr [edx+0x04]
-       jae      G_M37406_IG12
+       jae      G_M37406_IG11
        mov      edx, gword ptr [edx+4*ecx+0x08]
        inc      ecx
        mov      dword ptr [ebp-0x28], ecx
@@ -100,8 +102,8 @@ G_M37406_IG05:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
        ; GC ptr vars +{V18}
        test     dword ptr [edx+0x1C], 0xD1FFAB1E
        jne      SHORT G_M37406_IG07
-                      ;; size=52 bbWeight=4 PerfScore 86.00
-G_M37406_IG06:        ; bbWeight=2, gcVars=00004004 {V03 V18}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+                        ;; size=54 bbWeight=4 PerfScore 83.00
+G_M37406_IG06:        ; bbWeight=2, gcVars=00008004 {V03 V18}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[edx]
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
@@ -166,65 +168,58 @@ G_M37406_IG08:        ; bbWeight=2, gcrefRegs=000000C9 {eax ebx esi edi}, byrefR
        mov      ecx, dword ptr [ebp-0x28]
        jmp      G_M37406_IG05
                        ;; size=23 bbWeight=2 PerfScore 17.00
-G_M37406_IG09:        ; bbWeight=1, gcVars=00004010 {V03 V12}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M37406_IG09:        ; bbWeight=1, gcVars=00008010 {V03 V12}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; GC ptr vars +{V12}
        mov      eax, gword ptr [ebp-0x38]
        ; gcrRegs +[eax]
        jmp      SHORT G_M37406_IG08
                        ;; size=5 bbWeight=1 PerfScore 3.00
-G_M37406_IG10:        ; bbWeight=0, gcVars=00004000 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M37406_IG10:        ; bbWeight=0, gcVars=00008000 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax ebx esi edi]
        ; GC ptr vars -{V12}
        call     [System.Threading.Monitor:ThrowLockTakenException()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M37406_IG11:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[esi]
-       cmp      dword ptr [ebp-0x2C], edx
-       jne      SHORT G_M37406_IG13
-       jmp      SHORT G_M37406_IG14
-                       ;; size=7 bbWeight=4 PerfScore 20.00
-G_M37406_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[esi]
+G_M37406_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M37406_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M37406_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M37406_IG14:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M37406_IG13:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi]
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M37406_IG17
-       mov      ecx, gword ptr [ebp-0x30]
-       ; gcrRegs +[ecx]
-       ; GC ptr vars -{V03}
-       call     <unknown method>
-       ; gcrRegs -[ecx]
-       jmp      SHORT G_M37406_IG17
-                       ;; size=16 bbWeight=0.50 PerfScore 3.50
-G_M37406_IG15:        ; bbWeight=0, gcVars=00004000 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[esi]
-       ; GC ptr vars +{V03}
-       cmp      byte  ptr [ebp-0x24], 0
        je       SHORT G_M37406_IG16
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V03}
        call     <unknown method>
+       ; gcrRegs -[ecx]
+       jmp      SHORT G_M37406_IG16
+                       ;; size=16 bbWeight=0.50 PerfScore 3.50
+G_M37406_IG14:        ; bbWeight=0, gcVars=00008000 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs -[esi]
+       ; GC ptr vars +{V03 V15}
+       cmp      byte  ptr [ebp-0x24], 0
+       je       SHORT G_M37406_IG15
+       mov      ecx, gword ptr [ebp-0x30]
+       ; gcrRegs +[ecx]
+       ; GC ptr vars -{V03 V15}
+       call     <unknown method>
        ; gcrRegs -[ecx]
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M37406_IG16:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M37406_IG15:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M37406_IG17:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M37406_IG16:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[esi]
        xor      eax, eax
        ; gcrRegs +[eax]
        mov      gword ptr [esi+0x14], eax
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M37406_IG18:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M37406_IG17:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[eax esi]
        lea      esp, [ebp-0x0C]
        pop      ebx
@@ -234,9 +229,9 @@ G_M37406_IG18:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 349, prolog size 18, PerfScore 234.75, instruction count 110, allocated bytes for code 349 (MethodHash=88f36de1) for method System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
+; Total bytes of code 344, prolog size 18, PerfScore 211.75, instruction count 108, allocated bytes for code 344 (MethodHash=88f36de1) for method System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
 ; ============================================================
 
 *************** EH table for System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M37406_IG04..G_M37406_IG14) handled by [G_M37406_IG15..G_M37406_IG17) (fault)
+EH#0: try [G_M37406_IG04..G_M37406_IG13) handled by [G_M37406_IG14..G_M37406_IG16) (fault)
  
+2 (+2.06%) : 8271.dasm - System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (FullOpts)
@@ -8,26 +8,27 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T08] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl>
-;  V01 arg1         [V01,T07] (  3,  4   )     ref  ->  esi         class-hnd single-def <ubyte[]>
+;  V00 this         [V00,T09] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl>
+;  V01 arg1         [V01,T08] (  3,  4   )     ref  ->  esi         class-hnd single-def <ubyte[]>
 ;  V02 loc0         [V02    ] (  3,  7   )     int  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.FieldMetadata]>
 ;* V04 loc2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Diagnostics.Tracing.FieldMetadata>
-;  V05 tmp0         [V05,T09] (  2,  4   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V05 tmp0         [V05,T10] (  2,  4   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.FieldMetadata]>
-;* V07 tmp2         [V07,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V07 tmp2         [V07,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V08 tmp3         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V09 tmp4         [V09,T02] (  4, 17   )     ref  ->  edi         single-def "field V03._list (fldOffset=0x0)" P-INDEP
-;  V10 tmp5         [V10,T04] (  2,  6   )     ref  ->  ecx         "field V03._current (fldOffset=0x4)" P-INDEP
+;  V10 tmp5         [V10,T05] (  2,  6   )     ref  ->  ecx         "field V03._current (fldOffset=0x4)" P-INDEP
 ;  V11 tmp6         [V11,T00] (  6, 21   )     int  ->  [ebp-0x28]  "field V03._index (fldOffset=0x8)" P-INDEP
-;  V12 tmp7         [V12,T05] (  2,  9   )     int  ->  ebx         "field V03._version (fldOffset=0xc)" P-INDEP
-;  V13 tmp8         [V13,T10] (  3,  3   )     ref  ->  edi         single-def "field V06._list (fldOffset=0x0)" P-INDEP
+;  V12 tmp7         [V12,T06] (  2,  9   )     int  ->  ebx         "field V03._version (fldOffset=0xc)" P-INDEP
+;  V13 tmp8         [V13,T11] (  3,  3   )     ref  ->  edi         single-def "field V06._list (fldOffset=0x0)" P-INDEP
 ;* V14 tmp9         [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._current (fldOffset=0x4)" P-INDEP
-;* V15 tmp10        [V15,T12] (  0,  0   )     int  ->  zero-ref    "field V06._index (fldOffset=0x8)" P-INDEP
-;  V16 tmp11        [V16,T11] (  2,  2   )     int  ->  ebx         "field V06._version (fldOffset=0xc)" P-INDEP
+;* V15 tmp10        [V15,T13] (  0,  0   )     int  ->  zero-ref    "field V06._index (fldOffset=0x8)" P-INDEP
+;  V16 tmp11        [V16,T12] (  2,  2   )     int  ->  ebx         "field V06._version (fldOffset=0xc)" P-INDEP
 ;  V17 tmp12        [V17,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V18 EHSlots      [V18    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V19 cse0         [V19,T03] (  2,  8   )     int  ->  ecx         "CSE - moderate"
+;  V19 cse0         [V19,T04] (  2,  8   )     int  ->  ecx         "CSE - moderate"
+;  V20 cse1         [V20,T03] (  2, 16   )     int  ->  ecx         "CSE - aggressive"
 ;
 ; Lcl frame size = 28
 
@@ -65,9 +66,10 @@ G_M38703_IG04:        ; bbWeight=2, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=
        mov      edx, dword ptr [ebp-0x28]
                        ;; size=15 bbWeight=2 PerfScore 17.00
 G_M38703_IG05:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ebx, dword ptr [edi+0x0C]
+       mov      ecx, dword ptr [edi+0x0C]
+       cmp      ebx, ecx
        jne      SHORT G_M38703_IG10
-                      ;; size=5 bbWeight=8 PerfScore 32.00
+                      ;; size=7 bbWeight=8 PerfScore 26.00
 G_M38703_IG06:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, dword ptr [edi+0x08]
        cmp      edx, ecx
@@ -101,6 +103,6 @@ G_M38703_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 97, prolog size 14, PerfScore 138.25, instruction count 41, allocated bytes for code 97 (MethodHash=726d68d0) for method System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (FullOpts)
+; Total bytes of code 99, prolog size 14, PerfScore 132.25, instruction count 42, allocated bytes for code 99 (MethodHash=726d68d0) for method System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (FullOpts)
 ; ============================================================
 
  
+2 (+2.22%) : 3607.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (FullOpts)
@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  3,  4   )     ref  ->  esi         this class-hnd single-def <System.Linq.Expressions.Compiler.LambdaCompiler>
-;  V01 arg1         [V01,T07] (  4,  3.50)     ref  ->  edx         class-hnd single-def <System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
+;  V00 this         [V00,T07] (  3,  4   )     ref  ->  esi         this class-hnd single-def <System.Linq.Expressions.Compiler.LambdaCompiler>
+;  V01 arg1         [V01,T08] (  4,  3.50)     ref  ->  edx         class-hnd single-def <System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack>
 ;* V04 tmp0         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
@@ -18,14 +18,15 @@
 ;  V07 tmp3         [V07,T02] (  4, 12.50)     ref  ->  edi         single-def "field V02._list (fldOffset=0x0)" P-INDEP
 ;  V08 tmp4         [V08,T03] (  3,  8   )     ref  ->  eax         "field V02._current (fldOffset=0x4)" P-INDEP
 ;  V09 tmp5         [V09,T00] (  6, 20.50)     int  ->  [ebp-0x24]  "field V02._index (fldOffset=0x8)" P-INDEP
-;  V10 tmp6         [V10,T08] (  2,  4.50)     int  ->  ebx         "field V02._version (fldOffset=0xc)" P-INDEP
-;  V11 tmp7         [V11,T09] (  3,  1.50)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V10 tmp6         [V10,T09] (  2,  4.50)     int  ->  ebx         "field V02._version (fldOffset=0xc)" P-INDEP
+;  V11 tmp7         [V11,T10] (  3,  1.50)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._current (fldOffset=0x4)" P-INDEP
-;* V13 tmp9         [V13,T11] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
-;  V14 tmp10        [V14,T10] (  2,  1   )     int  ->  ebx         "field V04._version (fldOffset=0xc)" P-INDEP
+;* V13 tmp9         [V13,T12] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
+;  V14 tmp10        [V14,T11] (  2,  1   )     int  ->  ebx         "field V04._version (fldOffset=0xc)" P-INDEP
 ;  V15 tmp11        [V15,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V16 EHSlots      [V16    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V17 cse0         [V17,T04] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
+;  V17 cse0         [V17,T06] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
+;  V18 cse1         [V18,T04] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
 ;
 ; Lcl frame size = 24
 
@@ -65,7 +66,8 @@ G_M37225_IG04:        ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
        mov      edx, dword ptr [ebp-0x24]
                        ;; size=11 bbWeight=2 PerfScore 12.50
 G_M37225_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ebx, dword ptr [edi+0x0C]
+       mov      ecx, dword ptr [edi+0x0C]
+       cmp      ebx, ecx
        jne      SHORT G_M37225_IG08
        mov      ecx, dword ptr [edi+0x08]
        cmp      edx, ecx
@@ -79,7 +81,7 @@ G_M37225_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        inc      edx
        mov      dword ptr [ebp-0x24], edx
        jmp      SHORT G_M37225_IG04
-                      ;; size=30 bbWeight=4 PerfScore 74.00
+                     ;; size=32 bbWeight=4 PerfScore 71.00
 G_M37225_IG06:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[eax ecx esi edi]
        lea      esp, [ebp-0x0C]
@@ -97,6 +99,6 @@ G_M37225_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 90, prolog size 14, PerfScore 110.00, instruction count 40, allocated bytes for code 90 (MethodHash=abe96e96) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (FullOpts)
+; Total bytes of code 92, prolog size 14, PerfScore 107.00, instruction count 41, allocated bytes for code 92 (MethodHash=abe96e96) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (FullOpts)
 ; ============================================================
 
  
+2 (+2.22%) : 18031.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (FullOpts)
@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  3,  4   )     ref  ->  esi         this class-hnd single-def <System.Linq.Expressions.Compiler.LambdaCompiler>
-;  V01 arg1         [V01,T07] (  4,  3.50)     ref  ->  edx         class-hnd single-def <System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
+;  V00 this         [V00,T07] (  3,  4   )     ref  ->  esi         this class-hnd single-def <System.Linq.Expressions.Compiler.LambdaCompiler>
+;  V01 arg1         [V01,T08] (  4,  3.50)     ref  ->  edx         class-hnd single-def <System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack>
 ;* V04 tmp0         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
@@ -18,14 +18,15 @@
 ;  V07 tmp3         [V07,T02] (  4, 12.50)     ref  ->  edi         single-def "field V02._list (fldOffset=0x0)" P-INDEP
 ;  V08 tmp4         [V08,T03] (  3,  8   )     ref  ->  eax         "field V02._current (fldOffset=0x4)" P-INDEP
 ;  V09 tmp5         [V09,T00] (  6, 20.50)     int  ->  [ebp-0x24]  "field V02._index (fldOffset=0x8)" P-INDEP
-;  V10 tmp6         [V10,T08] (  2,  4.50)     int  ->  ebx         "field V02._version (fldOffset=0xc)" P-INDEP
-;  V11 tmp7         [V11,T09] (  3,  1.50)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V10 tmp6         [V10,T09] (  2,  4.50)     int  ->  ebx         "field V02._version (fldOffset=0xc)" P-INDEP
+;  V11 tmp7         [V11,T10] (  3,  1.50)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._current (fldOffset=0x4)" P-INDEP
-;* V13 tmp9         [V13,T11] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
-;  V14 tmp10        [V14,T10] (  2,  1   )     int  ->  ebx         "field V04._version (fldOffset=0xc)" P-INDEP
+;* V13 tmp9         [V13,T12] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
+;  V14 tmp10        [V14,T11] (  2,  1   )     int  ->  ebx         "field V04._version (fldOffset=0xc)" P-INDEP
 ;  V15 tmp11        [V15,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V16 EHSlots      [V16    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V17 cse0         [V17,T04] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
+;  V17 cse0         [V17,T06] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
+;  V18 cse1         [V18,T04] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
 ;
 ; Lcl frame size = 24
 
@@ -65,7 +66,8 @@ G_M37225_IG04:        ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
        mov      edx, dword ptr [ebp-0x24]
                        ;; size=11 bbWeight=2 PerfScore 12.50
 G_M37225_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ebx, dword ptr [edi+0x0C]
+       mov      ecx, dword ptr [edi+0x0C]
+       cmp      ebx, ecx
        jne      SHORT G_M37225_IG08
        mov      ecx, dword ptr [edi+0x08]
        cmp      edx, ecx
@@ -79,7 +81,7 @@ G_M37225_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        inc      edx
        mov      dword ptr [ebp-0x24], edx
        jmp      SHORT G_M37225_IG04
-                      ;; size=30 bbWeight=4 PerfScore 74.00
+                     ;; size=32 bbWeight=4 PerfScore 71.00
 G_M37225_IG06:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[eax ecx esi edi]
        lea      esp, [ebp-0x0C]
@@ -97,6 +99,6 @@ G_M37225_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 90, prolog size 14, PerfScore 110.00, instruction count 40, allocated bytes for code 90 (MethodHash=abe96e96) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (FullOpts)
+; Total bytes of code 92, prolog size 14, PerfScore 107.00, instruction count 41, allocated bytes for code 92 (MethodHash=abe96e96) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (FullOpts)
 ; ============================================================
 
  
  
benchmarks.run_pgo.windows.x86.checked.mch
-7 (-1.28%) : 48901.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
@@ -8,26 +8,26 @@
 ; 9 inlinees with PGO data; 33 single block inlinees; 9 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T19] (  8,  7   )     ref  ->  [ebp-0x3C]  class-hnd EH-live single-def <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
-;  V01 arg1         [V01,T17] (  3, 10   )     int  ->  esi         single-def
+;  V00 arg0         [V00,T20] (  8,  7   )     ref  ->  [ebp-0x3C]  class-hnd EH-live single-def <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
+;  V01 arg1         [V01,T18] (  3, 10   )     int  ->  esi         single-def
 ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 4) zero-ref    single-def <System.Threading.CancellationToken>
-;  V03 loc0         [V03,T18] (  4, 11   )   ubyte  ->  [ebp-0x28]  do-not-enreg[Z] EH-live
-;  V04 loc1         [V04,T06] (  8, 32   )     ref  ->  [ebp-0x40]  class-hnd exact EH-live spill-single-def <System.Threading.Tasks.Task+SetOnCountdownMres>
+;  V03 loc0         [V03,T19] (  4, 11   )   ubyte  ->  [ebp-0x28]  do-not-enreg[Z] EH-live
+;  V04 loc1         [V04,T05] (  8, 32   )     ref  ->  [ebp-0x40]  class-hnd exact EH-live spill-single-def <System.Threading.Tasks.Task+SetOnCountdownMres>
 ;* V05 loc2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V06 loc3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Threading.Tasks.Task>
 ;* V07 loc4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V08 loc5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Threading.Tasks.Task>
-;  V09 tmp0         [V09,T16] (  6, 12   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+SetOnCountdownMres>
+;  V09 tmp0         [V09,T17] (  6, 12   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+SetOnCountdownMres>
 ;* V10 tmp1         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp2         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp3         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V13 tmp4         [V13,T22] (  3,  6   )     int  ->  [ebp-0x2C]  spill-single-def "Inlining Arg"
+;  V13 tmp4         [V13,T24] (  3,  6   )     int  ->  [ebp-0x2C]  spill-single-def "Inlining Arg"
 ;* V14 tmp5         [V14    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
 ;* V17 tmp8         [V17    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;* V18 tmp9         [V18,T27] (  0,  0   )     ref  ->  zero-ref    single-def
-;* V19 tmp10        [V19,T28] (  0,  0   )     int  ->  zero-ref   
+;* V18 tmp9         [V18,T29] (  0,  0   )     ref  ->  zero-ref    single-def
+;* V19 tmp10        [V19,T30] (  0,  0   )     int  ->  zero-ref   
 ;* V20 tmp11        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp12        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp13        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -35,41 +35,43 @@
 ;* V24 tmp15        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp16        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp17        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
-;  V27 tmp18        [V27,T13] (  2,  8   )   ubyte  ->  eax         "Inline return value spill temp"
+;  V27 tmp18        [V27,T12] (  2,  8   )   ubyte  ->  eax         "Inline return value spill temp"
 ;* V28 tmp19        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp20        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V31 tmp22        [V31,T09] (  3, 24   )   byref  ->  edx         "Inlining Arg"
+;  V31 tmp22        [V31,T09] (  3, 24   )   byref  ->  ecx         "Inlining Arg"
 ;* V32 tmp23        [V32    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp24        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp25        [V34,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V34 tmp25        [V34,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V35 tmp26        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
 ;* V36 tmp27        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V37 tmp28        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V38 tmp29        [V38,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V38 tmp29        [V38,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V39 tmp30        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
-;  V40 tmp31        [V40,T21] (  1,  8   )     ref  ->  [ebp+0x08]  single-def "field V02._source (fldOffset=0x0)" P-INDEP
-;  V41 tmp32        [V41,T05] (  4, 25   )     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
+;  V40 tmp31        [V40,T23] (  1,  8   )     ref  ->  [ebp+0x08]  single-def "field V02._source (fldOffset=0x0)" P-INDEP
+;  V41 tmp32        [V41,T06] (  4, 25   )     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V42 tmp33        [V42,T04] (  6, 28   )     ref  ->  edi         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V43 tmp34        [V43,T00] (  6, 41   )     int  ->  [ebp-0x30]  "field V05._index (fldOffset=0x8)" P-INDEP
-;  V44 tmp35        [V44,T12] (  3, 17   )     int  ->  [ebp-0x34]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
+;  V44 tmp35        [V44,T21] (  2,  9   )     int  ->  [ebp-0x34]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
 ;  V45 tmp36        [V45,T07] (  4, 25   )     ref  ->  ebx         single-def "field V07._list (fldOffset=0x0)" P-INDEP
 ;  V46 tmp37        [V46,T08] (  3, 16   )     ref  ->  ecx         "field V07._current (fldOffset=0x4)" P-INDEP
 ;  V47 tmp38        [V47,T01] (  6, 41   )     int  ->  edi         "field V07._index (fldOffset=0x8)" P-INDEP
-;  V48 tmp39        [V48,T20] (  2,  9   )     int  ->  esi         "field V07._version (fldOffset=0xc)" P-INDEP
-;  V49 tmp40        [V49,T23] (  3,  3   )     ref  ->  ebx         single-def "field V26._list (fldOffset=0x0)" P-INDEP
+;  V48 tmp39        [V48,T22] (  2,  9   )     int  ->  esi         "field V07._version (fldOffset=0xc)" P-INDEP
+;  V49 tmp40        [V49,T25] (  3,  3   )     ref  ->  ebx         single-def "field V26._list (fldOffset=0x0)" P-INDEP
 ;* V50 tmp41        [V50    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V26._current (fldOffset=0x4)" P-INDEP
-;* V51 tmp42        [V51,T29] (  0,  0   )     int  ->  zero-ref    "field V26._index (fldOffset=0x8)" P-INDEP
-;  V52 tmp43        [V52,T25] (  2,  2   )     int  ->  [ebp-0x38]  spill-single-def "field V26._version (fldOffset=0xc)" P-INDEP
-;  V53 tmp44        [V53,T24] (  3,  3   )     ref  ->  ebx         single-def "field V36._list (fldOffset=0x0)" P-INDEP
+;* V51 tmp42        [V51,T31] (  0,  0   )     int  ->  zero-ref    "field V26._index (fldOffset=0x8)" P-INDEP
+;  V52 tmp43        [V52,T27] (  2,  2   )     int  ->  [ebp-0x38]  spill-single-def "field V26._version (fldOffset=0xc)" P-INDEP
+;  V53 tmp44        [V53,T26] (  3,  3   )     ref  ->  ebx         single-def "field V36._list (fldOffset=0x0)" P-INDEP
 ;* V54 tmp45        [V54    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V36._current (fldOffset=0x4)" P-INDEP
-;* V55 tmp46        [V55,T30] (  0,  0   )     int  ->  zero-ref    "field V36._index (fldOffset=0x8)" P-INDEP
-;  V56 tmp47        [V56,T26] (  2,  2   )     int  ->  esi         "field V36._version (fldOffset=0xc)" P-INDEP
+;* V55 tmp46        [V55,T32] (  0,  0   )     int  ->  zero-ref    "field V36._index (fldOffset=0x8)" P-INDEP
+;  V56 tmp47        [V56,T28] (  2,  2   )     int  ->  esi         "field V36._version (fldOffset=0xc)" P-INDEP
 ;  V57 tmp48        [V57,T02] (  3, 48   )     ref  ->  edi         "arr expr"
 ;  V58 tmp49        [V58,T03] (  3, 48   )     ref  ->  ecx         "arr expr"
 ;  V59 EHSlots      [V59    ] (  1,  1   )  struct (20) [ebp-0x24]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V60 cse0         [V60,T10] (  3, 24   )     int  ->  edi         "CSE - moderate"
-;  V61 cse1         [V61,T11] (  2, 16   )     int  ->  ecx         "CSE - moderate"
+;  V60 cse0         [V60,T15] (  2, 16   )     int  ->  edi         "CSE - moderate"
+;  V61 cse1         [V61,T10] (  2, 16   )     int  ->  edi         "CSE - moderate"
+;  V62 cse2         [V62,T16] (  2, 16   )     int  ->  ecx         "CSE - moderate"
+;  V63 cse3         [V63,T11] (  2, 16   )     int  ->  ecx         "CSE - moderate"
 ;
 ; Lcl frame size = 52
 
@@ -86,12 +88,12 @@ G_M12834_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; GC ptr vars +{V00}
        mov      esi, edx
                        ;; size=19 bbWeight=1 PerfScore 7.00
-G_M12834_IG02:        ; bbWeight=1, gcVars=00080000 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
+G_M12834_IG02:        ; bbWeight=1, gcVars=0000000000100000 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       G_M12834_IG30
+       je       G_M12834_IG29
        cmp      dword ptr [ecx+0x08], 0
-       jle      G_M12834_IG31
+       jle      G_M12834_IG30
                         ;; size=18 bbWeight=1 PerfScore 5.25
 G_M12834_IG03:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
@@ -114,14 +116,16 @@ G_M12834_IG03:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        or       edx, 0xD1FFAB1E
        mov      dword ptr [ebx+0x0C], edx
        test     eax, eax
-       jle      G_M12834_IG32
+       jle      G_M12834_IG31
                      ;; size=57 bbWeight=1 PerfScore 12.75
 G_M12834_IG04:        ; bbWeight=1, gcrefRegs=0000000A {ecx ebx}, byrefRegs=00000000 {}, byref
        mov      dword ptr [ebx+0x10], eax
-       mov      gword ptr [ebp-0x40], ebx
+       mov      edx, ebx
+       ; gcrRegs +[edx]
+       mov      gword ptr [ebp-0x40], edx
        ; GC ptr vars +{V04}
-                     ;; size=6 bbWeight=1 PerfScore 2.00
-G_M12834_IG05:        ; bbWeight=1, gcVars=00080040 {V00 V04}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
+                        ;; size=8 bbWeight=1 PerfScore 2.25
+G_M12834_IG05:        ; bbWeight=1, gcVars=0000000000100020 {V00 V04}, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[ebx]
        mov      ebx, ecx
        ; gcrRegs +[ebx]
@@ -133,11 +137,11 @@ G_M12834_IG05:        ; bbWeight=1, gcVars=00080040 {V00 V04}, gcrefRegs=0000000
        mov      dword ptr [ebp-0x34], ecx
        jmp      G_M12834_IG13
                        ;; size=21 bbWeight=1 PerfScore 7.50
-G_M12834_IG06:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+G_M12834_IG06:        ; bbWeight=4, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edi]
-       mov      edx, edi
-       ; gcrRegs +[edx]
-       cmp      byte  ptr [edx], dl
+       mov      ecx, edi
+       ; gcrRegs +[ecx]
+       cmp      byte  ptr [ecx], cl
        test     dword ptr [edi+0x1C], 0xD1FFAB1E
        jne      SHORT G_M12834_IG10
        cmp      gword ptr [edi+0x10], 0
@@ -145,7 +149,7 @@ G_M12834_IG06:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
        jmp      SHORT G_M12834_IG08
                        ;; size=21 bbWeight=4 PerfScore 53.00
 G_M12834_IG07:        ; bbWeight=0, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edx edi]
+       ; gcrRegs -[ecx edx edi]
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
@@ -154,75 +158,72 @@ G_M12834_IG07:        ; bbWeight=0, gcrefRegs=00000008 {ebx}, byrefRegs=00000000
        ; gcrRegs -[ecx edx]
        mov      eax, dword ptr [ebp-0x30]
        mov      ecx, dword ptr [ebp-0x34]
+       mov      edx, gword ptr [ebp-0x40]
+       ; gcrRegs +[edx]
        jmp      SHORT G_M12834_IG13
-                       ;; size=24 bbWeight=0 PerfScore 0.00
-G_M12834_IG08:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=27 bbWeight=0 PerfScore 0.00
+G_M12834_IG08:        ; bbWeight=4, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edi]
-       lea      edx, bword ptr [edi+0x10]
-       ; byrRegs +[edx]
-       test     edx, edx
+       lea      ecx, bword ptr [edi+0x10]
+       ; byrRegs +[ecx]
+       test     ecx, ecx
        je       G_M12834_IG17
        push     0
        ; gcr arg push 0
-       mov      ecx, edx
-       ; byrRegs +[ecx]
-       mov      edx, gword ptr [ebp-0x40]
-       ; gcrRegs +[edx]
-       ; byrRegs -[edx]
        call     <unknown method>
        ; gcrRegs -[edx] +[eax]
        ; byrRegs -[ecx]
        ; gcr arg pop 1
        test     eax, eax
+       mov      edx, gword ptr [ebp-0x40]
+       ; gcrRegs +[edx]
        je       SHORT G_M12834_IG15
-                       ;; size=27 bbWeight=4 PerfScore 25.00
-G_M12834_IG09:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=25 bbWeight=4 PerfScore 24.00
+G_M12834_IG09:        ; bbWeight=4, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
        push     1
        mov      ecx, edi
        ; gcrRegs +[ecx]
-       mov      edx, gword ptr [ebp-0x40]
-       ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx edi]
        test     eax, eax
-       jne      SHORT G_M12834_IG14
-                       ;; size=17 bbWeight=4 PerfScore 26.00
-G_M12834_IG10:        ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [ebp-0x40]
        ; gcrRegs +[edx]
-       lea      edi, bword ptr [edx+0x10]
-       ; byrRegs +[edi]
-       mov      ecx, -1
+       jne      SHORT G_M12834_IG14
+                       ;; size=17 bbWeight=4 PerfScore 26.00
+G_M12834_IG10:        ; bbWeight=4, gcrefRegs=0000000C {edx ebx}, byrefRegs=00000000 {}, byref, isz
+       lea      ecx, bword ptr [edx+0x10]
+       ; byrRegs +[ecx]
+       mov      edi, -1
        lock     
-       xadd     dword ptr [edi], ecx
-       dec      ecx
+       xadd     dword ptr [ecx], edi
+       dec      edi
        jne      SHORT G_M12834_IG11
        mov      ecx, edx
        ; gcrRegs +[ecx]
+       ; byrRegs -[ecx]
        xor      edx, edx
        ; gcrRegs -[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       ; byrRegs -[edi]
        mov      edx, gword ptr [ebp-0x40]
        ; gcrRegs +[edx]
-                      ;; size=31 bbWeight=4 PerfScore 98.00
+                     ;; size=28 bbWeight=4 PerfScore 94.00
 G_M12834_IG11:        ; bbWeight=4, gcrefRegs=0000000C {edx ebx}, byrefRegs=00000000 {}, byref, isz
        cmp      dword ptr [edx+0x10], 0
        jl       SHORT G_M12834_IG07
                        ;; size=6 bbWeight=4 PerfScore 16.00
-G_M12834_IG12:        ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[edx]
+G_M12834_IG12:        ; bbWeight=2, gcrefRegs=0000000C {edx ebx}, byrefRegs=00000000 {}, byref
        mov      eax, dword ptr [ebp-0x30]
        mov      ecx, dword ptr [ebp-0x34]
                        ;; size=6 bbWeight=2 PerfScore 4.00
-G_M12834_IG13:        ; bbWeight=8, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
+G_M12834_IG13:        ; bbWeight=8, gcrefRegs=0000000C {edx ebx}, byrefRegs=00000000 {}, byref, isz
        mov      edi, dword ptr [ebx+0x0C]
        cmp      ecx, edi
...
  
-45 (-1.12%) : 8304.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (Tier0-FullOpts)
@@ -9,62 +9,62 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T14] ( 15, 11.75)     ref  ->  [ebp-0xC0]  class-hnd single-def <System.Reflection.MemberInfo>
-;  V01 arg1         [V01,T27] (  5,  3.50)     int  ->  [ebp-0x24]  single-def
-;  V02 arg2         [V02,T40] (  4,  2   )   ubyte  ->  [ebp+0x20] 
-;  V03 arg3         [V03,T53] (  3,  1.50)   ubyte  ->  [ebp+0x1C]  single-def
-;  V04 arg4         [V04,T56] (  2,  1   )     ref  ->  [ebp+0x18]  class-hnd single-def <System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap]>
-;  V05 arg5         [V05,T68] (  1,  0.50)     int  ->  [ebp+0x14]  single-def
-;  V06 arg6         [V06,T63] (  2,  1   )   ubyte  ->  [ebp+0x10]  single-def
-;  V07 arg7         [V07,T42] (  3,  2   )   byref  ->  [ebp+0x0C]  single-def
-;  V08 arg8         [V08,T66] (  1,  0.50)     ref  ->  [ebp+0x08]  class-hnd single-def <System.Reflection.MemberInfo>
+;  V01 arg1         [V01,T28] (  5,  3.50)     int  ->  [ebp-0x24]  single-def
+;  V02 arg2         [V02,T41] (  4,  2   )   ubyte  ->  [ebp+0x20] 
+;  V03 arg3         [V03,T54] (  3,  1.50)   ubyte  ->  [ebp+0x1C]  single-def
+;  V04 arg4         [V04,T57] (  2,  1   )     ref  ->  [ebp+0x18]  class-hnd single-def <System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap]>
+;  V05 arg5         [V05,T69] (  1,  0.50)     int  ->  [ebp+0x14]  single-def
+;  V06 arg6         [V06,T64] (  2,  1   )   ubyte  ->  [ebp+0x10]  single-def
+;  V07 arg7         [V07,T43] (  3,  2   )   byref  ->  [ebp+0x0C]  single-def
+;  V08 arg8         [V08,T67] (  1,  0.50)     ref  ->  [ebp+0x08]  class-hnd single-def <System.Reflection.MemberInfo>
 ;  V09 loc0         [V09,T13] ( 19, 15.50)     int  ->  [ebp-0x28]  ld-addr-op
-;  V10 loc1         [V10,T41] (  4,  2   )     int  ->  [ebp-0x2C] 
+;  V10 loc1         [V10,T42] (  4,  2   )     int  ->  [ebp-0x2C] 
 ;  V11 loc2         [V11    ] ( 14, 10   )     ref  ->  [ebp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
 ;  V12 loc3         [V12,T07] (  5, 19.50)   ubyte  ->  [ebp-0x34]  ld-addr-op
-;  V13 loc4         [V13,T32] (  7,  7   )   ubyte  ->  [ebp-0x38]  ld-addr-op
-;  V14 loc5         [V14,T25] ( 10,  6.50)   ubyte  ->  [ebp-0x3C] 
+;  V13 loc4         [V13,T33] (  7,  7   )   ubyte  ->  [ebp-0x38]  ld-addr-op
+;  V14 loc5         [V14,T26] ( 10,  6.50)   ubyte  ->  [ebp-0x3C] 
 ;  V15 loc6         [V15,T05] (  7, 20.50)   ubyte  ->  registers   ld-addr-op
 ;  V16 loc7         [V16,T09] (  4, 19   )   ubyte  ->  [ebp-0x40]  ld-addr-op
 ;  V17 loc8         [V17,T03] (  8, 24   )   ubyte  ->  [ebp-0x44]  ld-addr-op
 ;  V18 loc9         [V18,T10] (  4, 19   )   ubyte  ->  [ebp-0x48]  ld-addr-op
-;  V19 loc10        [V19,T26] (  6,  6   )   ubyte  ->  [ebp-0x4C] 
+;  V19 loc10        [V19,T27] (  6,  6   )   ubyte  ->  [ebp-0x4C] 
 ;  V20 loc11        [V20,T08] (  5, 19.50)   ubyte  ->  [ebp-0x50]  ld-addr-op
-;  V21 loc12        [V21,T28] (  5,  5.50)     int  ->  [ebp-0x54]  ld-addr-op
-;  V22 loc13        [V22,T29] ( 10,  5   )     ref  ->  [ebp-0xC4]  class-hnd single-def <ProtoBuf.Meta.AttributeMap[]>
+;  V21 loc12        [V21,T29] (  5,  5.50)     int  ->  [ebp-0x54]  ld-addr-op
+;  V22 loc13        [V22,T30] ( 10,  5   )     ref  ->  [ebp-0xC4]  class-hnd single-def <ProtoBuf.Meta.AttributeMap[]>
 ;  V23 loc14        [V23,T01] ( 37, 83.50)     ref  ->  [ebp-0xC8]  class-hnd <ProtoBuf.Meta.AttributeMap>
 ;* V24 loc15        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <ProtoBuf.ProtoMemberAttribute>
-;  V25 loc16        [V25,T57] (  2,  1   )     ref  ->  edi         class-hnd single-def <System.Object>
+;  V25 loc16        [V25,T58] (  2,  1   )     ref  ->  edi         class-hnd single-def <System.Object>
 ;* V26 loc17        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[ProtoBuf.Meta.AttributeMap]>
 ;  V27 loc18        [V27,T00] ( 17,146   )     ref  ->  [ebp-0xCC]  class-hnd <ProtoBuf.Meta.AttributeMap>
 ;  V28 loc19        [V28    ] (  5,  7   )     ref  ->  [ebp-0x58]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Object>
-;  V29 tmp0         [V29,T64] (  2,  1   )     int  ->  edx        
+;  V29 tmp0         [V29,T65] (  2,  1   )     int  ->  edx        
 ;  V30 tmp1         [V30,T11] ( 16, 16   )     ref  ->  [ebp-0xD0]  class-hnd exact spill-single-def "NewObj constructor temp" <ProtoBuf.ProtoMemberAttribute>
-;  V31 tmp2         [V31,T58] (  2,  1   )     ref  ->  eax         single-def
-;  V32 tmp3         [V32,T59] (  2,  1   )     ref  ->  edi         single-def
-;  V33 tmp4         [V33,T34] (  6,  3   )     ref  ->  edi         single-def
-;* V34 tmp5         [V34,T67] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V35 tmp6         [V35,T51] (  3,  1.50)     ref  ->  ebx        
-;  V36 tmp7         [V36,T45] (  2,  2   )     ref  ->  eax         class-hnd single-def "dup spill" <ProtoBuf.Meta.AttributeMap>
-;  V37 tmp8         [V37,T35] (  7,  3.50)     ref  ->  [ebp-0xD4] 
-;  V38 tmp9         [V38,T33] (  3,  4   )     int  ->  esi         "fgMakeTemp is creating a new local variable"
+;  V31 tmp2         [V31,T59] (  2,  1   )     ref  ->  eax         single-def
+;  V32 tmp3         [V32,T60] (  2,  1   )     ref  ->  edi         single-def
+;  V33 tmp4         [V33,T35] (  6,  3   )     ref  ->  edi         single-def
+;* V34 tmp5         [V34,T68] (  0,  0   )     ref  ->  zero-ref    single-def
+;  V35 tmp6         [V35,T52] (  3,  1.50)     ref  ->  ebx        
+;  V36 tmp7         [V36,T46] (  2,  2   )     ref  ->  eax         class-hnd single-def "dup spill" <ProtoBuf.Meta.AttributeMap>
+;  V37 tmp8         [V37,T36] (  7,  3.50)     ref  ->  [ebp-0xD4] 
+;  V38 tmp9         [V38,T34] (  3,  4   )     int  ->  esi         "fgMakeTemp is creating a new local variable"
 ;  V39 tmp10        [V39,T06] (  6, 20   )     ref  ->  [ebp-0xD8]  class-hnd "spilling QMark2" <System.String>
 ;  V40 tmp11        [V40,T23] (  2,  8   )     int  ->  edx         "dup spill"
-;  V41 tmp12        [V41,T49] (  2,  2   )     int  ->  edx         "dup spill"
-;  V42 tmp13        [V42,T39] (  3,  2.50)     int  ->  ecx         "fgMakeTemp is creating a new local variable"
-;* V43 tmp14        [V43,T60] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;  V41 tmp12        [V41,T50] (  2,  2   )     int  ->  edx         "dup spill"
+;  V42 tmp13        [V42,T40] (  3,  2.50)     int  ->  ecx         "fgMakeTemp is creating a new local variable"
+;* V43 tmp14        [V43,T61] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
 ;* V44 tmp15        [V44    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ProtoBuf.Meta.EnumMember>
 ;  V45 tmp16        [V45    ] (  6,  2.50)     ref  ->  [ebp-0x5C]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Object>
-;  V46 tmp17        [V46,T43] (  3,  2   )     int  ->  edx         "fgMakeTemp is creating a new local variable"
-;  V47 tmp18        [V47,T46] (  2,  2   )     ref  ->  ecx         class-hnd single-def "spilling QMark2" <System.String>
-;* V48 tmp19        [V48,T69] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V49 tmp20        [V49,T36] (  3,  3   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V50 tmp21        [V50,T47] (  2,  2   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V46 tmp17        [V46,T44] (  3,  2   )     int  ->  edx         "fgMakeTemp is creating a new local variable"
+;  V47 tmp18        [V47,T47] (  2,  2   )     ref  ->  ecx         class-hnd single-def "spilling QMark2" <System.String>
+;* V48 tmp19        [V48,T70] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V49 tmp20        [V49,T37] (  3,  3   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V50 tmp21        [V50,T48] (  2,  2   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V51 tmp22        [V51    ] (  6,  2.75)     ref  ->  [ebp-0x60]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Object>
 ;  V52 tmp23        [V52    ] (  6,  2.50)     ref  ->  [ebp-0x64]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Object>
-;  V53 tmp24        [V53,T44] (  3,  2   )     int  ->  eax         "fgMakeTemp is creating a new local variable"
-;  V54 tmp25        [V54,T48] (  2,  2   )     ref  ->  ecx         class-hnd single-def "spilling QMark2" <System.String>
-;* V55 tmp26        [V55,T70] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V56 tmp27        [V56,T37] (  3,  3   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V53 tmp24        [V53,T45] (  3,  2   )     int  ->  eax         "fgMakeTemp is creating a new local variable"
+;  V54 tmp25        [V54,T49] (  2,  2   )     ref  ->  ecx         class-hnd single-def "spilling QMark2" <System.String>
+;* V55 tmp26        [V55,T71] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V56 tmp27        [V56,T38] (  3,  3   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V57 tmp28        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V58 tmp29        [V58    ] (  6,  2.75)     ref  ->  [ebp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Object>
 ;* V59 tmp30        [V59    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -74,13 +74,13 @@
 ;  V63 tmp34        [V63    ] (  6,  2.75)     ref  ->  [ebp-0x74]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Object>
 ;* V64 tmp35        [V64    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V65 tmp36        [V65    ] (  6,  2.75)     ref  ->  [ebp-0x78]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Object>
-;  V66 tmp37        [V66,T54] (  3,  1.50)   ubyte  ->  ecx         "Inline return value spill temp"
+;  V66 tmp37        [V66,T55] (  3,  1.50)   ubyte  ->  ecx         "Inline return value spill temp"
 ;  V67 tmp38        [V67    ] (  6,  2.75)     ref  ->  [ebp-0x7C]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Object>
 ;* V68 tmp39        [V68    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V69 tmp40        [V69    ] (  6,  2.75)     ref  ->  [ebp-0x80]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Object>
 ;* V70 tmp41        [V70    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[ProtoBuf.Meta.AttributeMap]>
 ;  V71 tmp42        [V71,T12] (  5, 16   )     ref  ->  [ebp-0xDC]  class-hnd exact "Inlining Arg" <System.String>
-;  V72 tmp43        [V72,T30] (  2,  4   )   ubyte  ->  eax         "Inline return value spill temp"
+;  V72 tmp43        [V72,T31] (  2,  4   )   ubyte  ->  eax         "Inline return value spill temp"
 ;  V73 tmp44        [V73,T21] (  2,  8   )   byref  ->  esi         "impAppendStmt"
 ;* V74 tmp45        [V74    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V75 tmp46        [V75    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -91,7 +91,7 @@
 ;  V80 tmp51        [V80    ] (  6, 10   )     ref  ->  [ebp-0x88]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Object>
 ;  V81 tmp52        [V81,T20] (  3,  8   )     int  ->  eax         "fgMakeTemp is creating a new local variable"
 ;  V82 tmp53        [V82,T22] (  2,  8   )     ref  ->  ecx         class-hnd "spilling QMark2" <System.String>
-;* V83 tmp54        [V83,T50] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V83 tmp54        [V83,T51] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V84 tmp55        [V84,T16] (  3, 12   )     ref  ->  ecx         class-hnd exact "Inlining Arg" <System.String>
 ;* V85 tmp56        [V85    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V86 tmp57        [V86    ] (  6, 70   )     ref  ->  [ebp-0x8C]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Object>
@@ -118,21 +118,22 @@
 ;* V107 tmp78       [V107    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V108 tmp79       [V108    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V109 tmp80       [V109    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V110 tmp81       [V110,T55] (  3,  1   )   ubyte  ->  registers   "Inline return value spill temp"
-;  V111 tmp82       [V111,T38] (  3,  3   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V110 tmp81       [V110,T56] (  3,  1   )   ubyte  ->  registers   "Inline return value spill temp"
+;  V111 tmp82       [V111,T39] (  3,  3   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V112 tmp83       [V112,T15] (  4, 12.50)     ref  ->  [ebp-0xE0]  spill-single-def "field V26._list (fldOffset=0x0)" P-INDEP
 ;  V113 tmp84       [V113,T19] (  2,  6   )     ref  ->  ecx         "field V26._current (fldOffset=0x4)" P-INDEP
 ;  V114 tmp85       [V114,T02] (  6, 20.50)     int  ->  [ebp-0xB4]  "field V26._index (fldOffset=0x8)" P-INDEP
-;  V115 tmp86       [V115,T31] (  2,  4.50)     int  ->  [ebp-0xB8]  spill-single-def "field V26._version (fldOffset=0xc)" P-INDEP
-;  V116 tmp87       [V116,T61] (  2,  1   )     ref  ->  ecx         single-def "field V44.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;  V117 tmp88       [V117,T62] (  2,  1   )     ref  ->  edi         single-def "field V44.<Value>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V118 tmp89       [V118,T52] (  3,  1.50)     ref  ->  [ebp-0xE4]  spill-single-def "field V70._list (fldOffset=0x0)" P-INDEP
+;  V115 tmp86       [V115,T32] (  2,  4.50)     int  ->  [ebp-0xB8]  spill-single-def "field V26._version (fldOffset=0xc)" P-INDEP
+;  V116 tmp87       [V116,T62] (  2,  1   )     ref  ->  ecx         single-def "field V44.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;  V117 tmp88       [V117,T63] (  2,  1   )     ref  ->  edi         single-def "field V44.<Value>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V118 tmp89       [V118,T53] (  3,  1.50)     ref  ->  [ebp-0xE4]  spill-single-def "field V70._list (fldOffset=0x0)" P-INDEP
 ;* V119 tmp90       [V119    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V70._current (fldOffset=0x4)" P-INDEP
-;* V120 tmp91       [V120,T71] (  0,  0   )     int  ->  zero-ref    "field V70._index (fldOffset=0x8)" P-INDEP
-;  V121 tmp92       [V121,T65] (  2,  1   )     int  ->  [ebp-0xBC]  spill-single-def "field V70._version (fldOffset=0xc)" P-INDEP
+;* V120 tmp91       [V120,T72] (  0,  0   )     int  ->  zero-ref    "field V70._index (fldOffset=0x8)" P-INDEP
+;  V121 tmp92       [V121,T66] (  2,  1   )     int  ->  [ebp-0xBC]  spill-single-def "field V70._version (fldOffset=0xc)" P-INDEP
 ;  V122 tmp93       [V122,T04] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V123 EHSlots     [V123    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V124 cse0        [V124,T18] (  2,  8   )     int  ->  ecx         "CSE - conservative"
+;  V124 cse0        [V124,T25] (  2,  8   )     int  ->  ecx         "CSE - conservative"
+;  V125 cse1        [V125,T18] (  2,  8   )     int  ->  ecx         "CSE - conservative"
 ;  TEMP_02                                     ref  ->  [ebp-0xE8]
 ;  TEMP_01                                     int  ->  [ebp-0xEC]
 ;
@@ -317,7 +318,7 @@ G_M42865_IG16:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        ; gcrRegs +[eax]
        mov      edx, 0xD1FFAB1E      ; System.String
        cmp      dword ptr [eax], edx
-       jne      G_M42865_IG140
+       jne      G_M42865_IG137
        mov      gword ptr [ebp-0x30], ecx
                        ;; size=53 bbWeight=0.50 PerfScore 10.75
 G_M42865_IG17:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
@@ -465,7 +466,7 @@ G_M42865_IG24:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        ; gcrRegs +[edx]
        mov      eax, 0xD1FFAB1E      ; System.String
        cmp      dword ptr [edx], eax
-       jne      G_M42865_IG141
+       jne      G_M42865_IG138
        mov      gword ptr [ebp-0x30], ecx
                        ;; size=63 bbWeight=0.50 PerfScore 11.62
 G_M42865_IG25:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
@@ -552,7 +553,7 @@ G_M42865_IG30:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      gword ptr [ebp-0xC0], esi
        ; GC ptr vars +{V00}
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
-G_M42865_IG31:        ; bbWeight=0.50, gcVars=000000000000000020004002 {V00 V22 V23}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M42865_IG31:        ; bbWeight=0.50, gcVars=000000000000000040004002 {V00 V22 V23}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[esi]
        xor      ecx, ecx
        ; gcrRegs +[ecx]
@@ -692,7 +693,7 @@ G_M42865_IG40:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
        je       G_M42865_IG50
        jmp      SHORT G_M42865_IG45
                        ;; size=21 bbWeight=0.50 PerfScore 3.25
-G_M42865_IG41:        ; bbWeight=0.25, gcVars=000000000000000020000002 {V22 V23}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M42865_IG41:        ; bbWeight=0.25, gcVars=000000000000000040000002 {V22 V23}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[ecx] +[esi]
        ; GC ptr vars -{V00}
        mov      gword ptr [ebp-0xC0], esi
@@ -711,7 +712,7 @@ G_M42865_IG43:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000
        ; gcrRegs +[edi]
        jmp      G_M42865_IG54
                        ;; size=11 bbWeight=0.25 PerfScore 0.75
-G_M42865_IG44:        ; bbWeight=0.50, gcVars=000000000000000020004002 {V00 V22 V23}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M42865_IG44:        ; bbWeight=0.50, gcVars=000000000000000040004002 {V00 V22 V23}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[esi edi]
        ; GC ptr vars +{V00 V14}
        mov      ecx, 1
@@ -836,7 +837,7 @@ G_M42865_IG54:        ; bbWeight=0.50, gcVars=000000000000000000000002 {V23}, gc
        cmp      gword ptr [ebp+0x18], 0
        mov      gword ptr [ebp-0xC4], edi
        ; GC ptr vars +{V22}
-       je       G_M42865_IG107
+       je       G_M42865_IG104
        mov      edi, gword ptr [ebp+0x18]
        mov      gword ptr [ebp-0xE4], edi
        ; GC ptr vars +{V118}
@@ -850,15 +851,15 @@ G_M42865_IG54:        ; bbWeight=0.50, gcVars=000000000000000000000002 {V23}, gc
        xor      edx, edx
        mov      ecx, dword ptr [ebp-0xBC]
        mov      dword ptr [ebp-0xB8], ecx
-       jmp      G_M42865_IG106
+       jmp      G_M42865_IG103
                       ;; size=71 bbWeight=0.50 PerfScore 9.12
 G_M42865_IG55:        ; bbWeight=0.25, gcVars=000000000000000000000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars -{V22 V23 V112 V118}
        mov      gword ptr [ebp-0xC4], edi
        ; GC ptr vars +{V22}
-       jmp      G_M42865_IG107
+       jmp      G_M42865_IG104
                         ;; size=11 bbWeight=0.25 PerfScore 0.75
-G_M42865_IG56:        ; bbWeight=2, gcVars=000000000000000020008002 {V22 V23 V112}, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M42865_IG56:        ; bbWeight=2, gcVars=000000000000000040008002 {V22 V23 V112}, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[edi] +[ecx]
        ; GC ptr vars +{V01 V15 V23 V112}
        mov      gword ptr [ebp-0xC0], esi
@@ -882,15 +883,15 @@ G_M42865_IG56:        ; bbWeight=2, gcVars=000000000000000020008002 {V22 V23 V11
        ; gcrRegs +[esi]
        mov      edi, gword ptr [ebp-0xE0]
        ; gcrRegs +[edi]
-       je       G_M42865_IG94
+       je       G_M42865_IG103
        mov      ecx, gword ptr [ebp-0x58]
        ; gcrRegs +[ecx]
        mov      gword ptr [ebp-0xD8], ecx
        ; GC ptr vars +{V39}
        cmp      gword ptr [ebp-0x58], 0
-       je       G_M42865_IG93
+       je       G_M42865_IG91
                       ;; size=76 bbWeight=2 PerfScore 42.00
-G_M42865_IG57:        ; bbWeight=1, gcVars=000000000000000020008043 {V22 V23 V27 V39 V112}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M42865_IG57:        ; bbWeight=1, gcVars=000000000000000040008043 {V22 V23 V27 V39 V112}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[ecx]
        ; GC ptr vars -{V00}
        mov      gword ptr [ebp-0xC0], esi
@@ -903,13 +904,13 @@ G_M42865_IG57:        ; bbWeight=1, gcVars=000000000000000020008043 {V22 V23 V27
        cmp      dword ptr [edi], esi
...
  
-7 (-1.03%) : 9839.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
@@ -8,27 +8,27 @@
 ; 9 inlinees with PGO data; 33 single block inlinees; 9 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T19] (  8,  7   )     ref  ->  [ebp-0x40]  class-hnd EH-live single-def <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
-;  V01 arg1         [V01,T17] (  3, 10   )     int  ->  esi         single-def
+;  V00 arg0         [V00,T20] (  8,  7   )     ref  ->  [ebp-0x40]  class-hnd EH-live single-def <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
+;  V01 arg1         [V01,T18] (  3, 10   )     int  ->  esi         single-def
 ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 4) zero-ref    single-def <System.Threading.CancellationToken>
-;  V03 loc0         [V03,T18] (  4, 11   )   ubyte  ->  [ebp-0x28]  do-not-enreg[Z] EH-live
-;  V04 loc1         [V04,T06] (  8, 32   )     ref  ->  [ebp-0x44]  class-hnd exact EH-live spill-single-def <System.Threading.Tasks.Task+SetOnCountdownMres>
+;  V03 loc0         [V03,T19] (  4, 11   )   ubyte  ->  [ebp-0x28]  do-not-enreg[Z] EH-live
+;  V04 loc1         [V04,T05] (  8, 32   )     ref  ->  [ebp-0x44]  class-hnd exact EH-live spill-single-def <System.Threading.Tasks.Task+SetOnCountdownMres>
 ;* V05 loc2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V06 loc3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Threading.Tasks.Task>
 ;* V07 loc4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V08 loc5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Threading.Tasks.Task>
-;  V09 tmp0         [V09,T16] (  6, 12   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+SetOnCountdownMres>
+;  V09 tmp0         [V09,T17] (  6, 12   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+SetOnCountdownMres>
 ;* V10 tmp1         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp2         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp3         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V13 tmp4         [V13,T23] (  3,  6   )     int  ->  [ebp-0x2C]  spill-single-def "Inlining Arg"
+;  V13 tmp4         [V13,T25] (  3,  6   )     int  ->  [ebp-0x2C]  spill-single-def "Inlining Arg"
 ;* V14 tmp5         [V14    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
 ;* V17 tmp8         [V17    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V18 tmp9         [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V19 tmp10        [V19    ] (  0,  0   )     int  ->  zero-ref   
-;  V20 tmp11        [V20,T21] (  5,  8   )     int  ->  [ebp-0x30]  spill-single-def "Inlining Arg"
+;  V20 tmp11        [V20,T23] (  5,  8   )     int  ->  [ebp-0x30]  spill-single-def "Inlining Arg"
 ;* V21 tmp12        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp13        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp14        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -36,41 +36,43 @@
 ;* V25 tmp16        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp17        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V27 tmp18        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
-;  V28 tmp19        [V28,T13] (  2,  8   )   ubyte  ->  eax         "Inline return value spill temp"
+;  V28 tmp19        [V28,T12] (  2,  8   )   ubyte  ->  eax         "Inline return value spill temp"
 ;* V29 tmp20        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp21        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V32 tmp23        [V32,T09] (  3, 24   )   byref  ->  edx         "Inlining Arg"
+;  V32 tmp23        [V32,T09] (  3, 24   )   byref  ->  ecx         "Inlining Arg"
 ;* V33 tmp24        [V33    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp25        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V35 tmp26        [V35,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V35 tmp26        [V35,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V36 tmp27        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
 ;* V37 tmp28        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V39 tmp30        [V39,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V39 tmp30        [V39,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V40 tmp31        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
-;  V41 tmp32        [V41,T22] (  1,  8   )     ref  ->  [ebp+0x08]  single-def "field V02._source (fldOffset=0x0)" P-INDEP
-;  V42 tmp33        [V42,T05] (  4, 25   )     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
+;  V41 tmp32        [V41,T24] (  1,  8   )     ref  ->  [ebp+0x08]  single-def "field V02._source (fldOffset=0x0)" P-INDEP
+;  V42 tmp33        [V42,T06] (  4, 25   )     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V43 tmp34        [V43,T04] (  6, 28   )     ref  ->  edi         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V44 tmp35        [V44,T00] (  6, 41   )     int  ->  [ebp-0x34]  "field V05._index (fldOffset=0x8)" P-INDEP
-;  V45 tmp36        [V45,T12] (  3, 17   )     int  ->  [ebp-0x38]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
+;  V45 tmp36        [V45,T21] (  2,  9   )     int  ->  [ebp-0x38]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
 ;  V46 tmp37        [V46,T07] (  4, 25   )     ref  ->  ebx         single-def "field V07._list (fldOffset=0x0)" P-INDEP
 ;  V47 tmp38        [V47,T08] (  3, 16   )     ref  ->  ecx         "field V07._current (fldOffset=0x4)" P-INDEP
 ;  V48 tmp39        [V48,T01] (  6, 41   )     int  ->  edi         "field V07._index (fldOffset=0x8)" P-INDEP
-;  V49 tmp40        [V49,T20] (  2,  9   )     int  ->  esi         "field V07._version (fldOffset=0xc)" P-INDEP
-;  V50 tmp41        [V50,T24] (  3,  3   )     ref  ->  ebx         single-def "field V27._list (fldOffset=0x0)" P-INDEP
+;  V49 tmp40        [V49,T22] (  2,  9   )     int  ->  esi         "field V07._version (fldOffset=0xc)" P-INDEP
+;  V50 tmp41        [V50,T26] (  3,  3   )     ref  ->  ebx         single-def "field V27._list (fldOffset=0x0)" P-INDEP
 ;* V51 tmp42        [V51    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V27._current (fldOffset=0x4)" P-INDEP
-;* V52 tmp43        [V52,T28] (  0,  0   )     int  ->  zero-ref    "field V27._index (fldOffset=0x8)" P-INDEP
-;  V53 tmp44        [V53,T26] (  2,  2   )     int  ->  [ebp-0x3C]  spill-single-def "field V27._version (fldOffset=0xc)" P-INDEP
-;  V54 tmp45        [V54,T25] (  3,  3   )     ref  ->  ebx         single-def "field V37._list (fldOffset=0x0)" P-INDEP
+;* V52 tmp43        [V52,T30] (  0,  0   )     int  ->  zero-ref    "field V27._index (fldOffset=0x8)" P-INDEP
+;  V53 tmp44        [V53,T28] (  2,  2   )     int  ->  [ebp-0x3C]  spill-single-def "field V27._version (fldOffset=0xc)" P-INDEP
+;  V54 tmp45        [V54,T27] (  3,  3   )     ref  ->  ebx         single-def "field V37._list (fldOffset=0x0)" P-INDEP
 ;* V55 tmp46        [V55    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V37._current (fldOffset=0x4)" P-INDEP
-;* V56 tmp47        [V56,T29] (  0,  0   )     int  ->  zero-ref    "field V37._index (fldOffset=0x8)" P-INDEP
-;  V57 tmp48        [V57,T27] (  2,  2   )     int  ->  esi         "field V37._version (fldOffset=0xc)" P-INDEP
+;* V56 tmp47        [V56,T31] (  0,  0   )     int  ->  zero-ref    "field V37._index (fldOffset=0x8)" P-INDEP
+;  V57 tmp48        [V57,T29] (  2,  2   )     int  ->  esi         "field V37._version (fldOffset=0xc)" P-INDEP
 ;  V58 tmp49        [V58,T02] (  3, 48   )     ref  ->  edi         "arr expr"
 ;  V59 tmp50        [V59,T03] (  3, 48   )     ref  ->  ecx         "arr expr"
 ;  V60 EHSlots      [V60    ] (  1,  1   )  struct (20) [ebp-0x24]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V61 cse0         [V61,T10] (  3, 24   )     int  ->  edi         "CSE - moderate"
-;  V62 cse1         [V62,T11] (  2, 16   )     int  ->  ecx         "CSE - moderate"
+;  V61 cse0         [V61,T15] (  2, 16   )     int  ->  edi         "CSE - moderate"
+;  V62 cse1         [V62,T10] (  2, 16   )     int  ->  edi         "CSE - moderate"
+;  V63 cse2         [V63,T16] (  2, 16   )     int  ->  ecx         "CSE - moderate"
+;  V64 cse3         [V64,T11] (  2, 16   )     int  ->  ecx         "CSE - moderate"
 ;
 ; Lcl frame size = 56
 
@@ -87,12 +89,12 @@ G_M12834_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; GC ptr vars +{V00}
        mov      esi, edx
                        ;; size=19 bbWeight=1 PerfScore 7.00
-G_M12834_IG02:        ; bbWeight=1, gcVars=00080000 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
+G_M12834_IG02:        ; bbWeight=1, gcVars=00100000 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       G_M12834_IG33
+       je       G_M12834_IG32
        cmp      dword ptr [ecx+0x08], 0
-       jle      G_M12834_IG34
+       jle      G_M12834_IG33
                         ;; size=18 bbWeight=1 PerfScore 5.25
 G_M12834_IG03:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
@@ -109,7 +111,7 @@ G_M12834_IG03:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; gcrRegs -[eax]
        mov      dword ptr [ebp-0x2C], eax
        test     byte  ptr [D1FFAB1EH], 1      ; global ptr
-       je       G_M12834_IG35
+       je       G_M12834_IG34
                        ;; size=39 bbWeight=1 PerfScore 10.75
 G_M12834_IG04:        ; bbWeight=1, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
@@ -118,9 +120,9 @@ G_M12834_IG04:        ; bbWeight=1, gcrefRegs=00000008 {ebx}, byrefRegs=00000000
        xor      ecx, ecx
        mov      dword ptr [ebx+0x0C], ecx
        test     edx, edx
-       jl       G_M12834_IG36
+       jl       G_M12834_IG35
        cmp      edx, 0x7FF
-       jg       G_M12834_IG23
+       jg       G_M12834_IG22
                      ;; size=34 bbWeight=1 PerfScore 6.75
 G_M12834_IG05:        ; bbWeight=1, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
        mov      ecx, dword ptr [ebx+0x0C]
@@ -129,14 +131,16 @@ G_M12834_IG05:        ; bbWeight=1, gcrefRegs=00000008 {ebx}, byrefRegs=00000000
        or       ecx, edx
        mov      dword ptr [ebx+0x0C], ecx
        test     eax, eax
-       jle      G_M12834_IG39
+       jle      G_M12834_IG38
                      ;; size=25 bbWeight=1 PerfScore 5.25
 G_M12834_IG06:        ; bbWeight=1, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
        mov      dword ptr [ebx+0x10], eax
-       mov      gword ptr [ebp-0x44], ebx
+       mov      edx, ebx
+       ; gcrRegs +[edx]
+       mov      gword ptr [ebp-0x44], edx
        ; GC ptr vars +{V04}
-                     ;; size=6 bbWeight=1 PerfScore 2.00
-G_M12834_IG07:        ; bbWeight=1, gcVars=00080040 {V00 V04}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+                       ;; size=8 bbWeight=1 PerfScore 2.25
+G_M12834_IG07:        ; bbWeight=1, gcVars=00100020 {V00 V04}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[ebx]
        mov      ecx, gword ptr [ebp-0x40]
        ; gcrRegs +[ecx]
@@ -150,11 +154,11 @@ G_M12834_IG07:        ; bbWeight=1, gcVars=00080040 {V00 V04}, gcrefRegs=0000000
        mov      dword ptr [ebp-0x38], ecx
        jmp      G_M12834_IG15
                        ;; size=24 bbWeight=1 PerfScore 8.50
-G_M12834_IG08:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+G_M12834_IG08:        ; bbWeight=4, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edi]
-       mov      edx, edi
-       ; gcrRegs +[edx]
-       cmp      byte  ptr [edx], dl
+       mov      ecx, edi
+       ; gcrRegs +[ecx]
+       cmp      byte  ptr [ecx], cl
        test     dword ptr [edi+0x1C], 0xD1FFAB1E
        jne      SHORT G_M12834_IG12
        cmp      gword ptr [edi+0x10], 0
@@ -162,7 +166,7 @@ G_M12834_IG08:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
        jmp      SHORT G_M12834_IG10
                        ;; size=21 bbWeight=4 PerfScore 53.00
 G_M12834_IG09:        ; bbWeight=0, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edx edi]
+       ; gcrRegs -[ecx edx edi]
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
@@ -171,75 +175,72 @@ G_M12834_IG09:        ; bbWeight=0, gcrefRegs=00000008 {ebx}, byrefRegs=00000000
        ; gcrRegs -[ecx edx]
        mov      eax, dword ptr [ebp-0x34]
        mov      ecx, dword ptr [ebp-0x38]
+       mov      edx, gword ptr [ebp-0x44]
+       ; gcrRegs +[edx]
        jmp      SHORT G_M12834_IG15
-                       ;; size=24 bbWeight=0 PerfScore 0.00
-G_M12834_IG10:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=27 bbWeight=0 PerfScore 0.00
+G_M12834_IG10:        ; bbWeight=4, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edi]
-       lea      edx, bword ptr [edi+0x10]
-       ; byrRegs +[edx]
-       test     edx, edx
+       lea      ecx, bword ptr [edi+0x10]
+       ; byrRegs +[ecx]
+       test     ecx, ecx
        je       G_M12834_IG19
        push     0
        ; gcr arg push 0
-       mov      ecx, edx
-       ; byrRegs +[ecx]
-       mov      edx, gword ptr [ebp-0x44]
-       ; gcrRegs +[edx]
-       ; byrRegs -[edx]
        call     <unknown method>
        ; gcrRegs -[edx] +[eax]
        ; byrRegs -[ecx]
        ; gcr arg pop 1
        test     eax, eax
+       mov      edx, gword ptr [ebp-0x44]
+       ; gcrRegs +[edx]
        je       SHORT G_M12834_IG17
-                       ;; size=27 bbWeight=4 PerfScore 25.00
-G_M12834_IG11:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=25 bbWeight=4 PerfScore 24.00
+G_M12834_IG11:        ; bbWeight=4, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
        push     1
        mov      ecx, edi
        ; gcrRegs +[ecx]
-       mov      edx, gword ptr [ebp-0x44]
-       ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx edi]
        test     eax, eax
-       jne      SHORT G_M12834_IG16
-                       ;; size=17 bbWeight=4 PerfScore 26.00
-G_M12834_IG12:        ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [ebp-0x44]
        ; gcrRegs +[edx]
-       lea      edi, bword ptr [edx+0x10]
-       ; byrRegs +[edi]
-       mov      ecx, -1
+       jne      SHORT G_M12834_IG16
+                       ;; size=17 bbWeight=4 PerfScore 26.00
+G_M12834_IG12:        ; bbWeight=4, gcrefRegs=0000000C {edx ebx}, byrefRegs=00000000 {}, byref, isz
+       lea      ecx, bword ptr [edx+0x10]
+       ; byrRegs +[ecx]
+       mov      edi, -1
        lock     
-       xadd     dword ptr [edi], ecx
-       dec      ecx
+       xadd     dword ptr [ecx], edi
+       dec      edi
        jne      SHORT G_M12834_IG13
        mov      ecx, edx
        ; gcrRegs +[ecx]
+       ; byrRegs -[ecx]
        xor      edx, edx
        ; gcrRegs -[edx]
...
  
+2 (+2.06%) : 12934.dasm - System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (Tier0-FullOpts)
@@ -8,26 +8,27 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T08] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl>
-;  V01 arg1         [V01,T07] (  3,  4   )     ref  ->  esi         class-hnd single-def <ubyte[]>
+;  V00 this         [V00,T09] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl>
+;  V01 arg1         [V01,T08] (  3,  4   )     ref  ->  esi         class-hnd single-def <ubyte[]>
 ;  V02 loc0         [V02    ] (  3,  7   )     int  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.FieldMetadata]>
 ;* V04 loc2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Diagnostics.Tracing.FieldMetadata>
-;  V05 tmp0         [V05,T09] (  2,  4   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V05 tmp0         [V05,T10] (  2,  4   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.FieldMetadata]>
-;* V07 tmp2         [V07,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V07 tmp2         [V07,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V08 tmp3         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V09 tmp4         [V09,T02] (  4, 17   )     ref  ->  edi         single-def "field V03._list (fldOffset=0x0)" P-INDEP
-;  V10 tmp5         [V10,T04] (  2,  6   )     ref  ->  ecx         "field V03._current (fldOffset=0x4)" P-INDEP
+;  V10 tmp5         [V10,T05] (  2,  6   )     ref  ->  ecx         "field V03._current (fldOffset=0x4)" P-INDEP
 ;  V11 tmp6         [V11,T00] (  6, 21   )     int  ->  [ebp-0x28]  "field V03._index (fldOffset=0x8)" P-INDEP
-;  V12 tmp7         [V12,T05] (  2,  9   )     int  ->  ebx         "field V03._version (fldOffset=0xc)" P-INDEP
-;  V13 tmp8         [V13,T10] (  3,  3   )     ref  ->  edi         single-def "field V06._list (fldOffset=0x0)" P-INDEP
+;  V12 tmp7         [V12,T06] (  2,  9   )     int  ->  ebx         "field V03._version (fldOffset=0xc)" P-INDEP
+;  V13 tmp8         [V13,T11] (  3,  3   )     ref  ->  edi         single-def "field V06._list (fldOffset=0x0)" P-INDEP
 ;* V14 tmp9         [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._current (fldOffset=0x4)" P-INDEP
-;* V15 tmp10        [V15,T12] (  0,  0   )     int  ->  zero-ref    "field V06._index (fldOffset=0x8)" P-INDEP
-;  V16 tmp11        [V16,T11] (  2,  2   )     int  ->  ebx         "field V06._version (fldOffset=0xc)" P-INDEP
+;* V15 tmp10        [V15,T13] (  0,  0   )     int  ->  zero-ref    "field V06._index (fldOffset=0x8)" P-INDEP
+;  V16 tmp11        [V16,T12] (  2,  2   )     int  ->  ebx         "field V06._version (fldOffset=0xc)" P-INDEP
 ;  V17 tmp12        [V17,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V18 EHSlots      [V18    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V19 cse0         [V19,T03] (  2,  8   )     int  ->  ecx         "CSE - moderate"
+;  V19 cse0         [V19,T04] (  2,  8   )     int  ->  ecx         "CSE - moderate"
+;  V20 cse1         [V20,T03] (  2, 16   )     int  ->  ecx         "CSE - aggressive"
 ;
 ; Lcl frame size = 28
 
@@ -65,9 +66,10 @@ G_M38703_IG04:        ; bbWeight=2, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=
        mov      edx, dword ptr [ebp-0x28]
                        ;; size=15 bbWeight=2 PerfScore 17.00
 G_M38703_IG05:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ebx, dword ptr [edi+0x0C]
+       mov      ecx, dword ptr [edi+0x0C]
+       cmp      ebx, ecx
        jne      SHORT G_M38703_IG10
-                      ;; size=5 bbWeight=8 PerfScore 32.00
+                      ;; size=7 bbWeight=8 PerfScore 26.00
 G_M38703_IG06:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, dword ptr [edi+0x08]
        cmp      edx, ecx
@@ -101,6 +103,6 @@ G_M38703_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 97, prolog size 14, PerfScore 138.25, instruction count 41, allocated bytes for code 97 (MethodHash=726d68d0) for method System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (Tier0-FullOpts)
+; Total bytes of code 99, prolog size 14, PerfScore 132.25, instruction count 42, allocated bytes for code 99 (MethodHash=726d68d0) for method System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (Tier0-FullOpts)
 ; ============================================================
 
  
+2 (+2.22%) : 3727.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  3,  4   )     ref  ->  esi         this class-hnd single-def <System.Linq.Expressions.Compiler.LambdaCompiler>
-;  V01 arg1         [V01,T07] (  4,  3.50)     ref  ->  edx         class-hnd single-def <System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
+;  V00 this         [V00,T07] (  3,  4   )     ref  ->  esi         this class-hnd single-def <System.Linq.Expressions.Compiler.LambdaCompiler>
+;  V01 arg1         [V01,T08] (  4,  3.50)     ref  ->  edx         class-hnd single-def <System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack>
 ;* V04 tmp0         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
@@ -18,14 +18,15 @@
 ;  V07 tmp3         [V07,T02] (  4, 12.50)     ref  ->  edi         single-def "field V02._list (fldOffset=0x0)" P-INDEP
 ;  V08 tmp4         [V08,T03] (  3,  8   )     ref  ->  eax         "field V02._current (fldOffset=0x4)" P-INDEP
 ;  V09 tmp5         [V09,T00] (  6, 20.50)     int  ->  [ebp-0x24]  "field V02._index (fldOffset=0x8)" P-INDEP
-;  V10 tmp6         [V10,T08] (  2,  4.50)     int  ->  ebx         "field V02._version (fldOffset=0xc)" P-INDEP
-;  V11 tmp7         [V11,T09] (  3,  1.50)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V10 tmp6         [V10,T09] (  2,  4.50)     int  ->  ebx         "field V02._version (fldOffset=0xc)" P-INDEP
+;  V11 tmp7         [V11,T10] (  3,  1.50)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._current (fldOffset=0x4)" P-INDEP
-;* V13 tmp9         [V13,T11] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
-;  V14 tmp10        [V14,T10] (  2,  1   )     int  ->  ebx         "field V04._version (fldOffset=0xc)" P-INDEP
+;* V13 tmp9         [V13,T12] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
+;  V14 tmp10        [V14,T11] (  2,  1   )     int  ->  ebx         "field V04._version (fldOffset=0xc)" P-INDEP
 ;  V15 tmp11        [V15,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V16 EHSlots      [V16    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V17 cse0         [V17,T04] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
+;  V17 cse0         [V17,T06] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
+;  V18 cse1         [V18,T04] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
 ;
 ; Lcl frame size = 24
 
@@ -65,7 +66,8 @@ G_M37225_IG04:        ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
        mov      edx, dword ptr [ebp-0x24]
                        ;; size=11 bbWeight=2 PerfScore 12.50
 G_M37225_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ebx, dword ptr [edi+0x0C]
+       mov      ecx, dword ptr [edi+0x0C]
+       cmp      ebx, ecx
        jne      SHORT G_M37225_IG08
        mov      ecx, dword ptr [edi+0x08]
        cmp      edx, ecx
@@ -79,7 +81,7 @@ G_M37225_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        inc      edx
        mov      dword ptr [ebp-0x24], edx
        jmp      SHORT G_M37225_IG04
-                      ;; size=30 bbWeight=4 PerfScore 74.00
+                     ;; size=32 bbWeight=4 PerfScore 71.00
 G_M37225_IG06:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[eax ecx esi edi]
        lea      esp, [ebp-0x0C]
@@ -97,6 +99,6 @@ G_M37225_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 90, prolog size 14, PerfScore 110.00, instruction count 40, allocated bytes for code 90 (MethodHash=abe96e96) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
+; Total bytes of code 92, prolog size 14, PerfScore 107.00, instruction count 41, allocated bytes for code 92 (MethodHash=abe96e96) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
 ; ============================================================
 
  
+2 (+2.22%) : 52831.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  3,  4   )     ref  ->  esi         this class-hnd single-def <System.Linq.Expressions.Compiler.LambdaCompiler>
-;  V01 arg1         [V01,T07] (  4,  3.50)     ref  ->  edx         class-hnd single-def <System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
+;  V00 this         [V00,T07] (  3,  4   )     ref  ->  esi         this class-hnd single-def <System.Linq.Expressions.Compiler.LambdaCompiler>
+;  V01 arg1         [V01,T08] (  4,  3.50)     ref  ->  edx         class-hnd single-def <System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack>
 ;* V04 tmp0         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
@@ -18,14 +18,15 @@
 ;  V07 tmp3         [V07,T02] (  4, 12.50)     ref  ->  edi         single-def "field V02._list (fldOffset=0x0)" P-INDEP
 ;  V08 tmp4         [V08,T03] (  3,  8   )     ref  ->  eax         "field V02._current (fldOffset=0x4)" P-INDEP
 ;  V09 tmp5         [V09,T00] (  6, 20.50)     int  ->  [ebp-0x24]  "field V02._index (fldOffset=0x8)" P-INDEP
-;  V10 tmp6         [V10,T08] (  2,  4.50)     int  ->  ebx         "field V02._version (fldOffset=0xc)" P-INDEP
-;  V11 tmp7         [V11,T09] (  3,  1.50)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V10 tmp6         [V10,T09] (  2,  4.50)     int  ->  ebx         "field V02._version (fldOffset=0xc)" P-INDEP
+;  V11 tmp7         [V11,T10] (  3,  1.50)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._current (fldOffset=0x4)" P-INDEP
-;* V13 tmp9         [V13,T11] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
-;  V14 tmp10        [V14,T10] (  2,  1   )     int  ->  ebx         "field V04._version (fldOffset=0xc)" P-INDEP
+;* V13 tmp9         [V13,T12] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
+;  V14 tmp10        [V14,T11] (  2,  1   )     int  ->  ebx         "field V04._version (fldOffset=0xc)" P-INDEP
 ;  V15 tmp11        [V15,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V16 EHSlots      [V16    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V17 cse0         [V17,T04] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
+;  V17 cse0         [V17,T06] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
+;  V18 cse1         [V18,T04] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
 ;
 ; Lcl frame size = 24
 
@@ -65,7 +66,8 @@ G_M37225_IG04:        ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
        mov      edx, dword ptr [ebp-0x24]
                        ;; size=11 bbWeight=2 PerfScore 12.50
 G_M37225_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ebx, dword ptr [edi+0x0C]
+       mov      ecx, dword ptr [edi+0x0C]
+       cmp      ebx, ecx
        jne      SHORT G_M37225_IG08
        mov      ecx, dword ptr [edi+0x08]
        cmp      edx, ecx
@@ -79,7 +81,7 @@ G_M37225_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        inc      edx
        mov      dword ptr [ebp-0x24], edx
        jmp      SHORT G_M37225_IG04
-                      ;; size=30 bbWeight=4 PerfScore 74.00
+                     ;; size=32 bbWeight=4 PerfScore 71.00
 G_M37225_IG06:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[eax ecx esi edi]
        lea      esp, [ebp-0x0C]
@@ -97,6 +99,6 @@ G_M37225_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 90, prolog size 14, PerfScore 110.00, instruction count 40, allocated bytes for code 90 (MethodHash=abe96e96) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
+; Total bytes of code 92, prolog size 14, PerfScore 107.00, instruction count 41, allocated bytes for code 92 (MethodHash=abe96e96) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
 ; ============================================================
 
  
  
benchmarks.run_tiered.windows.x86.checked.mch
-7 (-2.83%) : 37677.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (Tier0-FullOpts)
@@ -10,31 +10,32 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct ( 4) zero-ref    single-def <System.Net.Http.Headers.HeaderDescriptor>
 ;  V01 arg1         [V01,T03] (  8, 13.50)     ref  ->  esi         class-hnd single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
-;  V02 loc0         [V02,T16] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V02 loc0         [V02,T17] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
 ;  V03 loc1         [V03    ] (  6,  5   )   ubyte  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V04 loc2         [V04,T13] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
+;  V04 loc2         [V04,T14] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V07 loc5         [V07,T11] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
-;  V08 tmp0         [V08,T12] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
+;  V07 loc5         [V07,T12] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
+;  V08 tmp0         [V08,T13] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
 ;* V09 tmp1         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.String>
-;  V10 tmp2         [V10,T09] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
+;  V10 tmp2         [V10,T10] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
 ;* V11 tmp3         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
-;* V12 tmp4         [V12,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V12 tmp4         [V12,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V13 tmp5         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V14 tmp6         [V14,T08] (  2,  4.50)     ref  ->  edi         single-def "field V00._descriptor (fldOffset=0x0)" P-INDEP
 ;  V15 tmp7         [V15,T02] (  4, 12.50)     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V16 tmp8         [V16,T04] (  2,  8   )     ref  ->  edx         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V17 tmp9         [V17,T00] (  6, 20.50)     int  ->  [ebp-0x28]  "field V05._index (fldOffset=0x8)" P-INDEP
-;  V18 tmp10        [V18,T06] (  3,  8.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
-;  V19 tmp11        [V19,T14] (  3,  1.50)     ref  ->  ebx         single-def "field V11._list (fldOffset=0x0)" P-INDEP
+;  V18 tmp10        [V18,T09] (  2,  4.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
+;  V19 tmp11        [V19,T15] (  3,  1.50)     ref  ->  ebx         single-def "field V11._list (fldOffset=0x0)" P-INDEP
 ;* V20 tmp12        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._current (fldOffset=0x4)" P-INDEP
-;* V21 tmp13        [V21,T17] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
-;  V22 tmp14        [V22,T15] (  2,  1   )     int  ->  eax         "field V11._version (fldOffset=0xc)" P-INDEP
+;* V21 tmp13        [V21,T18] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
+;  V22 tmp14        [V22,T16] (  2,  1   )     int  ->  eax         "field V11._version (fldOffset=0xc)" P-INDEP
 ;  V23 tmp15        [V23,T01] (  3, 24   )     ref  ->  edx         "arr expr"
 ;  V24 EHSlots      [V24    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V25 cse0         [V25,T05] (  3, 12   )     int  ->  edx         "CSE - aggressive"
-;  V26 cse1         [V26,T10] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
+;  V25 cse0         [V25,T07] (  2,  8   )     int  ->  edx         "CSE - aggressive"
+;  V26 cse1         [V26,T05] (  2,  8   )     int  ->  edx         "CSE - aggressive"
+;  V27 cse2         [V27,T11] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 36
 
@@ -58,7 +59,7 @@ G_M53769_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        xor      edx, edx
        mov      dword ptr [ebp-0x24], edx
                        ;; size=8 bbWeight=1 PerfScore 2.25
-G_M53769_IG03:        ; bbWeight=1, gcVars=00010000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M53769_IG03:        ; bbWeight=1, gcVars=00020000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      byte  ptr [ebp-0x24], 0
        jne      SHORT G_M53769_IG08
        lea      edx, [ebp-0x24]
@@ -78,12 +79,12 @@ G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M53769_IG05:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M53769_IG05:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ebx, gword ptr [esi+0x04]
        ; gcrRegs +[ebx]
        test     ebx, ebx
-       je       G_M53769_IG14
-                       ;; size=11 bbWeight=1 PerfScore 3.25
+       je       SHORT G_M53769_IG13
+                       ;; size=7 bbWeight=1 PerfScore 3.25
 G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -91,7 +92,7 @@ G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[edx] +[eax]
        test     eax, eax
-       je       SHORT G_M53769_IG13
+       je       SHORT G_M53769_IG12
        mov      ebx, eax
        mov      eax, dword ptr [ebx+0x0C]
        ; gcrRegs -[eax]
@@ -101,13 +102,14 @@ G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
 G_M53769_IG07:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [ebx+0x0C]
        cmp      eax, edx
-       jne      SHORT G_M53769_IG09
-       cmp      ecx, dword ptr [ebx+0x08]
-       jae      SHORT G_M53769_IG10
+       jne      SHORT G_M53769_IG11
+       mov      edx, dword ptr [ebx+0x08]
+       cmp      ecx, edx
+       jae      SHORT G_M53769_IG09
        mov      edx, gword ptr [ebx+0x04]
        ; gcrRegs +[edx]
        cmp      ecx, dword ptr [edx+0x04]
-       jae      SHORT G_M53769_IG11
+       jae      SHORT G_M53769_IG10
        mov      edx, gword ptr [edx+4*ecx+0x08]
        inc      ecx
        mov      dword ptr [ebp-0x28], ecx
@@ -119,7 +121,7 @@ G_M53769_IG07:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
        mov      eax, dword ptr [ebp-0x2C]
        mov      ecx, dword ptr [ebp-0x28]
        jmp      SHORT G_M53769_IG07
-                      ;; size=45 bbWeight=4 PerfScore 99.00
+                     ;; size=47 bbWeight=4 PerfScore 96.00
 G_M53769_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ebx esi edi]
        call     [System.Threading.Monitor:ThrowLockTakenException()]
@@ -127,24 +129,20 @@ G_M53769_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=7 bbWeight=0 PerfScore 0.00
 G_M53769_IG09:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi]
-       cmp      dword ptr [ebp-0x2C], edx
-       jne      SHORT G_M53769_IG12
-                       ;; size=5 bbWeight=4 PerfScore 12.00
-G_M53769_IG10:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        xor      ecx, ecx
        ; gcrRegs +[ecx]
        mov      gword ptr [esi+0x04], ecx
-       jmp      SHORT G_M53769_IG14
+       jmp      SHORT G_M53769_IG13
                         ;; size=7 bbWeight=4 PerfScore 13.00
-G_M53769_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx esi]
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M53769_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M53769_IG13:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG12:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ebx esi edi]
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -156,36 +154,36 @@ G_M53769_IG13:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        mov      ecx, esi
        call     [System.Net.Http.Headers.HttpHeaders:ParseSingleRawHeaderValue(System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo,System.Net.Http.Headers.HeaderDescriptor,System.String)]
        ; gcrRegs -[ecx edx ebx edi]
-       jmp      SHORT G_M53769_IG10
+       jmp      SHORT G_M53769_IG09
                       ;; size=24 bbWeight=0.50 PerfScore 5.00
-G_M53769_IG14:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG13:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG18
+       je       SHORT G_M53769_IG17
                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M53769_IG15:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG14:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V02}
        call     <unknown method>
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M53769_IG18
+       jmp      SHORT G_M53769_IG17
                       ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M53769_IG16:        ; bbWeight=0, gcVars=00010000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V02 V16}
+G_M53769_IG15:        ; bbWeight=0, gcVars=00020000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V02 V17}
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG17
+       je       SHORT G_M53769_IG16
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V02 V16}
+       ; GC ptr vars -{V02 V17}
        call     <unknown method>
        ; gcrRegs -[ecx]
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M53769_IG17:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG16:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M53769_IG18:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M53769_IG17:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -194,9 +192,9 @@ G_M53769_IG18:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
 
-; Total bytes of code 247, prolog size 14, PerfScore 162.88, instruction count 88, allocated bytes for code 247 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (Tier0-FullOpts)
+; Total bytes of code 240, prolog size 14, PerfScore 147.88, instruction count 87, allocated bytes for code 240 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (Tier0-FullOpts)
 ; ============================================================
 
 *************** EH table for System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo)
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M53769_IG03..G_M53769_IG14) handled by [G_M53769_IG16..G_M53769_IG18) (fault)
+EH#0: try [G_M53769_IG03..G_M53769_IG13) handled by [G_M53769_IG15..G_M53769_IG17) (fault)
  
-7 (-2.83%) : 52641.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (Tier0-FullOpts)
@@ -10,31 +10,32 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct ( 4) zero-ref    single-def <System.Net.Http.Headers.HeaderDescriptor>
 ;  V01 arg1         [V01,T03] (  8, 13.50)     ref  ->  esi         class-hnd single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
-;  V02 loc0         [V02,T16] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V02 loc0         [V02,T17] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
 ;  V03 loc1         [V03    ] (  6,  5   )   ubyte  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V04 loc2         [V04,T13] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
+;  V04 loc2         [V04,T14] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V07 loc5         [V07,T11] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
-;  V08 tmp0         [V08,T12] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
+;  V07 loc5         [V07,T12] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
+;  V08 tmp0         [V08,T13] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
 ;* V09 tmp1         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.String>
-;  V10 tmp2         [V10,T09] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
+;  V10 tmp2         [V10,T10] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
 ;* V11 tmp3         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
-;* V12 tmp4         [V12,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V12 tmp4         [V12,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V13 tmp5         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V14 tmp6         [V14,T08] (  2,  4.50)     ref  ->  edi         single-def "field V00._descriptor (fldOffset=0x0)" P-INDEP
 ;  V15 tmp7         [V15,T02] (  4, 12.50)     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V16 tmp8         [V16,T04] (  2,  8   )     ref  ->  edx         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V17 tmp9         [V17,T00] (  6, 20.50)     int  ->  [ebp-0x28]  "field V05._index (fldOffset=0x8)" P-INDEP
-;  V18 tmp10        [V18,T06] (  3,  8.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
-;  V19 tmp11        [V19,T14] (  3,  1.50)     ref  ->  ebx         single-def "field V11._list (fldOffset=0x0)" P-INDEP
+;  V18 tmp10        [V18,T09] (  2,  4.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
+;  V19 tmp11        [V19,T15] (  3,  1.50)     ref  ->  ebx         single-def "field V11._list (fldOffset=0x0)" P-INDEP
 ;* V20 tmp12        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._current (fldOffset=0x4)" P-INDEP
-;* V21 tmp13        [V21,T17] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
-;  V22 tmp14        [V22,T15] (  2,  1   )     int  ->  eax         "field V11._version (fldOffset=0xc)" P-INDEP
+;* V21 tmp13        [V21,T18] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
+;  V22 tmp14        [V22,T16] (  2,  1   )     int  ->  eax         "field V11._version (fldOffset=0xc)" P-INDEP
 ;  V23 tmp15        [V23,T01] (  3, 24   )     ref  ->  edx         "arr expr"
 ;  V24 EHSlots      [V24    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V25 cse0         [V25,T05] (  3, 12   )     int  ->  edx         "CSE - aggressive"
-;  V26 cse1         [V26,T10] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
+;  V25 cse0         [V25,T07] (  2,  8   )     int  ->  edx         "CSE - aggressive"
+;  V26 cse1         [V26,T05] (  2,  8   )     int  ->  edx         "CSE - aggressive"
+;  V27 cse2         [V27,T11] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 36
 
@@ -58,7 +59,7 @@ G_M53769_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        xor      edx, edx
        mov      dword ptr [ebp-0x24], edx
                        ;; size=8 bbWeight=1 PerfScore 2.25
-G_M53769_IG03:        ; bbWeight=1, gcVars=00010000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M53769_IG03:        ; bbWeight=1, gcVars=00020000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      byte  ptr [ebp-0x24], 0
        jne      SHORT G_M53769_IG08
        lea      edx, [ebp-0x24]
@@ -78,12 +79,12 @@ G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M53769_IG05:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M53769_IG05:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ebx, gword ptr [esi+0x04]
        ; gcrRegs +[ebx]
        test     ebx, ebx
-       je       G_M53769_IG14
-                       ;; size=11 bbWeight=1 PerfScore 3.25
+       je       SHORT G_M53769_IG13
+                       ;; size=7 bbWeight=1 PerfScore 3.25
 G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -91,7 +92,7 @@ G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[edx] +[eax]
        test     eax, eax
-       je       SHORT G_M53769_IG13
+       je       SHORT G_M53769_IG12
        mov      ebx, eax
        mov      eax, dword ptr [ebx+0x0C]
        ; gcrRegs -[eax]
@@ -101,13 +102,14 @@ G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
 G_M53769_IG07:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [ebx+0x0C]
        cmp      eax, edx
-       jne      SHORT G_M53769_IG09
-       cmp      ecx, dword ptr [ebx+0x08]
-       jae      SHORT G_M53769_IG10
+       jne      SHORT G_M53769_IG11
+       mov      edx, dword ptr [ebx+0x08]
+       cmp      ecx, edx
+       jae      SHORT G_M53769_IG09
        mov      edx, gword ptr [ebx+0x04]
        ; gcrRegs +[edx]
        cmp      ecx, dword ptr [edx+0x04]
-       jae      SHORT G_M53769_IG11
+       jae      SHORT G_M53769_IG10
        mov      edx, gword ptr [edx+4*ecx+0x08]
        inc      ecx
        mov      dword ptr [ebp-0x28], ecx
@@ -119,7 +121,7 @@ G_M53769_IG07:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
        mov      eax, dword ptr [ebp-0x2C]
        mov      ecx, dword ptr [ebp-0x28]
        jmp      SHORT G_M53769_IG07
-                      ;; size=45 bbWeight=4 PerfScore 99.00
+                     ;; size=47 bbWeight=4 PerfScore 96.00
 G_M53769_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ebx esi edi]
        call     [System.Threading.Monitor:ThrowLockTakenException()]
@@ -127,24 +129,20 @@ G_M53769_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=7 bbWeight=0 PerfScore 0.00
 G_M53769_IG09:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi]
-       cmp      dword ptr [ebp-0x2C], edx
-       jne      SHORT G_M53769_IG12
-                       ;; size=5 bbWeight=4 PerfScore 12.00
-G_M53769_IG10:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        xor      ecx, ecx
        ; gcrRegs +[ecx]
        mov      gword ptr [esi+0x04], ecx
-       jmp      SHORT G_M53769_IG14
+       jmp      SHORT G_M53769_IG13
                         ;; size=7 bbWeight=4 PerfScore 13.00
-G_M53769_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx esi]
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M53769_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M53769_IG13:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG12:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ebx esi edi]
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -156,36 +154,36 @@ G_M53769_IG13:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        mov      ecx, esi
        call     [System.Net.Http.Headers.HttpHeaders:ParseSingleRawHeaderValue(System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo,System.Net.Http.Headers.HeaderDescriptor,System.String)]
        ; gcrRegs -[ecx edx ebx edi]
-       jmp      SHORT G_M53769_IG10
+       jmp      SHORT G_M53769_IG09
                       ;; size=24 bbWeight=0.50 PerfScore 5.00
-G_M53769_IG14:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG13:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG18
+       je       SHORT G_M53769_IG17
                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M53769_IG15:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG14:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V02}
        call     <unknown method>
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M53769_IG18
+       jmp      SHORT G_M53769_IG17
                       ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M53769_IG16:        ; bbWeight=0, gcVars=00010000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V02 V16}
+G_M53769_IG15:        ; bbWeight=0, gcVars=00020000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V02 V17}
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG17
+       je       SHORT G_M53769_IG16
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V02 V16}
+       ; GC ptr vars -{V02 V17}
        call     <unknown method>
        ; gcrRegs -[ecx]
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M53769_IG17:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG16:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M53769_IG18:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M53769_IG17:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -194,9 +192,9 @@ G_M53769_IG18:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
 
-; Total bytes of code 247, prolog size 14, PerfScore 162.88, instruction count 88, allocated bytes for code 247 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (Tier0-FullOpts)
+; Total bytes of code 240, prolog size 14, PerfScore 147.88, instruction count 87, allocated bytes for code 240 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (Tier0-FullOpts)
 ; ============================================================
 
 *************** EH table for System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo)
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M53769_IG03..G_M53769_IG14) handled by [G_M53769_IG16..G_M53769_IG18) (fault)
+EH#0: try [G_M53769_IG03..G_M53769_IG13) handled by [G_M53769_IG15..G_M53769_IG17) (fault)
  
-7 (-1.36%) : 8738.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
@@ -8,26 +8,26 @@
 ; 0 inlinees with PGO data; 33 single block inlinees; 18 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T19] (  7,  7   )     ref  ->  [ebp-0x3C]  class-hnd EH-live single-def <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
-;  V01 arg1         [V01,T17] (  3, 10   )     int  ->  esi         single-def
+;  V00 arg0         [V00,T20] (  7,  7   )     ref  ->  [ebp-0x3C]  class-hnd EH-live single-def <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
+;  V01 arg1         [V01,T18] (  3, 10   )     int  ->  esi         single-def
 ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 4) zero-ref    single-def <System.Threading.CancellationToken>
-;  V03 loc0         [V03,T18] (  4, 11   )   ubyte  ->  [ebp-0x28]  do-not-enreg[Z] EH-live
-;  V04 loc1         [V04,T06] (  8, 32   )     ref  ->  [ebp-0x40]  class-hnd exact EH-live spill-single-def <System.Threading.Tasks.Task+SetOnCountdownMres>
+;  V03 loc0         [V03,T19] (  4, 11   )   ubyte  ->  [ebp-0x28]  do-not-enreg[Z] EH-live
+;  V04 loc1         [V04,T05] (  8, 32   )     ref  ->  [ebp-0x40]  class-hnd exact EH-live spill-single-def <System.Threading.Tasks.Task+SetOnCountdownMres>
 ;* V05 loc2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V06 loc3         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Threading.Tasks.Task>
 ;* V07 loc4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V08 loc5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Threading.Tasks.Task>
-;  V09 tmp0         [V09,T16] (  6, 12   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+SetOnCountdownMres>
+;  V09 tmp0         [V09,T17] (  6, 12   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task+SetOnCountdownMres>
 ;* V10 tmp1         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp2         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp3         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V13 tmp4         [V13,T22] (  3,  6   )     int  ->  [ebp-0x2C]  spill-single-def "Inlining Arg"
+;  V13 tmp4         [V13,T24] (  3,  6   )     int  ->  [ebp-0x2C]  spill-single-def "Inlining Arg"
 ;* V14 tmp5         [V14    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
 ;* V17 tmp8         [V17    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;* V18 tmp9         [V18,T27] (  0,  0   )     ref  ->  zero-ref    single-def
-;* V19 tmp10        [V19,T28] (  0,  0   )     int  ->  zero-ref   
+;* V18 tmp9         [V18,T29] (  0,  0   )     ref  ->  zero-ref    single-def
+;* V19 tmp10        [V19,T30] (  0,  0   )     int  ->  zero-ref   
 ;* V20 tmp11        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp12        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp13        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -35,41 +35,43 @@
 ;* V24 tmp15        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp16        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp17        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
-;  V27 tmp18        [V27,T13] (  2,  8   )   ubyte  ->  eax         "Inline return value spill temp"
+;  V27 tmp18        [V27,T12] (  2,  8   )   ubyte  ->  eax         "Inline return value spill temp"
 ;* V28 tmp19        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp20        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V31 tmp22        [V31,T09] (  3, 24   )   byref  ->  edx         "Inlining Arg"
+;  V31 tmp22        [V31,T09] (  3, 24   )   byref  ->  ecx         "Inlining Arg"
 ;* V32 tmp23        [V32    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp24        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp25        [V34,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V34 tmp25        [V34,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V35 tmp26        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
 ;* V36 tmp27        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Threading.Tasks.Task]>
 ;* V37 tmp28        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V38 tmp29        [V38,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V38 tmp29        [V38,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V39 tmp30        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Threading.Tasks.Task]>
-;  V40 tmp31        [V40,T21] (  1,  8   )     ref  ->  [ebp+0x08]  single-def "field V02._source (fldOffset=0x0)" P-INDEP
-;  V41 tmp32        [V41,T05] (  4, 25   )     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
+;  V40 tmp31        [V40,T23] (  1,  8   )     ref  ->  [ebp+0x08]  single-def "field V02._source (fldOffset=0x0)" P-INDEP
+;  V41 tmp32        [V41,T06] (  4, 25   )     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V42 tmp33        [V42,T04] (  6, 28   )     ref  ->  edi         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V43 tmp34        [V43,T00] (  6, 41   )     int  ->  [ebp-0x30]  "field V05._index (fldOffset=0x8)" P-INDEP
-;  V44 tmp35        [V44,T12] (  3, 17   )     int  ->  [ebp-0x34]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
+;  V44 tmp35        [V44,T21] (  2,  9   )     int  ->  [ebp-0x34]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
 ;  V45 tmp36        [V45,T07] (  4, 25   )     ref  ->  esi         single-def "field V07._list (fldOffset=0x0)" P-INDEP
 ;  V46 tmp37        [V46,T08] (  3, 16   )     ref  ->  ecx         "field V07._current (fldOffset=0x4)" P-INDEP
 ;  V47 tmp38        [V47,T01] (  6, 41   )     int  ->  ebx         "field V07._index (fldOffset=0x8)" P-INDEP
-;  V48 tmp39        [V48,T20] (  2,  9   )     int  ->  edi         "field V07._version (fldOffset=0xc)" P-INDEP
-;  V49 tmp40        [V49,T23] (  3,  3   )     ref  ->  ebx         single-def "field V26._list (fldOffset=0x0)" P-INDEP
+;  V48 tmp39        [V48,T22] (  2,  9   )     int  ->  edi         "field V07._version (fldOffset=0xc)" P-INDEP
+;  V49 tmp40        [V49,T25] (  3,  3   )     ref  ->  ebx         single-def "field V26._list (fldOffset=0x0)" P-INDEP
 ;* V50 tmp41        [V50    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V26._current (fldOffset=0x4)" P-INDEP
-;* V51 tmp42        [V51,T29] (  0,  0   )     int  ->  zero-ref    "field V26._index (fldOffset=0x8)" P-INDEP
-;  V52 tmp43        [V52,T25] (  2,  2   )     int  ->  [ebp-0x38]  spill-single-def "field V26._version (fldOffset=0xc)" P-INDEP
-;  V53 tmp44        [V53,T24] (  3,  3   )     ref  ->  esi         single-def "field V36._list (fldOffset=0x0)" P-INDEP
+;* V51 tmp42        [V51,T31] (  0,  0   )     int  ->  zero-ref    "field V26._index (fldOffset=0x8)" P-INDEP
+;  V52 tmp43        [V52,T27] (  2,  2   )     int  ->  [ebp-0x38]  spill-single-def "field V26._version (fldOffset=0xc)" P-INDEP
+;  V53 tmp44        [V53,T26] (  3,  3   )     ref  ->  esi         single-def "field V36._list (fldOffset=0x0)" P-INDEP
 ;* V54 tmp45        [V54    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V36._current (fldOffset=0x4)" P-INDEP
-;* V55 tmp46        [V55,T30] (  0,  0   )     int  ->  zero-ref    "field V36._index (fldOffset=0x8)" P-INDEP
-;  V56 tmp47        [V56,T26] (  2,  2   )     int  ->  edi         "field V36._version (fldOffset=0xc)" P-INDEP
+;* V55 tmp46        [V55,T32] (  0,  0   )     int  ->  zero-ref    "field V36._index (fldOffset=0x8)" P-INDEP
+;  V56 tmp47        [V56,T28] (  2,  2   )     int  ->  edi         "field V36._version (fldOffset=0xc)" P-INDEP
 ;  V57 tmp48        [V57,T02] (  3, 48   )     ref  ->  edi         "arr expr"
 ;  V58 tmp49        [V58,T03] (  3, 48   )     ref  ->  ecx         "arr expr"
 ;  V59 EHSlots      [V59    ] (  1,  1   )  struct (20) [ebp-0x24]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V60 cse0         [V60,T10] (  3, 24   )     int  ->  edi         "CSE - moderate"
-;  V61 cse1         [V61,T11] (  2, 16   )     int  ->  ecx         "CSE - moderate"
+;  V60 cse0         [V60,T15] (  2, 16   )     int  ->  edi         "CSE - moderate"
+;  V61 cse1         [V61,T10] (  2, 16   )     int  ->  edi         "CSE - moderate"
+;  V62 cse2         [V62,T16] (  2, 16   )     int  ->  ecx         "CSE - moderate"
+;  V63 cse3         [V63,T11] (  2, 16   )     int  ->  ecx         "CSE - moderate"
 ;
 ; Lcl frame size = 52
 
@@ -86,7 +88,7 @@ G_M12834_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; GC ptr vars +{V00}
        mov      esi, edx
                        ;; size=19 bbWeight=1 PerfScore 7.00
-G_M12834_IG02:        ; bbWeight=1, gcVars=00080000 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M12834_IG02:        ; bbWeight=1, gcVars=0000000000100000 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[ecx]
        test     ecx, ecx
        jne      SHORT G_M12834_IG03
@@ -137,10 +139,12 @@ G_M12834_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
 G_M12834_IG05:        ; bbWeight=1, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
        mov      eax, dword ptr [ebp-0x2C]
        mov      dword ptr [ebx+0x10], eax
-       mov      gword ptr [ebp-0x40], ebx
+       mov      edx, ebx
+       ; gcrRegs +[edx]
+       mov      gword ptr [ebp-0x40], edx
        ; GC ptr vars +{V04}
-                     ;; size=9 bbWeight=1 PerfScore 3.00
-G_M12834_IG06:        ; bbWeight=1, gcVars=00080040 {V00 V04}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+                       ;; size=11 bbWeight=1 PerfScore 3.25
+G_M12834_IG06:        ; bbWeight=1, gcVars=0000000000100020 {V00 V04}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[ebx]
        mov      ecx, gword ptr [ebp-0x3C]
        ; gcrRegs +[ecx]
@@ -152,68 +156,63 @@ G_M12834_IG06:        ; bbWeight=1, gcVars=00080040 {V00 V04}, gcrefRegs=0000000
        mov      ecx, dword ptr [ebp-0x38]
        ; gcrRegs -[ecx]
        mov      dword ptr [ebp-0x34], ecx
-       jmp      G_M12834_IG11
-                       ;; size=24 bbWeight=1 PerfScore 8.50
-G_M12834_IG07:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M12834_IG11
+                       ;; size=21 bbWeight=1 PerfScore 8.50
+G_M12834_IG07:        ; bbWeight=4, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edi]
-       mov      edx, edi
-       ; gcrRegs +[edx]
-       cmp      byte  ptr [edx], dl
+       mov      ecx, edi
+       ; gcrRegs +[ecx]
+       cmp      byte  ptr [ecx], cl
        test     dword ptr [edi+0x1C], 0xD1FFAB1E
        jne      SHORT G_M12834_IG09
        cmp      gword ptr [edi+0x10], 0
        jne      SHORT G_M12834_IG08
-       lea      edx, bword ptr [edi+0x10]
-       ; gcrRegs -[edx]
-       ; byrRegs +[edx]
-       test     edx, edx
+       lea      ecx, bword ptr [edi+0x10]
+       ; gcrRegs -[ecx]
+       ; byrRegs +[ecx]
+       test     ecx, ecx
        je       G_M12834_IG16
        push     0
        ; gcr arg push 0
-       mov      ecx, edx
-       ; byrRegs +[ecx]
-       mov      edx, gword ptr [ebp-0x40]
-       ; gcrRegs +[edx]
-       ; byrRegs -[edx]
        call     <unknown method>
        ; gcrRegs -[edx] +[eax]
        ; byrRegs -[ecx]
        ; gcr arg pop 1
        test     eax, eax
+       mov      edx, gword ptr [ebp-0x40]
+       ; gcrRegs +[edx]
        je       G_M12834_IG14
-                     ;; size=50 bbWeight=4 PerfScore 70.00
-G_M12834_IG08:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=48 bbWeight=4 PerfScore 69.00
+G_M12834_IG08:        ; bbWeight=4, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
        push     1
        mov      ecx, edi
        ; gcrRegs +[ecx]
-       mov      edx, gword ptr [ebp-0x40]
-       ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx edi]
        test     eax, eax
-       jne      SHORT G_M12834_IG13
-                       ;; size=17 bbWeight=4 PerfScore 26.00
-G_M12834_IG09:        ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [ebp-0x40]
        ; gcrRegs +[edx]
-       lea      edi, bword ptr [edx+0x10]
-       ; byrRegs +[edi]
-       mov      ecx, -1
+       jne      SHORT G_M12834_IG13
+                       ;; size=17 bbWeight=4 PerfScore 26.00
+G_M12834_IG09:        ; bbWeight=4, gcrefRegs=0000000C {edx ebx}, byrefRegs=00000000 {}, byref, isz
+       lea      ecx, bword ptr [edx+0x10]
+       ; byrRegs +[ecx]
+       mov      edi, -1
        lock     
-       xadd     dword ptr [edi], ecx
-       dec      ecx
+       xadd     dword ptr [ecx], edi
+       dec      edi
        jne      SHORT G_M12834_IG10
        mov      ecx, edx
        ; gcrRegs +[ecx]
+       ; byrRegs -[ecx]
        xor      edx, edx
        ; gcrRegs -[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       ; byrRegs -[edi]
        mov      edx, gword ptr [ebp-0x40]
        ; gcrRegs +[edx]
-                      ;; size=31 bbWeight=4 PerfScore 98.00
+                     ;; size=28 bbWeight=4 PerfScore 94.00
 G_M12834_IG10:        ; bbWeight=4, gcrefRegs=0000000C {edx ebx}, byrefRegs=00000000 {}, byref, isz
        cmp      dword ptr [edx+0x10], 0
        jge      SHORT G_M12834_IG12
@@ -224,13 +223,16 @@ G_M12834_IG10:        ; bbWeight=4, gcrefRegs=0000000C {edx ebx}, byrefRegs=0000
        ; gcrRegs -[ecx edx]
        mov      eax, dword ptr [ebp-0x30]
        mov      ecx, dword ptr [ebp-0x34]
-                        ;; size=28 bbWeight=4 PerfScore 38.00
-G_M12834_IG11:        ; bbWeight=8, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
+       mov      edx, gword ptr [ebp-0x40]
+       ; gcrRegs +[edx]
+                       ;; size=31 bbWeight=4 PerfScore 42.00
+G_M12834_IG11:        ; bbWeight=8, gcrefRegs=0000000C {edx ebx}, byrefRegs=00000000 {}, byref, isz
        mov      edi, dword ptr [ebx+0x0C]
        cmp      ecx, edi
-       jne      SHORT G_M12834_IG18
-       cmp      eax, dword ptr [ebx+0x08]
-       jae      SHORT G_M12834_IG19
+       jne      SHORT G_M12834_IG17
+       mov      edi, dword ptr [ebx+0x08]
+       cmp      eax, edi
+       jae      SHORT G_M12834_IG18
        mov      edi, gword ptr [ebx+0x04]
        ; gcrRegs +[edi]
        cmp      eax, dword ptr [edi+0x04]
@@ -239,25 +241,27 @@ G_M12834_IG11:        ; bbWeight=8, gcrefRegs=00000008 {ebx}, byrefRegs=00000000
        inc      eax
        mov      dword ptr [ebp-0x30], eax
        jmp      G_M12834_IG07
-                        ;; size=33 bbWeight=8 PerfScore 148.00
+                        ;; size=35 bbWeight=8 PerfScore 142.00
 G_M12834_IG12:        ; bbWeight=2, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edi]
+       ; gcrRegs -[edx edi]
+       mov      eax, dword ptr [ebp-0x30]
+       mov      ecx, dword ptr [ebp-0x34]
+       mov      edx, gword ptr [ebp-0x40]
+       ; gcrRegs +[edx]
+       jmp      SHORT G_M12834_IG11
+                       ;; size=11 bbWeight=2 PerfScore 10.00
...
  
+2 (+2.06%) : 22692.dasm - System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (Tier0-FullOpts)
@@ -8,26 +8,27 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T08] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl>
-;  V01 arg1         [V01,T07] (  3,  4   )     ref  ->  esi         class-hnd single-def <ubyte[]>
+;  V00 this         [V00,T09] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl>
+;  V01 arg1         [V01,T08] (  3,  4   )     ref  ->  esi         class-hnd single-def <ubyte[]>
 ;  V02 loc0         [V02    ] (  3,  7   )     int  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.FieldMetadata]>
 ;* V04 loc2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Diagnostics.Tracing.FieldMetadata>
-;  V05 tmp0         [V05,T09] (  2,  4   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V05 tmp0         [V05,T10] (  2,  4   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.FieldMetadata]>
-;* V07 tmp2         [V07,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V07 tmp2         [V07,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V08 tmp3         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V09 tmp4         [V09,T02] (  4, 17   )     ref  ->  edi         single-def "field V03._list (fldOffset=0x0)" P-INDEP
-;  V10 tmp5         [V10,T04] (  2,  6   )     ref  ->  ecx         "field V03._current (fldOffset=0x4)" P-INDEP
+;  V10 tmp5         [V10,T05] (  2,  6   )     ref  ->  ecx         "field V03._current (fldOffset=0x4)" P-INDEP
 ;  V11 tmp6         [V11,T00] (  6, 21   )     int  ->  [ebp-0x28]  "field V03._index (fldOffset=0x8)" P-INDEP
-;  V12 tmp7         [V12,T05] (  2,  9   )     int  ->  ebx         "field V03._version (fldOffset=0xc)" P-INDEP
-;  V13 tmp8         [V13,T10] (  3,  3   )     ref  ->  edi         single-def "field V06._list (fldOffset=0x0)" P-INDEP
+;  V12 tmp7         [V12,T06] (  2,  9   )     int  ->  ebx         "field V03._version (fldOffset=0xc)" P-INDEP
+;  V13 tmp8         [V13,T11] (  3,  3   )     ref  ->  edi         single-def "field V06._list (fldOffset=0x0)" P-INDEP
 ;* V14 tmp9         [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._current (fldOffset=0x4)" P-INDEP
-;* V15 tmp10        [V15,T12] (  0,  0   )     int  ->  zero-ref    "field V06._index (fldOffset=0x8)" P-INDEP
-;  V16 tmp11        [V16,T11] (  2,  2   )     int  ->  ebx         "field V06._version (fldOffset=0xc)" P-INDEP
+;* V15 tmp10        [V15,T13] (  0,  0   )     int  ->  zero-ref    "field V06._index (fldOffset=0x8)" P-INDEP
+;  V16 tmp11        [V16,T12] (  2,  2   )     int  ->  ebx         "field V06._version (fldOffset=0xc)" P-INDEP
 ;  V17 tmp12        [V17,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V18 EHSlots      [V18    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V19 cse0         [V19,T03] (  2,  8   )     int  ->  ecx         "CSE - moderate"
+;  V19 cse0         [V19,T04] (  2,  8   )     int  ->  ecx         "CSE - moderate"
+;  V20 cse1         [V20,T03] (  2, 16   )     int  ->  ecx         "CSE - aggressive"
 ;
 ; Lcl frame size = 28
 
@@ -65,9 +66,10 @@ G_M38703_IG04:        ; bbWeight=2, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=
        mov      edx, dword ptr [ebp-0x28]
                        ;; size=15 bbWeight=2 PerfScore 17.00
 G_M38703_IG05:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ebx, dword ptr [edi+0x0C]
+       mov      ecx, dword ptr [edi+0x0C]
+       cmp      ebx, ecx
        jne      SHORT G_M38703_IG10
-                      ;; size=5 bbWeight=8 PerfScore 32.00
+                      ;; size=7 bbWeight=8 PerfScore 26.00
 G_M38703_IG06:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, dword ptr [edi+0x08]
        cmp      edx, ecx
@@ -101,6 +103,6 @@ G_M38703_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 97, prolog size 14, PerfScore 138.25, instruction count 41, allocated bytes for code 97 (MethodHash=726d68d0) for method System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (Tier0-FullOpts)
+; Total bytes of code 99, prolog size 14, PerfScore 132.25, instruction count 42, allocated bytes for code 99 (MethodHash=726d68d0) for method System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (Tier0-FullOpts)
 ; ============================================================
 
  
+2 (+2.22%) : 16911.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  3,  4   )     ref  ->  esi         this class-hnd single-def <System.Linq.Expressions.Compiler.LambdaCompiler>
-;  V01 arg1         [V01,T07] (  4,  3.50)     ref  ->  edx         class-hnd single-def <System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
+;  V00 this         [V00,T07] (  3,  4   )     ref  ->  esi         this class-hnd single-def <System.Linq.Expressions.Compiler.LambdaCompiler>
+;  V01 arg1         [V01,T08] (  4,  3.50)     ref  ->  edx         class-hnd single-def <System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack>
 ;* V04 tmp0         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
@@ -18,14 +18,15 @@
 ;  V07 tmp3         [V07,T02] (  4, 12.50)     ref  ->  edi         single-def "field V02._list (fldOffset=0x0)" P-INDEP
 ;  V08 tmp4         [V08,T03] (  3,  8   )     ref  ->  eax         "field V02._current (fldOffset=0x4)" P-INDEP
 ;  V09 tmp5         [V09,T00] (  6, 20.50)     int  ->  [ebp-0x24]  "field V02._index (fldOffset=0x8)" P-INDEP
-;  V10 tmp6         [V10,T08] (  2,  4.50)     int  ->  ebx         "field V02._version (fldOffset=0xc)" P-INDEP
-;  V11 tmp7         [V11,T09] (  3,  1.50)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V10 tmp6         [V10,T09] (  2,  4.50)     int  ->  ebx         "field V02._version (fldOffset=0xc)" P-INDEP
+;  V11 tmp7         [V11,T10] (  3,  1.50)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._current (fldOffset=0x4)" P-INDEP
-;* V13 tmp9         [V13,T11] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
-;  V14 tmp10        [V14,T10] (  2,  1   )     int  ->  ebx         "field V04._version (fldOffset=0xc)" P-INDEP
+;* V13 tmp9         [V13,T12] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
+;  V14 tmp10        [V14,T11] (  2,  1   )     int  ->  ebx         "field V04._version (fldOffset=0xc)" P-INDEP
 ;  V15 tmp11        [V15,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V16 EHSlots      [V16    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V17 cse0         [V17,T04] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
+;  V17 cse0         [V17,T06] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
+;  V18 cse1         [V18,T04] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
 ;
 ; Lcl frame size = 24
 
@@ -65,7 +66,8 @@ G_M37225_IG04:        ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
        mov      edx, dword ptr [ebp-0x24]
                        ;; size=11 bbWeight=2 PerfScore 12.50
 G_M37225_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ebx, dword ptr [edi+0x0C]
+       mov      ecx, dword ptr [edi+0x0C]
+       cmp      ebx, ecx
        jne      SHORT G_M37225_IG08
        mov      ecx, dword ptr [edi+0x08]
        cmp      edx, ecx
@@ -79,7 +81,7 @@ G_M37225_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        inc      edx
        mov      dword ptr [ebp-0x24], edx
        jmp      SHORT G_M37225_IG04
-                      ;; size=30 bbWeight=4 PerfScore 74.00
+                     ;; size=32 bbWeight=4 PerfScore 71.00
 G_M37225_IG06:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[eax ecx esi edi]
        lea      esp, [ebp-0x0C]
@@ -97,6 +99,6 @@ G_M37225_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 90, prolog size 14, PerfScore 110.00, instruction count 40, allocated bytes for code 90 (MethodHash=abe96e96) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
+; Total bytes of code 92, prolog size 14, PerfScore 107.00, instruction count 41, allocated bytes for code 92 (MethodHash=abe96e96) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
 ; ============================================================
 
  
+2 (+2.22%) : 24519.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  3,  4   )     ref  ->  esi         this class-hnd single-def <System.Linq.Expressions.Compiler.LambdaCompiler>
-;  V01 arg1         [V01,T07] (  4,  3.50)     ref  ->  edx         class-hnd single-def <System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
+;  V00 this         [V00,T07] (  3,  4   )     ref  ->  esi         this class-hnd single-def <System.Linq.Expressions.Compiler.LambdaCompiler>
+;  V01 arg1         [V01,T08] (  4,  3.50)     ref  ->  edx         class-hnd single-def <System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack>
 ;* V04 tmp0         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
@@ -18,14 +18,15 @@
 ;  V07 tmp3         [V07,T02] (  4, 12.50)     ref  ->  edi         single-def "field V02._list (fldOffset=0x0)" P-INDEP
 ;  V08 tmp4         [V08,T03] (  3,  8   )     ref  ->  eax         "field V02._current (fldOffset=0x4)" P-INDEP
 ;  V09 tmp5         [V09,T00] (  6, 20.50)     int  ->  [ebp-0x24]  "field V02._index (fldOffset=0x8)" P-INDEP
-;  V10 tmp6         [V10,T08] (  2,  4.50)     int  ->  ebx         "field V02._version (fldOffset=0xc)" P-INDEP
-;  V11 tmp7         [V11,T09] (  3,  1.50)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V10 tmp6         [V10,T09] (  2,  4.50)     int  ->  ebx         "field V02._version (fldOffset=0xc)" P-INDEP
+;  V11 tmp7         [V11,T10] (  3,  1.50)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._current (fldOffset=0x4)" P-INDEP
-;* V13 tmp9         [V13,T11] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
-;  V14 tmp10        [V14,T10] (  2,  1   )     int  ->  ebx         "field V04._version (fldOffset=0xc)" P-INDEP
+;* V13 tmp9         [V13,T12] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
+;  V14 tmp10        [V14,T11] (  2,  1   )     int  ->  ebx         "field V04._version (fldOffset=0xc)" P-INDEP
 ;  V15 tmp11        [V15,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V16 EHSlots      [V16    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V17 cse0         [V17,T04] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
+;  V17 cse0         [V17,T06] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
+;  V18 cse1         [V18,T04] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
 ;
 ; Lcl frame size = 24
 
@@ -65,7 +66,8 @@ G_M37225_IG04:        ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
        mov      edx, dword ptr [ebp-0x24]
                        ;; size=11 bbWeight=2 PerfScore 12.50
 G_M37225_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ebx, dword ptr [edi+0x0C]
+       mov      ecx, dword ptr [edi+0x0C]
+       cmp      ebx, ecx
        jne      SHORT G_M37225_IG08
        mov      ecx, dword ptr [edi+0x08]
        cmp      edx, ecx
@@ -79,7 +81,7 @@ G_M37225_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        inc      edx
        mov      dword ptr [ebp-0x24], edx
        jmp      SHORT G_M37225_IG04
-                      ;; size=30 bbWeight=4 PerfScore 74.00
+                     ;; size=32 bbWeight=4 PerfScore 71.00
 G_M37225_IG06:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[eax ecx esi edi]
        lea      esp, [ebp-0x0C]
@@ -97,6 +99,6 @@ G_M37225_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 90, prolog size 14, PerfScore 110.00, instruction count 40, allocated bytes for code 90 (MethodHash=abe96e96) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
+; Total bytes of code 92, prolog size 14, PerfScore 107.00, instruction count 41, allocated bytes for code 92 (MethodHash=abe96e96) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
 ; ============================================================
 
  
  
coreclr_tests.run.windows.x86.checked.mch
-23 (-17.97%) : 371794.dasm - Program:M49() (Tier0-FullOpts)
@@ -9,10 +9,11 @@
 ;
 ;  V00 loc0         [V00,T01] (  4, 13   )     int  ->  esi        
 ;* V01 loc1         [V01    ] (  0,  0   )    long  ->  zero-ref   
-;  V02 tmp0         [V02,T02] (  3, 12   )     ref  ->  edx         "arr expr"
-;  V03 tmp1         [V03,T00] (  3, 24   )     ref  ->  eax         "arr expr"
+;  V02 tmp0         [V02,T00] (  3, 24   )     ref  ->  eax         "arr expr"
+;* V03 tmp1         [V03,T04] (  0,  0   )     ref  ->  zero-ref    "arr expr"
 ;  V04 EHSlots      [V04    ] (  1,  1   )  struct (16) [ebp-0x18]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V05 cse0         [V05,T03] (  3, 12   )     int  ->  eax         "CSE - aggressive"
+;  V05 cse0         [V05,T02] (  3, 12   )   byref  ->  eax         "CSE - aggressive"
+;  V06 cse1         [V06,T03] (  2,  8   )     ref  ->  eax         "CSE - aggressive"
 ;
 ; Lcl frame size = 20
 
@@ -31,71 +32,60 @@ G_M37813_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        xor      esi, esi
        call     [<unknown method>]
        test     eax, eax
-       jle      SHORT G_M37813_IG07
+       jle      SHORT G_M37813_IG05
                      ;; size=12 bbWeight=1 PerfScore 4.50
 G_M37813_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       movzx    eax, byte  ptr [D1FFAB1EH]      ; static handle
-       test     eax, eax
-       jne      SHORT G_M37813_IG05
-                       ;; size=11 bbWeight=4 PerfScore 13.00
-G_M37813_IG04:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, gword ptr [D1FFAB1EH]      ; static handle
-       ; gcrRegs +[edx]
-       cmp      dword ptr [edx+0x04], 0
-       jbe      SHORT G_M37813_IG13
-       xor      ecx, ecx
-       mov      dword ptr [edx+0x08], ecx
-                       ;; size=17 bbWeight=2 PerfScore 14.50
-G_M37813_IG05:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edx]
-       test     eax, eax
-       je       SHORT G_M37813_IG08
-                       ;; size=4 bbWeight=4 PerfScore 5.00
-G_M37813_IG06:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       cmp      byte  ptr [D1FFAB1EH], 0      ; data for <unknown class>:<unknown field>
+       jne      SHORT G_M37813_IG04
+       mov      eax, gword ptr [D1FFAB1EH]      ; static handle
+       ; gcrRegs +[eax]
+       cmp      dword ptr [eax+0x04], 0
+       jbe      SHORT G_M37813_IG10
+       add      eax, 8
+       ; gcrRegs -[eax]
+       ; byrRegs +[eax]
+       xor      edx, edx
+       mov      dword ptr [eax], edx
+       jmp      SHORT G_M37813_IG06
+                       ;; size=29 bbWeight=4 PerfScore 54.00
+G_M37813_IG04:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; byrRegs -[eax]
        xor      eax, eax
        mov      dword ptr [D1FFAB1EH], eax
                        ;; size=7 bbWeight=0.50 PerfScore 0.62
-G_M37813_IG07:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M37813_IG05:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x04]
        pop      esi
        pop      ebp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 2.50
-G_M37813_IG08:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       mov      eax, gword ptr [D1FFAB1EH]      ; static handle
-       ; gcrRegs +[eax]
-       cmp      dword ptr [eax+0x04], 0
-       jbe      SHORT G_M37813_IG09
+G_M37813_IG06:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref
+       ; byrRegs +[eax]
        mov      edx, dword ptr [D1FFAB1EH]      ; static handle
-       mov      dword ptr [eax+0x08], edx
-       jmp      SHORT G_M37813_IG10
-                       ;; size=22 bbWeight=4 PerfScore 44.00
-G_M37813_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[eax]
-       call     CORINFO_HELP_RNGCHKFAIL
-       int3     
-                       ;; size=6 bbWeight=0 PerfScore 0.00
-G_M37813_IG10:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      dword ptr [eax], edx
+                       ;; size=8 bbWeight=4 PerfScore 12.00
+G_M37813_IG07:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; byrRegs -[eax]
        inc      esi
        call     [<unknown method>]
        cmp      eax, esi
        jg       SHORT G_M37813_IG03
                        ;; size=11 bbWeight=4 PerfScore 18.00
-G_M37813_IG11:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       jmp      SHORT G_M37813_IG07
+G_M37813_IG08:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M37813_IG05
                         ;; size=2 bbWeight=1 PerfScore 2.00
-G_M37813_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M37813_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M37813_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M37813_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 128, prolog size 21, PerfScore 110.88, instruction count 46, allocated bytes for code 128 (MethodHash=996e6c4a) for method Program:M49() (Tier0-FullOpts)
+; Total bytes of code 105, prolog size 21, PerfScore 100.38, instruction count 39, allocated bytes for code 105 (MethodHash=996e6c4a) for method Program:M49() (Tier0-FullOpts)
 ; ============================================================
 
 *************** EH table for Program:M49()
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M37813_IG08..G_M37813_IG10) handled by [G_M37813_IG12..G_M37813_IG13) (fault)
+EH#0: try [G_M37813_IG06..G_M37813_IG07) handled by [G_M37813_IG09..G_M37813_IG10) (fault)
  
-23 (-17.97%) : 241263.dasm - Program:M49() (FullOpts)
@@ -9,10 +9,11 @@
 ;
 ;  V00 loc0         [V00,T01] (  4, 13   )     int  ->  esi        
 ;* V01 loc1         [V01    ] (  0,  0   )    long  ->  zero-ref   
-;  V02 tmp0         [V02,T02] (  3, 12   )     ref  ->  edx         "arr expr"
-;  V03 tmp1         [V03,T00] (  3, 24   )     ref  ->  eax         "arr expr"
+;  V02 tmp0         [V02,T00] (  3, 24   )     ref  ->  eax         "arr expr"
+;* V03 tmp1         [V03,T04] (  0,  0   )     ref  ->  zero-ref    "arr expr"
 ;  V04 EHSlots      [V04    ] (  1,  1   )  struct (16) [ebp-0x18]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V05 cse0         [V05,T03] (  3, 12   )     int  ->  eax         "CSE - aggressive"
+;  V05 cse0         [V05,T02] (  3, 12   )   byref  ->  eax         "CSE - aggressive"
+;  V06 cse1         [V06,T03] (  2,  8   )     ref  ->  eax         "CSE - aggressive"
 ;
 ; Lcl frame size = 20
 
@@ -31,71 +32,60 @@ G_M37813_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        xor      esi, esi
        call     [<unknown method>]
        test     eax, eax
-       jle      SHORT G_M37813_IG07
+       jle      SHORT G_M37813_IG05
                      ;; size=12 bbWeight=1 PerfScore 4.50
 G_M37813_IG03:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       movzx    eax, byte  ptr [D1FFAB1EH]      ; static handle
-       test     eax, eax
-       jne      SHORT G_M37813_IG05
-                       ;; size=11 bbWeight=4 PerfScore 13.00
-G_M37813_IG04:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, gword ptr [D1FFAB1EH]      ; static handle
-       ; gcrRegs +[edx]
-       cmp      dword ptr [edx+0x04], 0
-       jbe      SHORT G_M37813_IG13
-       xor      ecx, ecx
-       mov      dword ptr [edx+0x08], ecx
-                       ;; size=17 bbWeight=2 PerfScore 14.50
-G_M37813_IG05:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edx]
-       test     eax, eax
-       je       SHORT G_M37813_IG08
-                       ;; size=4 bbWeight=4 PerfScore 5.00
-G_M37813_IG06:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       cmp      byte  ptr [D1FFAB1EH], 0      ; data for <unknown class>:<unknown field>
+       jne      SHORT G_M37813_IG04
+       mov      eax, gword ptr [D1FFAB1EH]      ; static handle
+       ; gcrRegs +[eax]
+       cmp      dword ptr [eax+0x04], 0
+       jbe      SHORT G_M37813_IG10
+       add      eax, 8
+       ; gcrRegs -[eax]
+       ; byrRegs +[eax]
+       xor      edx, edx
+       mov      dword ptr [eax], edx
+       jmp      SHORT G_M37813_IG06
+                       ;; size=29 bbWeight=4 PerfScore 54.00
+G_M37813_IG04:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; byrRegs -[eax]
        xor      eax, eax
        mov      dword ptr [D1FFAB1EH], eax
                        ;; size=7 bbWeight=0.50 PerfScore 0.62
-G_M37813_IG07:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M37813_IG05:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x04]
        pop      esi
        pop      ebp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 2.50
-G_M37813_IG08:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       mov      eax, gword ptr [D1FFAB1EH]      ; static handle
-       ; gcrRegs +[eax]
-       cmp      dword ptr [eax+0x04], 0
-       jbe      SHORT G_M37813_IG09
+G_M37813_IG06:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref
+       ; byrRegs +[eax]
        mov      edx, dword ptr [D1FFAB1EH]      ; static handle
-       mov      dword ptr [eax+0x08], edx
-       jmp      SHORT G_M37813_IG10
-                       ;; size=22 bbWeight=4 PerfScore 44.00
-G_M37813_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[eax]
-       call     CORINFO_HELP_RNGCHKFAIL
-       int3     
-                       ;; size=6 bbWeight=0 PerfScore 0.00
-G_M37813_IG10:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      dword ptr [eax], edx
+                       ;; size=8 bbWeight=4 PerfScore 12.00
+G_M37813_IG07:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; byrRegs -[eax]
        inc      esi
        call     [<unknown method>]
        cmp      eax, esi
        jg       SHORT G_M37813_IG03
                        ;; size=11 bbWeight=4 PerfScore 18.00
-G_M37813_IG11:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       jmp      SHORT G_M37813_IG07
+G_M37813_IG08:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M37813_IG05
                         ;; size=2 bbWeight=1 PerfScore 2.00
-G_M37813_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M37813_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M37813_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M37813_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 128, prolog size 21, PerfScore 110.88, instruction count 46, allocated bytes for code 128 (MethodHash=996e6c4a) for method Program:M49() (FullOpts)
+; Total bytes of code 105, prolog size 21, PerfScore 100.38, instruction count 39, allocated bytes for code 105 (MethodHash=996e6c4a) for method Program:M49() (FullOpts)
 ; ============================================================
 
 *************** EH table for Program:M49()
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M37813_IG08..G_M37813_IG10) handled by [G_M37813_IG12..G_M37813_IG13) (fault)
+EH#0: try [G_M37813_IG06..G_M37813_IG07) handled by [G_M37813_IG09..G_M37813_IG10) (fault)
  
-23 (-2.67%) : 288662.dasm - ILCompiler.PEWriter.SectionBuilder:SerializeRelocationSection(System.Reflection.PortableExecutable.SectionLocation):System.Reflection.Metadata.BlobBuilder:this (FullOpts)
@@ -8,73 +8,74 @@
 ; 2 inlinees with PGO data; 22 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T30] (  6,  5   )     ref  ->  [ebp-0x48]  this class-hnd single-def <ILCompiler.PEWriter.SectionBuilder>
-;  V01 arg1         [V01,T40] (  2,  1.50)  struct ( 8) [ebp+0x08]  do-not-enreg[SF] ld-addr-op single-def <System.Reflection.PortableExecutable.SectionLocation>
-;  V02 loc0         [V02,T23] (  7, 37   )     ref  ->  [ebp-0x4C]  class-hnd <System.Reflection.Metadata.BlobBuilder>
+;  V00 this         [V00,T31] (  6,  5   )     ref  ->  [ebp-0x44]  this class-hnd single-def <ILCompiler.PEWriter.SectionBuilder>
+;  V01 arg1         [V01,T41] (  2,  1.50)  struct ( 8) [ebp+0x08]  do-not-enreg[SF] ld-addr-op single-def <System.Reflection.PortableExecutable.SectionLocation>
+;  V02 loc0         [V02,T23] (  7, 37   )     ref  ->  [ebp-0x48]  class-hnd <System.Reflection.Metadata.BlobBuilder>
 ;  V03 loc1         [V03,T08] (  6,129.50)     int  ->  [ebp-0x24] 
-;  V04 loc2         [V04,T02] ( 12,290.50)     ref  ->  [ebp-0x50]  class-hnd <System.Collections.Generic.List`1[ushort]>
-;  V05 loc3         [V05,T35] (  5,  3.50)     ref  ->  eax         class-hnd single-def <ILCompiler.PEWriter.Section>
-;  V06 loc4         [V06,T26] (  7, 22   )     ref  ->  [ebp-0x54]  class-hnd EH-live spill-single-def <<unknown class>>
-;  V07 loc5         [V07,T19] (  3, 40   )     ref  ->  [ebp-0x58]  class-hnd spill-single-def <ILCompiler.PEWriter.Section>
+;  V04 loc2         [V04,T02] ( 12,290.50)     ref  ->  [ebp-0x4C]  class-hnd <System.Collections.Generic.List`1[ushort]>
+;  V05 loc3         [V05,T36] (  5,  3.50)     ref  ->  eax         class-hnd single-def <ILCompiler.PEWriter.Section>
+;  V06 loc4         [V06,T27] (  7, 22   )     ref  ->  [ebp-0x50]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V07 loc5         [V07,T19] (  3, 40   )     ref  ->  [ebp-0x54]  class-hnd spill-single-def <ILCompiler.PEWriter.Section>
 ;* V08 loc6         [V08    ] (  0,  0   )  struct (20) zero-ref    do-not-enreg[SF] ld-addr-op <System.Collections.Generic.List`1+Enumerator[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V09 loc7         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <ILCompiler.PEWriter.PlacedObjectData>
-;  V10 loc8         [V10,T01] (  6,328   )     int  ->  [ebp-0x28] 
-;  V11 loc9         [V11,T03] (  4,224   )     int  ->  ecx        
+;  V10 loc8         [V10,T01] (  6,328   )     int  ->  ebx        
+;  V11 loc9         [V11,T03] (  4,224   )     int  ->  eax        
 ;* V12 loc10        [V12    ] (  0,  0   )     int  ->  zero-ref   
-;  V13 loc11        [V13,T09] (  4,128   )     int  ->  [ebp-0x2C]  spill-single-def
-;  V14 loc12        [V14,T16] (  3, 96   )  ushort  ->  [ebp-0x30]  spill-single-def
-;  V15 tmp0         [V15,T28] (  5, 10   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <System.Reflection.Metadata.BlobBuilder>
-;  V16 tmp1         [V16,T34] (  2,  4   )     ref  ->  edx         class-hnd single-def "dup spill" <<unknown class>>
-;  V17 tmp2         [V17,T31] (  3,  6   )     ref  ->  [ebp-0x5C]  class-hnd spill-single-def "impAppendStmt" <<unknown class>>
+;  V13 loc11        [V13,T09] (  4,128   )     int  ->  [ebp-0x28]  spill-single-def
+;  V14 loc12        [V14,T15] (  3, 96   )  ushort  ->  [ebp-0x2C]  spill-single-def
+;  V15 tmp0         [V15,T29] (  5, 10   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <System.Reflection.Metadata.BlobBuilder>
+;  V16 tmp1         [V16,T35] (  2,  4   )     ref  ->  edx         class-hnd single-def "dup spill" <<unknown class>>
+;  V17 tmp2         [V17,T32] (  3,  6   )     ref  ->  [ebp-0x58]  class-hnd spill-single-def "impAppendStmt" <<unknown class>>
 ;* V18 tmp3         [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V19 tmp4         [V19,T33] (  5,  4.50)     ref  ->  [ebp-0x60] 
+;  V19 tmp4         [V19,T34] (  5,  4.50)     ref  ->  [ebp-0x5C] 
 ;* V20 tmp5         [V20    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V21 tmp6         [V21,T04] (  3,192   )     ref  ->  [ebp-0x64]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[ushort]>
+;  V21 tmp6         [V21,T04] (  3,192   )     ref  ->  [ebp-0x60]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[ushort]>
 ;* V22 tmp7         [V22    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V23 tmp8         [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.PortableExecutable.DirectoryEntry>
-;  V24 tmp9         [V24,T32] (  5,  5   )     ref  ->  eax         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V24 tmp9         [V24,T33] (  5,  5   )     ref  ->  eax         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V25 tmp10        [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V26 tmp11        [V26,T36] (  3,  3   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <<unknown class>>
-;  V27 tmp12        [V27,T27] (  7, 14   )     ref  ->  eax         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V26 tmp11        [V26,T37] (  3,  3   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V27 tmp12        [V27,T28] (  7, 14   )     ref  ->  eax         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V28 tmp13        [V28    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V29 tmp14        [V29    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V30 tmp15        [V30    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V31 tmp16        [V31    ] (  0,  0   )     ref  ->  zero-ref   
-;  V32 tmp17        [V32,T25] (  3, 24   )     ref  ->  edx         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.PEWriter.PlacedObjectData]>
+;  V32 tmp17        [V32,T26] (  3, 24   )     ref  ->  edx         class-hnd "Inlining Arg" <System.Collections.Generic.List`1[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V33 tmp18        [V33    ] (  0,  0   )  struct (20) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[ILCompiler.PEWriter.PlacedObjectData]>
-;  V34 tmp19        [V34,T06] (  4,160   )     int  ->  [ebp-0x34]  "Inline return value spill temp"
-;  V35 tmp20        [V35,T13] (  3, 96   )     ref  ->  [ebp-0x68]  class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V34 tmp19        [V34,T06] (  4,160   )     int  ->  [ebp-0x30]  "Inline return value spill temp"
+;  V35 tmp20        [V35,T12] (  3, 96   )     ref  ->  edi         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V36 tmp21        [V36,T10] (  4,128   )     int  ->  ecx         "Inline stloc first use temp"
-;* V37 tmp22        [V37,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V37 tmp22        [V37,T25] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V38 tmp23        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[ILCompiler.PEWriter.PlacedObjectData]>
 ;* V39 tmp24        [V39    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V40 tmp25        [V40    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V41 tmp26        [V41,T39] (  2,  2   )     int  ->  eax         "Inlining Arg"
-;  V42 tmp27        [V42,T05] (  4,144   )     ref  ->  ebx         "field V09.Data (fldOffset=0x0)" P-INDEP
-;  V43 tmp28        [V43,T22] (  2, 40   )     int  ->  [ebp-0x38]  spill-single-def "field V09.Offset (fldOffset=0x4)" P-INDEP
-;  V44 tmp29        [V44,T41] (  2,  1   )     int  ->  edi         single-def "field V23.RelativeVirtualAddress (fldOffset=0x0)" P-INDEP
-;  V45 tmp30        [V45,T42] (  2,  1   )     int  ->  eax         single-def "field V23.Size (fldOffset=0x4)" P-INDEP
-;  V46 tmp31        [V46,T38] (  3,  2   )     int  ->  [ebp-0x3C]  spill-single-def "V01.[000..004)"
-;  V47 tmp32        [V47,T12] (  5, 84   )     ref  ->  [ebp-0x6C]  spill-single-def "V08.[000..004)"
-;  V48 tmp33        [V48,T11] (  6, 84   )     int  ->  [ebp-0x40]  "V08.[004..008)"
-;  V49 tmp34        [V49,T18] (  3, 52   )     int  ->  [ebp-0x44]  spill-single-def "V08.[008..012)"
-;  V50 tmp35        [V50,T20] (  2, 24   )     ref  ->  ebx         "V08.[012..016)"
+;  V41 tmp26        [V41,T40] (  2,  2   )     int  ->  eax         "Inlining Arg"
+;  V42 tmp27        [V42,T05] (  4,144   )     ref  ->  [ebp-0x64]  spill-single-def "field V09.Data (fldOffset=0x0)" P-INDEP
+;  V43 tmp28        [V43,T22] (  2, 40   )     int  ->  [ebp-0x34]  spill-single-def "field V09.Offset (fldOffset=0x4)" P-INDEP
+;  V44 tmp29        [V44,T42] (  2,  1   )     int  ->  edi         single-def "field V23.RelativeVirtualAddress (fldOffset=0x0)" P-INDEP
+;  V45 tmp30        [V45,T43] (  2,  1   )     int  ->  eax         single-def "field V23.Size (fldOffset=0x4)" P-INDEP
+;  V46 tmp31        [V46,T39] (  3,  2   )     int  ->  [ebp-0x38]  spill-single-def "V01.[000..004)"
+;  V47 tmp32        [V47,T16] (  4, 68   )     ref  ->  [ebp-0x68]  spill-single-def "V08.[000..004)"
+;  V48 tmp33        [V48,T11] (  6, 84   )     int  ->  [ebp-0x3C]  "V08.[004..008)"
+;  V49 tmp34        [V49,T24] (  2, 36   )     int  ->  [ebp-0x40]  spill-single-def "V08.[008..012)"
+;  V50 tmp35        [V50,T20] (  2, 24   )     ref  ->  ecx         "V08.[012..016)"
 ;  V51 tmp36        [V51,T21] (  2, 24   )     int  ->  esi         "V08.[016..020)"
 ;* V52 tmp37        [V52    ] (  0,  0   )     ref  ->  zero-ref    "V33.[000..004)"
 ;* V53 tmp38        [V53    ] (  0,  0   )     int  ->  zero-ref    "V33.[004..008)"
-;  V54 tmp39        [V54,T29] (  2,  8   )     int  ->  ecx         "V33.[008..012)"
+;  V54 tmp39        [V54,T30] (  2,  8   )     int  ->  ecx         "V33.[008..012)"
 ;* V55 tmp40        [V55    ] (  0,  0   )     ref  ->  zero-ref    "V33.[012..016)"
 ;* V56 tmp41        [V56    ] (  0,  0   )     int  ->  zero-ref    "V33.[016..020)"
-;  V57 tmp42        [V57,T14] (  3, 96   )   byref  ->  esi         "Spilling address for field-by-field copy"
-;  V58 tmp43        [V58,T15] (  3, 96   )     ref  ->  esi         "arr expr"
-;  V59 tmp44        [V59,T00] (  3,384   )     ref  ->  esi         "arr expr"
+;  V57 tmp42        [V57,T13] (  3, 96   )   byref  ->  esi         "Spilling address for field-by-field copy"
+;  V58 tmp43        [V58,T14] (  3, 96   )     ref  ->  esi         "arr expr"
+;  V59 tmp44        [V59,T00] (  3,384   )     ref  ->  eax         "arr expr"
 ;* V60 tmp45        [V60,T17] (  0,  0   )     ref  ->  zero-ref    "arr expr"
 ;  V61 EHSlots      [V61    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;* V62 cse0         [V62,T43] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
+;* V62 cse0         [V62,T44] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
 ;  V63 cse1         [V63,T07] (  3,160   )   byref  ->  esi         "CSE - moderate"
-;  V64 cse2         [V64,T37] (  3,  2.50)     int  ->  eax         "CSE - conservative"
+;  V64 cse2         [V64,T38] (  3,  2.50)     int  ->  eax         "CSE - conservative"
+;  V65 cse3         [V65,T18] (  2, 32   )     int  ->  esi         "CSE - conservative"
 ;
-; Lcl frame size = 96
+; Lcl frame size = 92
 
 G_M62078_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -82,7 +83,7 @@ G_M62078_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 96
+       sub      esp, 92
        xor      eax, eax
        mov      dword ptr [ebp-0x20], eax
        mov      dword ptr [ebp-0x1C], eax
@@ -93,7 +94,7 @@ G_M62078_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=25 bbWeight=1 PerfScore 9.00
 G_M62078_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edi, dword ptr [ebp+0x08]
-       mov      dword ptr [ebp-0x3C], edi
+       mov      dword ptr [ebp-0x38], edi
        mov      ecx, 0xD1FFAB1E      ; System.Reflection.Metadata.BlobBuilder
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[eax]
@@ -117,7 +118,7 @@ G_M62078_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      dword ptr [ebp-0x24], eax
        xor      edx, edx
        ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x50], edx
+       mov      gword ptr [ebp-0x4C], edx
        ; GC ptr vars +{V04}
        mov      ecx, esi
        ; gcrRegs +[ecx]
@@ -134,29 +135,29 @@ G_M62078_IG03:        ; bbWeight=0.50, gcrefRegs=00000041 {eax esi}, byrefRegs=0
        mov      dword ptr [eax+0x1C], edi
        mov      ebx, gword ptr [eax+0x08]
        ; gcrRegs +[ebx]
-       mov      gword ptr [ebp-0x4C], ebx
+       mov      gword ptr [ebp-0x48], ebx
        ; GC ptr vars +{V02}
-       mov      ebx, gword ptr [ebp-0x4C]
-       mov      edi, dword ptr [ebp-0x3C]
+       mov      ebx, gword ptr [ebp-0x48]
+       mov      edi, dword ptr [ebp-0x38]
                       ;; size=21 bbWeight=0.50 PerfScore 4.00
 G_M62078_IG04:        ; bbWeight=1, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        ; GC ptr vars -{V02}
-       mov      gword ptr [ebp-0x48], esi
+       mov      gword ptr [ebp-0x44], esi
        ; GC ptr vars +{V00}
        mov      eax, gword ptr [esi+0x0C]
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x5C], eax
+       mov      gword ptr [ebp-0x58], eax
        ; GC ptr vars +{V17}
        test     byte  ptr [D1FFAB1EH], 1      ; global ptr
-       je       G_M62078_IG37
+       je       G_M62078_IG36
                        ;; size=22 bbWeight=1 PerfScore 8.00
-G_M62078_IG05:        ; bbWeight=1, gcVars=00000000C0000004 {V00 V04 V17}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M62078_IG05:        ; bbWeight=1, gcVars=0000000180000004 {V00 V04 V17}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax esi]
        mov      edx, gword ptr [D1FFAB1EH]      ; static handle
        ; gcrRegs +[edx]
        test     edx, edx
-       mov      gword ptr [ebp-0x60], edx
+       mov      gword ptr [ebp-0x5C], edx
        ; GC ptr vars +{V19}
        jne      SHORT G_M62078_IG07
                        ;; size=13 bbWeight=1 PerfScore 4.25
@@ -169,7 +170,7 @@ G_M62078_IG06:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
        mov      ecx, gword ptr [D1FFAB1EH]      ; static handle
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       G_M62078_IG38
+       je       G_M62078_IG37
        lea      edx, bword ptr [eax+0x04]
        ; byrRegs +[edx]
        call     CORINFO_HELP_ASSIGN_REF_ECX
@@ -178,25 +179,25 @@ G_M62078_IG06:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
        mov      dword ptr [eax+0x0C], 0xD1FFAB1E
        mov      edx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        call     CORINFO_HELP_ASSIGN_REF_EAX
-       mov      gword ptr [ebp-0x60], eax
+       mov      gword ptr [ebp-0x5C], eax
        ; GC ptr vars +{V19}
                        ;; size=52 bbWeight=0.50 PerfScore 4.62
-G_M62078_IG07:        ; bbWeight=1, gcVars=00000002C0000004 {V00 V04 V17 V19}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref
+G_M62078_IG07:        ; bbWeight=1, gcVars=0000000580000004 {V00 V04 V17 V19}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax]
        mov      ecx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[eax]
        lea      edx, bword ptr [eax+0x04]
        ; byrRegs +[edx]
-       mov      ecx, gword ptr [ebp-0x5C]
+       mov      ecx, gword ptr [ebp-0x58]
        ; gcrRegs +[ecx]
        call     CORINFO_HELP_ASSIGN_REF_ECX
        ; byrRegs -[edx]
        test     ecx, ecx
-       je       G_M62078_IG39
-       mov      ecx, gword ptr [ebp-0x60]
+       je       G_M62078_IG38
+       mov      ecx, gword ptr [ebp-0x5C]
        test     ecx, ecx
-       je       G_M62078_IG40
+       je       G_M62078_IG39
        xor      edx, edx
        ; gcrRegs +[edx]
        mov      gword ptr [eax+0x08], edx
@@ -219,123 +220,124 @@ G_M62078_IG07:        ; bbWeight=1, gcVars=00000002C0000004 {V00 V04 V17 V19}, g
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       mov      gword ptr [ebp-0x54], eax
+       mov      gword ptr [ebp-0x50], eax
        ; GC ptr vars +{V06}
                        ;; size=82 bbWeight=1 PerfScore 18.75
-G_M62078_IG08:        ; bbWeight=1, gcVars=0000000044000004 {V00 V04 V06}, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, gcvars, byref
+G_M62078_IG08:        ; bbWeight=1, gcVars=0000000088000004 {V00 V04 V06}, gcrefRegs=00000009 {eax ebx}, byrefRegs=00000000 {}, gcvars, byref
        mov      ecx, eax
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
        test     eax, eax
-       je       G_M62078_IG28
+       je       G_M62078_IG27
                      ;; size=16 bbWeight=1 PerfScore 4.50
 G_M62078_IG09:        ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
-       mov      ecx, gword ptr [ebp-0x54]
+       mov      ecx, gword ptr [ebp-0x50]
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x58], eax
+       mov      gword ptr [ebp-0x54], eax
        ; GC ptr vars +{V07}
        mov      edx, gword ptr [eax+0x0C]
        ; gcrRegs +[edx]
...
  
+37 (+2.22%) : 244385.dasm - System.Xml.Xsl.IlGen.XmlILModule:DefineMethod(System.String,System.Type,System.Type[],System.String[],int):System.Reflection.MethodInfo:this (FullOpts)
@@ -121,7 +121,7 @@
 ;* V110 tmp95       [V110,T56] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V111 tmp96       [V111,T03] (  3, 19.68)     ref  ->  esi         class-hnd exact "Inlining Arg" <System.String>
 ;  V112 tmp97       [V112,T10] (  5, 12   )     int  ->  esi         "Inlining Arg"
-;  V113 tmp98       [V113,T17] (  3,  8   )     ref  ->  ecx         class-hnd exact "Inlining Arg" <System.String>
+;  V113 tmp98       [V113,T17] (  3,  8   )     ref  ->  edx         class-hnd exact "Inlining Arg" <System.String>
 ;* V114 tmp99       [V114    ] (  0,  0   )     ref  ->  zero-ref    "guarded devirt return temp"
 ;* V115 tmp100      [V115    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Reflection.Emit.RuntimeMethodBuilder>
 ;  V116 tmp101      [V116,T45] (  5,  3   )     ref  ->  eax         class-hnd single-def "Inlining Arg" <<unknown class>>
@@ -207,7 +207,7 @@ G_M15401_IG02:        ; bbWeight=1, gcVars=000000000000000000000200 {V00}, gcref
        setne    cl
        movzx    ecx, cl
        mov      dword ptr [ebp-0x10], ecx
-       jmp      G_M15401_IG22
+       jmp      G_M15401_IG17
                         ;; size=47 bbWeight=1 PerfScore 10.50
 G_M15401_IG03:        ; bbWeight=2.00, gcVars=000000000000000000004200 {V00 V08}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[ebx]
@@ -235,12 +235,12 @@ G_M15401_IG04:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
        mov      dword ptr [ebp-0x20], ecx
        mov      byte  ptr [ebp-0x1C], 0
        cmp      byte  ptr [ebp-0x1C], 0
-       jne      G_M15401_IG15
+       jne      G_M15401_IG20
        mov      esi, gword ptr [ebp-0x58]
        ; gcrRegs +[esi]
        ; byrRegs -[esi]
        test     esi, esi
-       je       G_M15401_IG16
+       je       G_M15401_IG21
        mov      ecx, dword ptr [ebp-0x20]
        cmp      ecx, dword ptr [ebp-0x14]
        ja       G_M15401_IG48
@@ -264,7 +264,7 @@ G_M15401_IG04:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
 G_M15401_IG05:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
        mov      eax, dword ptr [ebp-0x30]
        cmp      dword ptr [esi+0x04], eax
-       ja       G_M15401_IG16
+       ja       G_M15401_IG21
                         ;; size=12 bbWeight=2 PerfScore 10.00
 G_M15401_IG06:        ; bbWeight=2.00, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
        lea      edx, bword ptr [esi+0x08]
@@ -303,7 +303,7 @@ G_M15401_IG07:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
                        ;; size=46 bbWeight=2 PerfScore 25.00
 G_M15401_IG08:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
        cmp      dword ptr [ebp-0x34], 2
-       jb       G_M15401_IG18
+       jb       G_M15401_IG25
                       ;; size=10 bbWeight=2 PerfScore 6.00
 G_M15401_IG09:        ; bbWeight=2.00, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
        mov      edx, 0xD1FFAB1E
@@ -341,10 +341,10 @@ G_M15401_IG10:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=57 bbWeight=2 PerfScore 32.50
-G_M15401_IG11:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref, isz
+G_M15401_IG11:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
        cmp      dword ptr [ebp-0x38], 0
-       je       SHORT G_M15401_IG19
-                       ;; size=6 bbWeight=2 PerfScore 6.00
+       je       G_M15401_IG26
+                       ;; size=10 bbWeight=2 PerfScore 6.00
 G_M15401_IG12:        ; bbWeight=2.00, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
        mov      edx, 0xD1FFAB1E
        ; byrRegs +[edx]
@@ -368,7 +368,7 @@ G_M15401_IG14:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      bword ptr [ebp-0x74], eax
        ; GC ptr vars +{V73}
        test     ebx, ebx
-       jge      SHORT G_M15401_IG20
+       jge      SHORT G_M15401_IG15
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
@@ -376,51 +376,14 @@ G_M15401_IG14:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
        ; byrRegs -[eax]
-       jmp      SHORT G_M15401_IG17
-                       ;; size=28 bbWeight=2 PerfScore 17.50
-G_M15401_IG15:        ; bbWeight=1, gcVars=000000000000000000004200 {V00 V08}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[esi]
-       ; GC ptr vars -{V73}
-       mov      esi, gword ptr [ebp-0x58]
-       ; gcrRegs +[esi]
-                       ;; size=3 bbWeight=1 PerfScore 1.00
-G_M15401_IG16:        ; bbWeight=0.00, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       lea      ecx, [ebp-0x28]
-       mov      edx, esi
-       ; gcrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[edx]
-       jmp      G_M15401_IG07
-                       ;; size=16 bbWeight=0.00 PerfScore 0.02
-G_M15401_IG17:        ; bbWeight=2, gcVars=000000000000000000044200 {V00 V08 V73}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V73}
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-       jmp      SHORT G_M15401_IG20
-                       ;; size=18 bbWeight=2 PerfScore 11.00
-G_M15401_IG18:        ; bbWeight=0.01, gcVars=000000000000000000004200 {V00 V08}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
-       ; GC ptr vars -{V73}
-       lea      ecx, [ebp-0x28]
-       mov      edx, 0xD1FFAB1E
-       ; gcrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[edx]
-       jmp      G_M15401_IG10
-                       ;; size=19 bbWeight=0.01 PerfScore 0.03
-G_M15401_IG19:        ; bbWeight=0.01, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       lea      ecx, [ebp-0x28]
-       mov      edx, 0xD1FFAB1E
-       ; gcrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[edx]
-       jmp      SHORT G_M15401_IG13
-                       ;; size=16 bbWeight=0.01 PerfScore 0.03
-G_M15401_IG20:        ; bbWeight=2, gcVars=000000000000000000044200 {V00 V08 V73}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V73}
+                      ;; size=42 bbWeight=2 PerfScore 20.50
+G_M15401_IG15:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      eax, bword ptr [ebp-0x74]
        ; byrRegs +[eax]
        push     ebx
@@ -439,9 +402,9 @@ G_M15401_IG20:        ; bbWeight=2, gcVars=000000000000000000044200 {V00 V08 V73
        vmovdqu  xmmword ptr [ebp-0x28], xmm0
        vmovdqu  xmmword ptr [ebp-0x20], xmm0
        test     edx, edx
-       je       SHORT G_M15401_IG22
+       je       SHORT G_M15401_IG17
                      ;; size=33 bbWeight=2 PerfScore 17.67
-G_M15401_IG21:        ; bbWeight=1.94, gcrefRegs=0000004C {edx ebx esi}, byrefRegs=00000000 {}, byref
+G_M15401_IG16:        ; bbWeight=1.94, gcrefRegs=0000004C {edx ebx esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        push     0
        mov      ecx, gword ptr [D1FFAB1EH]      ; static handle
@@ -450,7 +413,7 @@ G_M15401_IG21:        ; bbWeight=1.94, gcrefRegs=0000004C {edx ebx esi}, byrefRe
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=16 bbWeight=1.94 PerfScore 17.48
-G_M15401_IG22:        ; bbWeight=8, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
+G_M15401_IG17:        ; bbWeight=8, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi]
        mov      edx, gword ptr [ebp-0x50]
        ; gcrRegs +[edx]
@@ -467,14 +430,14 @@ G_M15401_IG22:        ; bbWeight=8, gcrefRegs=00000008 {ebx}, byrefRegs=00000000
        test     eax, eax
        jne      G_M15401_IG03
                        ;; size=26 bbWeight=8 PerfScore 94.00
-G_M15401_IG23:        ; bbWeight=1, gcVars=000000000000000000000200 {V00}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M15401_IG18:        ; bbWeight=1, gcVars=000000000000000000000200 {V00}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax]
        ; GC ptr vars -{V08}
        mov      esi, dword ptr [ebp-0x10]
        test     esi, esi
-       jne      SHORT G_M15401_IG25
-                       ;; size=7 bbWeight=1 PerfScore 2.25
-G_M15401_IG24:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
+       jne      G_M15401_IG33
+                       ;; size=11 bbWeight=1 PerfScore 2.25
+G_M15401_IG19:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
        mov      edi, gword ptr [ebp+0x10]
        ; gcrRegs +[edi]
        mov      edx, dword ptr [edi+0x04]
@@ -500,17 +463,146 @@ G_M15401_IG24:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
        mov      edi, gword ptr [ebp-0x5C]
        ; gcrRegs +[edi]
        mov      gword ptr [ebp+0x10], edi
-                        ;; size=59 bbWeight=0.50 PerfScore 10.00
-G_M15401_IG25:        ; bbWeight=1, gcVars=000000000000000000000200 {V00}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[edi]
-       ; GC ptr vars -{V09}
+       jmp      G_M15401_IG33
+                       ;; size=64 bbWeight=0.50 PerfScore 11.00
+G_M15401_IG20:        ; bbWeight=1, gcVars=000000000000000000004200 {V00 V08}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[ebx edi]
+       ; GC ptr vars -{V09} +{V08}
+       mov      esi, gword ptr [ebp-0x58]
+       ; gcrRegs +[esi]
+                       ;; size=3 bbWeight=1 PerfScore 1.00
+G_M15401_IG21:        ; bbWeight=0.00, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       lea      ecx, [ebp-0x28]
+       mov      edx, esi
+       ; gcrRegs +[edx]
+       call     [<unknown method>]
+       ; gcrRegs -[edx]
+       jmp      G_M15401_IG07
+                       ;; size=16 bbWeight=0.00 PerfScore 0.02
+G_M15401_IG22:        ; bbWeight=0.50, gcVars=000000000000000000008200 {V00 V12}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[esi] +[ebx edi]
+       ; GC ptr vars -{V08} +{V12 V15}
+       xor      ecx, ecx
+       mov      edx, gword ptr [ebp+0x0C]
+       ; gcrRegs +[edx]
+       cmp      dword ptr [edx+0x04], 0
+       jle      G_M15401_IG31
+                       ;; size=15 bbWeight=0.50 PerfScore 2.62
+G_M15401_IG23:        ; bbWeight=4, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, gword ptr [edx+4*ecx+0x08]
+       ; gcrRegs +[esi]
+       test     esi, esi
+       je       SHORT G_M15401_IG30
+                       ;; size=8 bbWeight=4 PerfScore 13.00
+G_M15401_IG24:        ; bbWeight=1.84, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M15401_IG27
+                       ;; size=2 bbWeight=1.84 PerfScore 3.68
+G_M15401_IG25:        ; bbWeight=0.01, gcVars=000000000000000000004200 {V00 V08}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[edx ebx edi]
+       ; GC ptr vars -{V12 V15} +{V08}
+       lea      ecx, [ebp-0x28]
+       mov      edx, 0xD1FFAB1E
+       ; gcrRegs +[edx]
+       call     [<unknown method>]
+       ; gcrRegs -[edx]
+       jmp      G_M15401_IG10
+                       ;; size=19 bbWeight=0.01 PerfScore 0.03
+G_M15401_IG26:        ; bbWeight=0.01, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       lea      ecx, [ebp-0x28]
+       mov      edx, 0xD1FFAB1E
+       ; gcrRegs +[edx]
+       call     [<unknown method>]
+       ; gcrRegs -[edx]
+       jmp      G_M15401_IG13
+                       ;; size=19 bbWeight=0.01 PerfScore 0.03
+G_M15401_IG27:        ; bbWeight=1.84, gcVars=000000000000000000008200 {V00 V12}, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs +[edx ebx edi]
+       ; GC ptr vars -{V08} +{V12 V15}
+       cmp      dword ptr [esi+0x04], 0
+       je       SHORT G_M15401_IG30
+                       ;; size=6 bbWeight=1.84 PerfScore 7.35
+G_M15401_IG28:        ; bbWeight=2, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[esi]
+       cmp      dword ptr [ebp-0x10], 0
+       jne      G_M15401_IG43
+       mov      esi, 2
+                       ;; size=15 bbWeight=2 PerfScore 6.50
+G_M15401_IG29:        ; bbWeight=2, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref
+       add      esi, ecx
+       mov      gword ptr [ebp+0x0C], edx
+       mov      dword ptr [ebp-0x2C], ecx
+       mov      edx, gword ptr [edx+4*ecx+0x08]
+       mov      eax, edi
+       ; gcrRegs +[eax]
+       cmp      byte  ptr [eax], al
+       test     esi, esi
+       jl       G_M15401_IG54
...
  
+27 (+2.41%) : 367841.dasm - System.Reflection.AssemblyNameParser:GetNextToken(byref):int:this (Tier1)
@@ -105,32 +105,32 @@ G_M25128_IG03:        ; bbWeight=1.21, gcrefRegs=00000000 {}, byrefRegs=000000C0
        ; GC ptr vars -{V01}
        mov      ecx, dword ptr [esi+0x08]
        cmp      ecx, dword ptr [esi+0x04]
-       jge      G_M25128_IG34
+       jge      G_M25128_IG22
                         ;; size=12 bbWeight=1.21 PerfScore 7.29
 G_M25128_IG04:        ; bbWeight=1.20, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
        lea      eax, [ecx+0x01]
        mov      dword ptr [esi+0x08], eax
        cmp      ecx, dword ptr [esi+0x04]
-       jae      G_M25128_IG47
+       jae      G_M25128_IG44
        mov      eax, bword ptr [esi]
        ; byrRegs +[eax]
        movzx    ebx, word  ptr [eax+2*ecx]
        test     ebx, ebx
-       je       G_M25128_IG44
+       je       G_M25128_IG65
                      ;; size=29 bbWeight=1.20 PerfScore 12.91
 G_M25128_IG05:        ; bbWeight=1.21, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
        ; byrRegs -[eax]
        mov      eax, ebx
        test     eax, eax
-       je       G_M25128_IG39
+       je       G_M25128_IG38
                      ;; size=10 bbWeight=1.21 PerfScore 1.82
 G_M25128_IG06:        ; bbWeight=1.14, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
        cmp      eax, 44
-       je       G_M25128_IG35
+       je       G_M25128_IG34
                       ;; size=9 bbWeight=1.14 PerfScore 1.43
 G_M25128_IG07:        ; bbWeight=0.93, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
        cmp      eax, 61
-       je       G_M25128_IG37
+       je       G_M25128_IG36
                       ;; size=9 bbWeight=0.93 PerfScore 1.16
 G_M25128_IG08:        ; bbWeight=0.71, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
        mov      dword ptr [ebp-0x14], eax
@@ -166,44 +166,91 @@ G_M25128_IG11:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=000000C0
                        ;; size=3 bbWeight=0.50 PerfScore 0.50
 G_M25128_IG12:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
        cmp      edx, 39
-       je       G_M25128_IG49
+       je       G_M25128_IG66
        cmp      edx, 34
-       je       G_M25128_IG49
+       je       G_M25128_IG66
                      ;; size=18 bbWeight=0.50 PerfScore 1.25
 G_M25128_IG13:        ; bbWeight=6.07, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
        test     edx, edx
-       je       G_M25128_IG41
+       je       G_M25128_IG40
                      ;; size=8 bbWeight=6.07 PerfScore 7.59
-G_M25128_IG14:        ; bbWeight=6, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref, isz
+G_M25128_IG14:        ; bbWeight=6, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
        mov      dword ptr [ebp-0x28], ecx
        test     ecx, ecx
-       jne      G_M25128_IG52
+       jne      G_M25128_IG47
        cmp      edx, 44
-       je       SHORT G_M25128_IG16
-                       ;; size=16 bbWeight=6 PerfScore 21.00
+       je       G_M25128_IG33
+                       ;; size=20 bbWeight=6 PerfScore 21.00
 G_M25128_IG15:        ; bbWeight=5.79, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
        cmp      edx, 61
-       jne      G_M25128_IG27
+       je       G_M25128_IG33
                       ;; size=9 bbWeight=5.79 PerfScore 7.23
-G_M25128_IG16:        ; bbWeight=0.43, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
-       dec      dword ptr [esi+0x08]
-                       ;; size=3 bbWeight=0.43 PerfScore 1.29
-G_M25128_IG17:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
+G_M25128_IG16:        ; bbWeight=5.57, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
+       cmp      edx, 39
+       je       G_M25128_IG65
+       cmp      edx, 34
+       je       G_M25128_IG65
+                       ;; size=18 bbWeight=5.57 PerfScore 13.93
+G_M25128_IG17:        ; bbWeight=5.57, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
+       cmp      edx, 92
+       je       G_M25128_IG48
+       mov      bword ptr [ebp-0x38], edi
+       ; GC ptr vars +{V01}
+       mov      eax, dword ptr [ebp-0x20]
+       mov      ebx, bword ptr [ebp-0x1C]
+       ; byrRegs +[ebx]
+       mov      edi, dword ptr [ebp-0x18]
+       ; byrRegs -[edi]
+       cmp      eax, edi
+       jae      G_M25128_IG41
+                       ;; size=29 bbWeight=5.57 PerfScore 36.21
+G_M25128_IG18:        ; bbWeight=5.54, gcVars=0000000000000200 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000048 {ebx esi}, gcvars, byref
+       mov      word  ptr [ebx+2*eax], dx
+       inc      eax
+       mov      dword ptr [ebp-0x20], eax
+                       ;; size=8 bbWeight=5.54 PerfScore 12.48
+G_M25128_IG19:        ; bbWeight=5.57, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
+       ; byrRegs -[ebx]
+       mov      edx, dword ptr [esi+0x08]
+       cmp      edx, dword ptr [esi+0x04]
+       jge      G_M25128_IG42
+                       ;; size=12 bbWeight=5.57 PerfScore 33.43
+G_M25128_IG20:        ; bbWeight=5.51, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
+       lea      eax, [edx+0x01]
+       mov      dword ptr [esi+0x08], eax
+       cmp      edx, dword ptr [esi+0x04]
+       jae      G_M25128_IG44
+       mov      eax, bword ptr [esi]
+       ; byrRegs +[eax]
+       movzx    edx, word  ptr [eax+2*edx]
+       test     edx, edx
+       je       G_M25128_IG65
+                       ;; size=29 bbWeight=5.51 PerfScore 59.22
+G_M25128_IG21:        ; bbWeight=5.57, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
+       ; byrRegs -[eax]
+       mov      edi, edx
+       mov      ecx, dword ptr [ebp-0x28]
+       mov      edi, bword ptr [ebp-0x38]
+       ; byrRegs +[edi]
+       jmp      G_M25128_IG13
+                       ;; size=13 bbWeight=5.57 PerfScore 23.68
+G_M25128_IG22:        ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, gcvars, byref
+       ; GC ptr vars -{V01}
+       xor      ebx, ebx
+       jmp      G_M25128_IG05
+                       ;; size=7 bbWeight=0.01 PerfScore 0.03
+G_M25128_IG23:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
        ; byrRegs -[esi]
-       cmp      dword ptr [ebp-0x28], 0
-       jne      SHORT G_M25128_IG22
-                       ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M25128_IG18:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
        mov      ecx, dword ptr [ebp-0x20]
        test     ecx, ecx
-       jle      SHORT G_M25128_IG22
+       jle      SHORT G_M25128_IG27
                      ;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M25128_IG19:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
+G_M25128_IG24:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
        lea      esi, [ecx-0x01]
        cmp      esi, ecx
-       jl       SHORT G_M25128_IG21
+       jl       SHORT G_M25128_IG26
                      ;; size=7 bbWeight=0.50 PerfScore 0.88
-G_M25128_IG20:        ; bbWeight=2.00, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
+G_M25128_IG25:        ; bbWeight=2.00, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
@@ -211,27 +258,27 @@ G_M25128_IG20:        ; bbWeight=2.00, gcrefRegs=00000000 {}, byrefRegs=00000080
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=16 bbWeight=2.00 PerfScore 7.00
-G_M25128_IG21:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
+G_M25128_IG26:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
        cmp      esi, dword ptr [ebp-0x18]
-       jae      G_M25128_IG47
+       jae      G_M25128_IG44
        mov      ecx, bword ptr [ebp-0x1C]
        ; byrRegs +[ecx]
        movzx    ecx, word  ptr [ecx+2*esi]
        ; byrRegs -[ecx]
        call     [System.Reflection.AssemblyNameParser:IsWhiteSpace(ushort):ubyte]
        test     eax, eax
-       jne      G_M25128_IG45
+       jne      G_M25128_IG67
                      ;; size=30 bbWeight=0.50 PerfScore 5.13
-G_M25128_IG22:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
+G_M25128_IG27:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref
        mov      esi, dword ptr [ebp-0x20]
        cmp      esi, dword ptr [ebp-0x18]
-       ja       G_M25128_IG46
+       ja       G_M25128_IG68
                         ;; size=12 bbWeight=0.50 PerfScore 2.00
-G_M25128_IG23:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
+G_M25128_IG28:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
        mov      ebx, bword ptr [ebp-0x1C]
        ; byrRegs +[ebx]
        test     esi, esi
-       jge      SHORT G_M25128_IG24
+       jge      SHORT G_M25128_IG29
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
@@ -239,7 +286,7 @@ G_M25128_IG23:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000080
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=23 bbWeight=0.50 PerfScore 2.87
-G_M25128_IG24:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000088 {ebx edi}, byref
+G_M25128_IG29:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000088 {ebx edi}, byref
        mov      bword ptr [ebp-0x34], ebx
        mov      dword ptr [ebp-0x30], esi
        lea      ecx, [ebp-0x34]
@@ -253,9 +300,9 @@ G_M25128_IG24:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000088
        vxorps   xmm0, xmm0, xmm0
        vmovdqu  xmmword ptr [ebp-0x24], xmm0
        test     edx, edx
-       jne      G_M25128_IG33
+       jne      G_M25128_IG43
                      ;; size=37 bbWeight=0.50 PerfScore 4.67
-G_M25128_IG25:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
+G_M25128_IG30:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref, isz
        ; gcrRegs -[eax edx]
        mov      edx, edi
        ; byrRegs +[edx]
@@ -264,10 +311,10 @@ G_M25128_IG25:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        ; byrRegs -[edx edi]
        mov      eax, 3
        cmp      dword ptr [ebp-0x3C], 0xD1FFAB1E
-       je       SHORT G_M25128_IG26
+       je       SHORT G_M25128_IG31
        call     CORINFO_HELP_FAIL_FAST
                        ;; size=26 bbWeight=0.50 PerfScore 2.75
-G_M25128_IG26:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M25128_IG31:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -275,82 +322,25 @@ G_M25128_IG26:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M25128_IG27:        ; bbWeight=5.57, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, gcvars, byref
-       ; byrRegs +[esi edi]
-       cmp      edx, 39
-       je       G_M25128_IG44
-       cmp      edx, 34
-       je       G_M25128_IG44
-                       ;; size=18 bbWeight=5.57 PerfScore 13.93
-G_M25128_IG28:        ; bbWeight=5.57, gcrefRegs=00000000 {}, byrefRegs=000000C0 {esi edi}, byref
-       cmp      edx, 92
-       je       G_M25128_IG48
-       mov      bword ptr [ebp-0x38], edi
-       ; GC ptr vars +{V01}
-       mov      eax, dword ptr [ebp-0x20]
-       mov      ebx, bword ptr [ebp-0x1C]
-       ; byrRegs +[ebx]
-       mov      edi, dword ptr [ebp-0x18]
-       ; byrRegs -[edi]
-       cmp      eax, edi
-       jae      G_M25128_IG42
-                       ;; size=29 bbWeight=5.57 PerfScore 36.21
-G_M25128_IG29:        ; bbWeight=5.54, gcVars=0000000000000200 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000048 {ebx esi}, gcvars, byref
-       mov      word  ptr [ebx+2*eax], dx
-       inc      eax
-       mov      dword ptr [ebp-0x20], eax
-                       ;; size=8 bbWeight=5.54 PerfScore 12.48
-G_M25128_IG30:        ; bbWeight=5.57, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
...
  
+16 (+3.02%) : 306998.dasm - Program:ManipulateListOfInt():ubyte (FullOpts)
@@ -141,7 +141,7 @@ G_M15514_IG07:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; gcr arg pop 1
        xor      edi, edi
        cmp      dword ptr [esi+0x08], 0
-       jle      G_M15514_IG25
+       jle      G_M15514_IG22
                       ;; size=27 bbWeight=1 PerfScore 10.75
 G_M15514_IG08:        ; bbWeight=4.00, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        xor      ecx, ecx
@@ -154,7 +154,7 @@ G_M15514_IG08:        ; bbWeight=4.00, gcrefRegs=00000040 {esi}, byrefRegs=00000
        ; gcrRegs -[ecx] +[eax]
        mov      gword ptr [ebp-0x20], eax
        test     eax, eax
-       je       G_M15514_IG30
+       je       G_M15514_IG29
                      ;; size=35 bbWeight=4.00 PerfScore 47.00
 G_M15514_IG09:        ; bbWeight=2.00, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref
        lea      ebx, bword ptr [eax+0x08]
@@ -162,18 +162,18 @@ G_M15514_IG09:        ; bbWeight=2.00, gcrefRegs=00000041 {eax esi}, byrefRegs=0
        mov      eax, dword ptr [eax+0x04]
        ; gcrRegs -[eax]
                        ;; size=6 bbWeight=2.00 PerfScore 5.00
-G_M15514_IG10:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref, isz
+G_M15514_IG10:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
        mov      bword ptr [ebp-0x14], ebx
        mov      dword ptr [ebp-0x10], eax
        xor      edx, edx
        mov      dword ptr [ebp-0x1C], edx
        mov      byte  ptr [ebp-0x18], 0
        cmp      edi, dword ptr [esi+0x08]
-       jae      G_M15514_IG32
+       jae      G_M15514_IG31
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
        cmp      edi, dword ptr [edx+0x04]
-       jae      G_M15514_IG29
+       jae      G_M15514_IG28
        mov      edx, dword ptr [edx+4*edi+0x08]
        ; gcrRegs -[edx]
        lea      ecx, [ebp-0x24]
@@ -182,7 +182,7 @@ G_M15514_IG10:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000008
        mov      ecx, dword ptr [ebp-0x1C]
        mov      ebx, dword ptr [ebp-0x10]
        cmp      ecx, ebx
-       ja       G_M15514_IG31
+       ja       G_M15514_IG30
        mov      edx, bword ptr [ebp-0x14]
        ; byrRegs +[edx]
        lea      eax, bword ptr [edx+2*ecx]
@@ -190,8 +190,8 @@ G_M15514_IG10:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000008
        mov      bword ptr [ebp-0x28], eax
        ; GC ptr vars +{V18}
        sub      ebx, ecx
-       jns      SHORT G_M15514_IG17
-                       ;; size=76 bbWeight=4 PerfScore 107.00
+       jns      G_M15514_IG24
+                       ;; size=80 bbWeight=4 PerfScore 107.00
 G_M15514_IG11:        ; bbWeight=2, gcVars=00004000 {V18}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
        ; byrRegs -[eax edx]
        mov      ecx, 0xD1FFAB1E
@@ -203,10 +203,10 @@ G_M15514_IG11:        ; bbWeight=2, gcVars=00004000 {V18}, gcrefRegs=00000040 {e
        mov      eax, bword ptr [ebp-0x28]
        ; byrRegs +[eax]
                        ;; size=19 bbWeight=2 PerfScore 9.00
-G_M15514_IG12:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000001 {eax}, byref, isz
+G_M15514_IG12:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000001 {eax}, byref
        test     ebx, ebx
-       je       SHORT G_M15514_IG18
-                       ;; size=4 bbWeight=4 PerfScore 5.00
+       je       G_M15514_IG25
+                       ;; size=8 bbWeight=4 PerfScore 5.00
 G_M15514_IG13:        ; bbWeight=2.00, gcrefRegs=00000040 {esi}, byrefRegs=00000001 {eax}, byref
        mov      edx, 0xD1FFAB1E
        ; byrRegs +[edx]
@@ -223,7 +223,7 @@ G_M15514_IG13:        ; bbWeight=2.00, gcrefRegs=00000040 {esi}, byrefRegs=00000
 G_M15514_IG14:        ; bbWeight=4.00, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      ebx, dword ptr [ebp-0x1C]
        cmp      ebx, dword ptr [ebp-0x10]
-       ja       G_M15514_IG31
+       ja       G_M15514_IG30
                         ;; size=12 bbWeight=4.00 PerfScore 16.01
 G_M15514_IG15:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      eax, bword ptr [ebp-0x14]
@@ -231,9 +231,9 @@ G_M15514_IG15:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      bword ptr [ebp-0x2C], eax
        ; GC ptr vars +{V31}
        test     ebx, ebx
-       jge      SHORT G_M15514_IG20
+       jge      SHORT G_M15514_IG17
                      ;; size=10 bbWeight=4 PerfScore 13.00
-G_M15514_IG16:        ; bbWeight=2, gcVars=00000100 {V31}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M15514_IG16:        ; bbWeight=2, gcVars=00000100 {V31}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
        ; byrRegs -[eax]
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
@@ -241,34 +241,14 @@ G_M15514_IG16:        ; bbWeight=2, gcVars=00000100 {V31}, gcrefRegs=00000040 {e
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-       jmp      SHORT G_M15514_IG19
-                       ;; size=18 bbWeight=2 PerfScore 11.00
-G_M15514_IG17:        ; bbWeight=2, gcVars=00004000 {V18}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V31} +{V18}
-       mov      eax, bword ptr [ebp-0x28]
-       ; byrRegs +[eax]
-       jmp      SHORT G_M15514_IG12
-                       ;; size=5 bbWeight=2 PerfScore 6.00
-G_M15514_IG18:        ; bbWeight=0.01, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; byrRegs -[eax]
-       ; GC ptr vars -{V18}
-       lea      ecx, [ebp-0x24]
-       mov      edx, 0xD1FFAB1E
-       ; gcrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[edx]
-       jmp      SHORT G_M15514_IG14
-                       ;; size=16 bbWeight=0.01 PerfScore 0.03
-G_M15514_IG19:        ; bbWeight=2, gcVars=00000100 {V31}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
-       ; GC ptr vars +{V31}
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-                      ;; size=16 bbWeight=2 PerfScore 7.00
-G_M15514_IG20:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=32 bbWeight=2 PerfScore 14.00
+G_M15514_IG17:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      eax, bword ptr [ebp-0x2C]
        ; byrRegs +[eax]
        push     ebx
@@ -287,9 +267,9 @@ G_M15514_IG20:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        vmovdqu  xmmword ptr [ebp-0x24], xmm0
        vmovdqu  xmmword ptr [ebp-0x1C], xmm0
        test     edx, edx
-       je       SHORT G_M15514_IG22
+       je       SHORT G_M15514_IG19
                      ;; size=33 bbWeight=4 PerfScore 35.33
-G_M15514_IG21:        ; bbWeight=1.94, gcrefRegs=0000004C {edx ebx esi}, byrefRegs=00000000 {}, byref
+G_M15514_IG18:        ; bbWeight=1.94, gcrefRegs=0000004C {edx ebx esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        push     0
        mov      ecx, gword ptr [D1FFAB1EH]      ; static handle
@@ -298,46 +278,46 @@ G_M15514_IG21:        ; bbWeight=1.94, gcrefRegs=0000004C {edx ebx esi}, byrefRe
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=16 bbWeight=1.94 PerfScore 17.48
-G_M15514_IG22:        ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+G_M15514_IG19:        ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, ebx
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx ebx]
        test     edi, edi
-       jle      SHORT G_M15514_IG24
+       jle      SHORT G_M15514_IG21
                      ;; size=12 bbWeight=4 PerfScore 18.00
-G_M15514_IG23:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M15514_IG20:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        cmp      edi, dword ptr [esi+0x08]
-       jae      SHORT G_M15514_IG32
+       jae      G_M15514_IG31
        mov      eax, gword ptr [esi+0x04]
        ; gcrRegs +[eax]
        mov      edx, eax
        ; gcrRegs +[edx]
        cmp      edi, dword ptr [edx+0x04]
-       jae      SHORT G_M15514_IG29
+       jae      SHORT G_M15514_IG28
        mov      edx, dword ptr [edx+4*edi+0x08]
        ; gcrRegs -[edx]
        lea      ecx, [edi-0x01]
        cmp      ecx, dword ptr [esi+0x08]
-       jae      SHORT G_M15514_IG32
+       jae      SHORT G_M15514_IG31
        cmp      ecx, dword ptr [eax+0x04]
-       jae      SHORT G_M15514_IG29
+       jae      SHORT G_M15514_IG28
        cmp      dword ptr [eax+4*ecx+0x08], edx
-       jge      SHORT G_M15514_IG27
-                       ;; size=38 bbWeight=2 PerfScore 49.50
-G_M15514_IG24:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       jge      SHORT G_M15514_IG26
+                       ;; size=42 bbWeight=2 PerfScore 49.50
+G_M15514_IG21:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        inc      edi
        cmp      edi, dword ptr [esi+0x08]
        jl       G_M15514_IG08
                        ;; size=10 bbWeight=4 PerfScore 17.00
-G_M15514_IG25:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M15514_IG22:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        call     [<unknown method>]
        xor      eax, eax
        cmp      dword ptr [esi+0x08], 100
        sete     al
                        ;; size=15 bbWeight=0.50 PerfScore 3.62
-G_M15514_IG26:        ; bbWeight=0.50, epilog, nogc, extend
+G_M15514_IG23:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -345,11 +325,27 @@ G_M15514_IG26:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M15514_IG27:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M15514_IG24:        ; bbWeight=2, gcVars=00004000 {V18}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars +{V18}
+       mov      eax, bword ptr [ebp-0x28]
+       ; byrRegs +[eax]
+       jmp      G_M15514_IG12
+                       ;; size=8 bbWeight=2 PerfScore 6.00
+G_M15514_IG25:        ; bbWeight=0.01, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+       ; byrRegs -[eax]
+       ; GC ptr vars -{V18}
+       lea      ecx, [ebp-0x24]
+       mov      edx, 0xD1FFAB1E
+       ; gcrRegs +[edx]
+       call     [<unknown method>]
+       ; gcrRegs -[edx]
+       jmp      G_M15514_IG14
+                       ;; size=19 bbWeight=0.01 PerfScore 0.03
+G_M15514_IG26:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi]
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M15514_IG28:        ; bbWeight=0.50, epilog, nogc, extend
+G_M15514_IG27:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -357,27 +353,27 @@ G_M15514_IG28:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M15514_IG29:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M15514_IG28:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M15514_IG30:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M15514_IG29:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[esi]
        xor      ebx, ebx
        ; byrRegs +[ebx]
        xor      eax, eax
        jmp      G_M15514_IG10
                        ;; size=9 bbWeight=0 PerfScore 0.00
-G_M15514_IG31:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
...
  
  
libraries.crossgen2.windows.x86.checked.mch
-11 (-2.46%) : 12390.dasm - System.Diagnostics.Tracing.EventSource:GetSources():System.Collections.Generic.IEnumerable`1System.Diagnostics.Tracing.EventSource
@@ -9,21 +9,21 @@
 ; 0 inlinees with PGO data; 14 single block inlinees; 9 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T05] (  8, 13   )     ref  ->  esi         class-hnd exact single-def <<unknown class>>
-;  V01 loc1         [V01,T22] (  4,  1   )     ref  ->  [ebp-0x30]  class-hnd EH-live spill-single-def <System.Object>
+;  V00 loc0         [V00,T04] (  8, 13   )     ref  ->  esi         class-hnd exact single-def <<unknown class>>
+;  V01 loc1         [V01,T23] (  4,  1   )     ref  ->  [ebp-0x30]  class-hnd EH-live spill-single-def <System.Object>
 ;  V02 loc2         [V02    ] (  6,  2.50)   ubyte  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V03 loc3         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.WeakReference`1[System.Diagnostics.Tracing.EventSource]]>
 ;* V04 loc4         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.WeakReference`1[System.Diagnostics.Tracing.EventSource]>
 ;* V05 loc5         [V05    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.Diagnostics.Tracing.EventSource>
-;  V06 tmp0         [V06,T17] (  3,  3   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V07 tmp1         [V07,T19] (  2,  2   )   ubyte  ->  ecx         "Inlining Arg"
+;  V06 tmp0         [V06,T18] (  3,  3   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V07 tmp1         [V07,T20] (  2,  2   )   ubyte  ->  ecx         "Inlining Arg"
 ;* V08 tmp2         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V09 tmp3         [V09,T18] (  2,  2   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V09 tmp3         [V09,T19] (  2,  2   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V10 tmp4         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.WeakReference`1[System.Diagnostics.Tracing.EventSource]]>
 ;* V11 tmp5         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V12 tmp6         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
 ;  V13 tmp7         [V13,T06] (  6, 12   )     ref  ->  edx         class-hnd "Inline return value spill temp" <System.Diagnostics.Tracing.EventSource>
-;  V14 tmp8         [V14,T03] (  5, 14   )     int  ->  edx         "Inline stloc first use temp"
+;  V14 tmp8         [V14,T02] (  5, 14   )     int  ->  edx         "Inline stloc first use temp"
 ;* V15 tmp9         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Diagnostics.Tracing.EventSource>
 ;  V16 tmp10        [V16,T14] (  3,  6   )     ref  ->  edx         class-hnd "Inline stloc first use temp" <System.Diagnostics.Tracing.EventSource>
 ;* V17 tmp11        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Diagnostics.Tracing.EventSource>
@@ -31,27 +31,28 @@
 ;  V19 tmp13        [V19,T07] (  3, 12   )     ref  ->  [ebp-0x34]  class-hnd spill-single-def "updating class info" <System.ComAwareWeakReference>
 ;* V20 tmp14        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp15        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V22 tmp16        [V22,T12] (  2,  8   )     ref  ->  eax         class-hnd "dup spill" <System.Object>
-;  V23 tmp17        [V23,T10] (  4,  8   )     ref  ->  eax        
+;  V22 tmp16        [V22,T11] (  2,  8   )     ref  ->  eax         class-hnd "dup spill" <System.Object>
+;  V23 tmp17        [V23,T09] (  4,  8   )     ref  ->  eax        
 ;* V24 tmp18        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Diagnostics.Tracing.EventSource>
 ;  V25 tmp19        [V25,T15] (  3,  6   )     ref  ->  [ebp-0x38]  class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
-;  V26 tmp20        [V26,T11] (  4,  8   )     int  ->  eax         "Inline stloc first use temp"
+;  V26 tmp20        [V26,T10] (  4,  8   )     int  ->  ebx         "Inline stloc first use temp"
 ;* V27 tmp21        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Diagnostics.Tracing.EventSource>
-;* V28 tmp22        [V28,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V28 tmp22        [V28,T12] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V29 tmp23        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V30 tmp24        [V30,T02] (  4, 12.50)     ref  ->  edi         single-def "field V03._list (fldOffset=0x0)" P-INDEP
-;  V31 tmp25        [V31,T04] (  3, 10   )     ref  ->  [ebp-0x3C]  spill-single-def "field V03._current (fldOffset=0x4)" P-INDEP
+;  V30 tmp24        [V30,T05] (  4, 12.50)     ref  ->  edi         single-def "field V03._list (fldOffset=0x0)" P-INDEP
+;  V31 tmp25        [V31,T03] (  3, 10   )     ref  ->  [ebp-0x3C]  spill-single-def "field V03._current (fldOffset=0x4)" P-INDEP
 ;  V32 tmp26        [V32,T00] (  6, 20.50)     int  ->  [ebp-0x28]  "field V03._index (fldOffset=0x8)" P-INDEP
-;  V33 tmp27        [V33,T09] (  3,  8.50)     int  ->  [ebp-0x2C]  spill-single-def "field V03._version (fldOffset=0xc)" P-INDEP
-;  V34 tmp28        [V34,T20] (  3,  1.50)     ref  ->  edi         single-def "field V10._list (fldOffset=0x0)" P-INDEP
+;  V33 tmp27        [V33,T16] (  2,  4.50)     int  ->  [ebp-0x2C]  spill-single-def "field V03._version (fldOffset=0xc)" P-INDEP
+;  V34 tmp28        [V34,T21] (  3,  1.50)     ref  ->  edi         single-def "field V10._list (fldOffset=0x0)" P-INDEP
 ;* V35 tmp29        [V35    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V10._current (fldOffset=0x4)" P-INDEP
-;* V36 tmp30        [V36,T24] (  0,  0   )     int  ->  zero-ref    "field V10._index (fldOffset=0x8)" P-INDEP
-;  V37 tmp31        [V37,T23] (  2,  1   )     int  ->  ebx         "field V10._version (fldOffset=0xc)" P-INDEP
+;* V36 tmp30        [V36,T25] (  0,  0   )     int  ->  zero-ref    "field V10._index (fldOffset=0x8)" P-INDEP
+;  V37 tmp31        [V37,T24] (  2,  1   )     int  ->  ebx         "field V10._version (fldOffset=0xc)" P-INDEP
 ;  V38 tmp32        [V38,T01] (  3, 24   )     ref  ->  eax         "arr expr"
 ;  V39 EHSlots      [V39    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V40 cse0         [V40,T21] (  3,  1.50)   byref  ->  edi         "CSE - conservative"
-;  V41 cse1         [V41,T16] (  6,  3   )     ref  ->  edx         multi-def "CSE - moderate"
-;  V42 cse2         [V42,T08] (  3, 12   )     int  ->  eax         "CSE - moderate"
+;  V40 cse0         [V40,T22] (  3,  1.50)   byref  ->  edi         "CSE - conservative"
+;  V41 cse1         [V41,T17] (  6,  3   )     ref  ->  edx         multi-def "CSE - moderate"
+;  V42 cse2         [V42,T13] (  2,  8   )     int  ->  eax         "CSE - moderate"
+;  V43 cse3         [V43,T08] (  2,  8   )     int  ->  eax         "CSE - moderate"
 ;
 ; Lcl frame size = 48
 
@@ -111,7 +112,7 @@ G_M58508_IG05:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}
        xor      edx, edx
        mov      dword ptr [ebp-0x24], edx
                        ;; size=39 bbWeight=0.50 PerfScore 8.50
-G_M58508_IG06:        ; bbWeight=0.50, gcVars=00400000 {V01}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M58508_IG06:        ; bbWeight=0.50, gcVars=00800000 {V01}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      byte  ptr [ebp-0x24], 0
        jne      G_M58508_IG12
        lea      edx, [ebp-0x24]
@@ -157,13 +158,14 @@ G_M58508_IG08:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
 G_M58508_IG09:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      eax, dword ptr [edi+0x0C]
        cmp      ebx, eax
-       jne      G_M58508_IG18
-       cmp      ecx, dword ptr [edi+0x08]
-       jae      G_M58508_IG21
+       jne      G_M58508_IG19
+       mov      eax, dword ptr [edi+0x08]
+       cmp      ecx, eax
+       jae      G_M58508_IG20
        mov      eax, gword ptr [edi+0x04]
        ; gcrRegs +[eax]
        cmp      ecx, dword ptr [eax+0x04]
-       jae      G_M58508_IG19
+       jae      G_M58508_IG18
        mov      eax, gword ptr [eax+4*ecx+0x08]
        mov      gword ptr [ebp-0x3C], eax
        ; GC ptr vars +{V31}
@@ -172,7 +174,7 @@ G_M58508_IG09:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        mov      edx, dword ptr [eax+0x04]
        and      edx, -2
        jne      SHORT G_M58508_IG13
-                      ;; size=51 bbWeight=4 PerfScore 83.00
+                     ;; size=53 bbWeight=4 PerfScore 80.00
 G_M58508_IG10:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        ; GC ptr vars -{V31}
@@ -191,21 +193,18 @@ G_M58508_IG11:        ; bbWeight=2, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=
        ; gcrRegs +[eax]
        mov      gword ptr [ebp-0x38], eax
        ; GC ptr vars +{V25}
-       mov      eax, dword ptr [esi+0x08]
-       ; gcrRegs -[eax]
-       mov      ebx, gword ptr [ebp-0x38]
-       ; gcrRegs +[ebx]
-       cmp      dword ptr [ebx+0x04], eax
+       mov      ebx, dword ptr [esi+0x08]
+       cmp      dword ptr [eax+0x04], ebx
        jbe      SHORT G_M58508_IG17
        mov      dword ptr [ebp-0x28], ecx
-       lea      ebx, [eax+0x01]
-       ; gcrRegs -[ebx]
-       mov      dword ptr [esi+0x08], ebx
+       lea      eax, [ebx+0x01]
+       ; gcrRegs -[eax]
+       mov      dword ptr [esi+0x08], eax
        push     edx
        ; gcr arg push 0
        mov      ecx, gword ptr [ebp-0x38]
        ; gcrRegs +[ecx]
-       mov      edx, eax
+       mov      edx, ebx
        ; gcrRegs -[edx]
        ; GC ptr vars -{V25}
        call     [CORINFO_HELP_ARRADDR_ST]
@@ -214,13 +213,13 @@ G_M58508_IG11:        ; bbWeight=2, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=
        mov      ecx, dword ptr [ebp-0x28]
        mov      ebx, dword ptr [ebp-0x2C]
        jmp      SHORT G_M58508_IG09
-                      ;; size=65 bbWeight=2 PerfScore 64.00
+                     ;; size=62 bbWeight=2 PerfScore 62.00
 G_M58508_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi edi]
        call     [System.Threading.Monitor:ThrowLockTakenException()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M58508_IG13:        ; bbWeight=2, gcVars=00400010 {V01 V31}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M58508_IG13:        ; bbWeight=2, gcVars=00800008 {V01 V31}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[esi edi]
        ; GC ptr vars +{V31}
        test     dl, 2
@@ -254,11 +253,11 @@ G_M58508_IG15:        ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
        mov      edx, eax
        ; gcrRegs +[edx]
                        ;; size=2 bbWeight=2 PerfScore 0.50
-G_M58508_IG16:        ; bbWeight=2, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
+G_M58508_IG16:        ; bbWeight=2, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
-       jmp      G_M58508_IG11
-                       ;; size=5 bbWeight=2 PerfScore 4.00
-G_M58508_IG17:        ; bbWeight=2, gcVars=00400000 {V01}, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       jmp      SHORT G_M58508_IG11
+                       ;; size=2 bbWeight=2 PerfScore 4.00
+G_M58508_IG17:        ; bbWeight=2, gcVars=00800000 {V01}, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars -{V31}
        mov      dword ptr [ebp-0x28], ecx
        mov      ecx, esi
@@ -269,52 +268,46 @@ G_M58508_IG17:        ; bbWeight=2, gcVars=00400000 {V01}, gcrefRegs=000000C4 {e
        mov      ebx, dword ptr [ebp-0x2C]
        jmp      G_M58508_IG09
                        ;; size=22 bbWeight=2 PerfScore 16.50
-G_M58508_IG18:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edi]
-       cmp      dword ptr [ebp-0x2C], eax
-       jne      SHORT G_M58508_IG20
-       jmp      SHORT G_M58508_IG21
-                       ;; size=7 bbWeight=4 PerfScore 20.00
-G_M58508_IG19:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[esi]
+G_M58508_IG18:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[esi edi]
        call     [CORINFO_HELP_RNGCHKFAIL]
                        ;; size=6 bbWeight=0 PerfScore 0.00
-G_M58508_IG20:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M58508_IG19:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M58508_IG21:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M58508_IG20:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi]
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M58508_IG24
+       je       SHORT G_M58508_IG23
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V01}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M58508_IG24
+       jmp      SHORT G_M58508_IG23
                       ;; size=17 bbWeight=0.50 PerfScore 4.50
-G_M58508_IG22:        ; bbWeight=0, gcVars=00400000 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M58508_IG21:        ; bbWeight=0, gcVars=00800000 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[esi]
-       ; GC ptr vars +{V01 V22}
+       ; GC ptr vars +{V01 V23}
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M58508_IG23
+       je       SHORT G_M58508_IG22
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V01 V22}
+       ; GC ptr vars -{V01 V23}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M58508_IG23:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M58508_IG22:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M58508_IG24:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M58508_IG23:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[esi]
        mov      eax, esi
        ; gcrRegs +[eax]
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M58508_IG25:        ; bbWeight=0.50, epilog, nogc, extend
+G_M58508_IG24:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -323,9 +316,9 @@ G_M58508_IG25:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
 
-; Total bytes of code 448, prolog size 14, PerfScore 281.38, instruction count 142, allocated bytes for code 448 (MethodHash=ee0a1b73) for method System.Diagnostics.Tracing.EventSource:GetSources():System.Collections.Generic.IEnumerable`1[System.Diagnostics.Tracing.EventSource] (FullOpts)
+; Total bytes of code 437, prolog size 14, PerfScore 256.38, instruction count 139, allocated bytes for code 437 (MethodHash=ee0a1b73) for method System.Diagnostics.Tracing.EventSource:GetSources():System.Collections.Generic.IEnumerable`1[System.Diagnostics.Tracing.EventSource] (FullOpts)
 ; ============================================================
 
 *************** EH table for System.Diagnostics.Tracing.EventSource:GetSources():System.Collections.Generic.IEnumerable`1[System.Diagnostics.Tracing.EventSource]
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M58508_IG06..G_M58508_IG21) handled by [G_M58508_IG22..G_M58508_IG24) (fault)
+EH#0: try [G_M58508_IG06..G_M58508_IG20) handled by [G_M58508_IG21..G_M58508_IG23) (fault)
  
-9 (-1.77%) : 230068.dasm - System.Xml.Linq.Extensions+d__22`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
@@ -9,7 +9,7 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] ( 38, 80.50)     ref  ->  [ebp-0x1C]  do-not-enreg[H] this class-hnd EH-live single-def <System.Xml.Linq.Extensions+<GetDescendantNodes>d__22`1[System.__Canon]>
+;  V00 this         [V00,T00] ( 38, 80.50)     ref  ->  [ebp-0x18]  do-not-enreg[H] this class-hnd EH-live single-def <System.Xml.Linq.Extensions+<GetDescendantNodes>d__22`1[System.__Canon]>
 ;  V01 loc0         [V01,T08] (  5,  3   )   ubyte  ->  eax        
 ;* V02 loc1         [V02    ] (  0,  0   )     int  ->  zero-ref   
 ;  V03 loc2         [V03,T06] (  3,  6   )     ref  ->  eax         class-hnd <System.Xml.Linq.XContainer>
@@ -20,9 +20,9 @@
 ;  V08 tmp3         [V08,T05] (  4,  6.50)     ref  ->  ecx         class-hnd "Inline return value spill temp" <System.Xml.Linq.XNode>
 ;  V09 tmp4         [V09,T03] (  3, 12   )     ref  ->  eax         class-hnd "dup spill" <System.Xml.Linq.XNode>
 ;* V10 tmp5         [V10    ] (  0,  0   )     ref  ->  zero-ref   
-;  V11 EHSlots      [V11    ] (  1,  1   )  struct (16) [ebp-0x18]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V12 cse0         [V12,T02] (  3, 40   )     ref  ->  ecx         "CSE - aggressive"
-;  V13 cse1         [V13,T00] (  8, 84.50)     ref  ->  esi         "CSE - aggressive"
+;  V11 EHSlots      [V11    ] (  1,  1   )  struct (16) [ebp-0x14]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
+;  V12 cse0         [V12,T02] (  3, 40   )     ref  ->  eax         "CSE - aggressive"
+;  V13 cse1         [V13,T01] (  7, 82.50)     ref  ->  ecx         "CSE - aggressive"
 ;  V14 cse2         [V14,T10] (  3,  1.50)     ref  ->  ecx         "CSE - moderate"
 ;  V15 rat0         [V15,T07] (  3,  6   )     int  ->  ecx         "ReplaceWithLclVar is creating a new local variable"
 ;
@@ -31,15 +31,14 @@
 G_M13296_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
-       push     esi
        sub      esp, 24
        xor      eax, eax
-       mov      dword ptr [ebp-0x10], eax
-       mov      gword ptr [ebp-0x1C], ecx
+       mov      dword ptr [ebp-0x0C], eax
+       mov      gword ptr [ebp-0x18], ecx
        ; GC ptr vars +{V00}
-                     ;; size=15 bbWeight=1 PerfScore 4.75
-G_M13296_IG02:        ; bbWeight=1, gcVars=00000002 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       mov      eax, gword ptr [ebp-0x1C]
+                        ;; size=14 bbWeight=1 PerfScore 3.75
+G_M13296_IG02:        ; bbWeight=1, gcVars=00000001 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      eax, gword ptr [ebp-0x18]
        ; gcrRegs +[eax]
        mov      ecx, dword ptr [eax+0x1C]
        cmp      ecx, 2
@@ -53,23 +52,23 @@ G_M13296_IG02:        ; bbWeight=1, gcVars=00000002 {V00}, gcrefRegs=00000000 {}
                        ;; size=30 bbWeight=1 PerfScore 10.00
 G_M13296_IG03:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        xor      eax, eax
-       jmp      G_M13296_IG27
+       jmp      G_M13296_IG25
                      ;; size=7 bbWeight=0.50 PerfScore 1.12
 G_M13296_IG04:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      ecx, gword ptr [ebp-0x1C]
+       mov      ecx, gword ptr [ebp-0x18]
        ; gcrRegs +[ecx]
        mov      dword ptr [ecx+0x1C], -1
-       mov      ecx, gword ptr [ebp-0x1C]
+       mov      ecx, gword ptr [ebp-0x18]
        mov      ecx, dword ptr [ecx]
        ; gcrRegs -[ecx]
        call     [CORINFO_HELP_READYTORUN_GENERIC_HANDLE]
-       mov      ecx, gword ptr [ebp-0x1C]
+       mov      ecx, gword ptr [ebp-0x18]
        ; gcrRegs +[ecx]
        mov      ecx, gword ptr [ecx+0x08]
        nop      
        call     [eax]
        ; gcrRegs -[ecx] +[eax]
-       mov      edx, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
        lea      edx, bword ptr [edx+0x10]
        ; gcrRegs -[edx]
@@ -77,29 +76,29 @@ G_M13296_IG04:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
        call     [CORINFO_HELP_ASSIGN_REF_EAX]
        ; gcrRegs -[eax]
        ; byrRegs -[edx]
-       mov      ecx, gword ptr [ebp-0x1C]
+       mov      ecx, gword ptr [ebp-0x18]
        ; gcrRegs +[ecx]
        mov      dword ptr [ecx+0x1C], -3
-       mov      ecx, gword ptr [ebp-0x1C]
+       mov      ecx, gword ptr [ebp-0x18]
        mov      ecx, gword ptr [ecx+0x10]
        call     [<unknown method>]
        ; gcrRegs -[ecx]
        test     eax, eax
-       je       G_M13296_IG23
+       je       G_M13296_IG21
                      ;; size=74 bbWeight=0.50 PerfScore 14.00
 G_M13296_IG05:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, gword ptr [ebp-0x1C]
+       mov      ecx, gword ptr [ebp-0x18]
        ; gcrRegs +[ecx]
        mov      ecx, dword ptr [ecx]
        ; gcrRegs -[ecx]
        call     [CORINFO_HELP_READYTORUN_GENERIC_HANDLE]
-       mov      ecx, gword ptr [ebp-0x1C]
+       mov      ecx, gword ptr [ebp-0x18]
        ; gcrRegs +[ecx]
        mov      ecx, gword ptr [ecx+0x10]
        nop      
        call     [eax]
        ; gcrRegs -[ecx] +[eax]
-       mov      edx, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
        lea      edx, bword ptr [edx+0x14]
        ; gcrRegs -[edx]
@@ -107,46 +106,46 @@ G_M13296_IG05:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [CORINFO_HELP_ASSIGN_REF_EAX]
        ; gcrRegs -[eax]
        ; byrRegs -[edx]
-       mov      edx, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
        cmp      gword ptr [edx+0x14], 0
-       je       G_M13296_IG22
-       mov      edx, gword ptr [ebp-0x1C]
+       je       G_M13296_IG20
+       mov      edx, gword ptr [ebp-0x18]
        cmp      byte  ptr [edx+0x24], 0
        je       SHORT G_M13296_IG08
                        ;; size=56 bbWeight=2 PerfScore 53.50
 G_M13296_IG06:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edx]
-       mov      edx, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
        mov      ecx, gword ptr [edx+0x14]
        ; gcrRegs +[ecx]
-       mov      edx, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [ebp-0x18]
        lea      edx, bword ptr [edx+0x04]
        ; gcrRegs -[edx]
        ; byrRegs +[edx]
        call     [CORINFO_HELP_ASSIGN_REF_ECX]
        ; gcrRegs -[ecx]
        ; byrRegs -[edx]
-       mov      edx, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
        mov      dword ptr [edx+0x1C], 1
        mov      eax, 1
-       jmp      G_M13296_IG27
+       jmp      G_M13296_IG25
                        ;; size=38 bbWeight=0.50 PerfScore 5.88
 G_M13296_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edx]
-       mov      edx, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
        mov      dword ptr [edx+0x1C], -3
                        ;; size=10 bbWeight=0.50 PerfScore 1.00
 G_M13296_IG08:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edx]
-       mov      edx, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
        mov      ecx, gword ptr [edx+0x14]
        ; gcrRegs +[ecx]
-       mov      edx, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [ebp-0x18]
        lea      edx, bword ptr [edx+0x18]
        ; gcrRegs -[edx]
        ; byrRegs +[edx]
@@ -155,7 +154,7 @@ G_M13296_IG08:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; byrRegs -[edx]
                        ;; size=18 bbWeight=2 PerfScore 15.00
 G_M13296_IG09:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, gword ptr [ebp-0x1C]
+       mov      ecx, gword ptr [ebp-0x18]
        ; gcrRegs +[ecx]
        mov      ecx, gword ptr [ecx+0x18]
        call     [CORINFO_HELP_READYTORUN_ISINSTANCEOF]
@@ -183,7 +182,7 @@ G_M13296_IG11:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        je       SHORT G_M13296_IG14
                        ;; size=4 bbWeight=2 PerfScore 2.50
 G_M13296_IG12:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
        lea      edx, bword ptr [edx+0x18]
        ; gcrRegs -[edx]
@@ -191,152 +190,143 @@ G_M13296_IG12:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000
        call     [CORINFO_HELP_ASSIGN_REF_ECX]
        ; gcrRegs -[ecx]
        ; byrRegs -[edx]
-       jmp      SHORT G_M13296_IG19
+       jmp      SHORT G_M13296_IG17
                       ;; size=14 bbWeight=0.50 PerfScore 3.25
-G_M13296_IG13:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
-       ; gcrRegs +[ecx]
-       mov      edx, gword ptr [ebp-0x1C]
+G_M13296_IG13:        ; bbWeight=8, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[eax]
+       mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
        lea      edx, bword ptr [edx+0x18]
        ; gcrRegs -[edx]
        ; byrRegs +[edx]
-       call     [CORINFO_HELP_ASSIGN_REF_ECX]
-       ; gcrRegs -[ecx]
+       call     [CORINFO_HELP_ASSIGN_REF_EAX]
+       ; gcrRegs -[eax]
        ; byrRegs -[edx]
                        ;; size=12 bbWeight=8 PerfScore 36.00
 G_M13296_IG14:        ; bbWeight=16, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
-       mov      esi, gword ptr [edx+0x18]
-       ; gcrRegs +[esi]
-       test     esi, esi
-       je       SHORT G_M13296_IG16
-       mov      edx, gword ptr [ebp-0x1C]
-       cmp      esi, gword ptr [edx+0x14]
-       je       SHORT G_M13296_IG17
-       mov      ecx, gword ptr [esi+0x04]
+       mov      ecx, gword ptr [edx+0x18]
        ; gcrRegs +[ecx]
-       cmp      esi, gword ptr [ecx+0x10]
+       test     ecx, ecx
+       je       SHORT G_M13296_IG19
+       mov      edx, gword ptr [ebp-0x18]
+       cmp      ecx, gword ptr [edx+0x14]
+       je       SHORT G_M13296_IG15
+       mov      eax, gword ptr [ecx+0x04]
+       ; gcrRegs +[eax]
+       cmp      ecx, gword ptr [eax+0x10]
        je       SHORT G_M13296_IG13
                        ;; size=26 bbWeight=16 PerfScore 244.00
-G_M13296_IG15:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx edx]
-       jmp      SHORT G_M13296_IG17
-                       ;; size=2 bbWeight=2 PerfScore 4.00
-G_M13296_IG16:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       test     esi, esi
-       je       SHORT G_M13296_IG21
-                       ;; size=4 bbWeight=2 PerfScore 2.50
-G_M13296_IG17:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, gword ptr [ebp-0x1C]
+G_M13296_IG15:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax edx]
+       mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
-       cmp      esi, gword ptr [edx+0x14]
-       je       SHORT G_M13296_IG21
+       cmp      ecx, gword ptr [edx+0x14]
+       je       SHORT G_M13296_IG19
                         ;; size=8 bbWeight=2 PerfScore 10.00
...
  
-13 (-1.62%) : 23518.dasm - System.Diagnostics.Tracing.CounterGroup:PollForValues() (FullOpts)
@@ -9,24 +9,24 @@
 ; 0 inlinees with PGO data; 24 single block inlinees; 14 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T34] (  3, 24   )     ref  ->  [ebp-0x7C]  class-hnd <<unknown class>>
+;  V00 loc0         [V00,T35] (  3, 24   )     ref  ->  [ebp-0x78]  class-hnd <<unknown class>>
 ;  V01 loc1         [V01,T00] ( 15,333   )     ref  ->  esi         class-hnd exact single-def <<unknown class>>
 ;  V02 loc2         [V02,T12] (  9, 84   )     int  ->  ebx        
-;  V03 loc3         [V03,T36] (  4, 20   )     ref  ->  [ebp-0x80]  do-not-enreg[Z] class-hnd EH-live <System.Object>
+;  V03 loc3         [V03,T37] (  4, 20   )     ref  ->  [ebp-0x7C]  do-not-enreg[Z] class-hnd EH-live <System.Object>
 ;  V04 loc4         [V04    ] (  6, 40   )   ubyte  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V05 loc5         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.CounterGroup]>
 ;* V06 loc6         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Diagnostics.Tracing.CounterGroup>
 ;  V07 loc7         [V07    ] (  5,128   )  struct ( 8) [ebp-0x2C]  do-not-enreg[XS] addr-exposed <System.DateTime>
-;  V08 loc8         [V08,T24] (  3, 48   )     int  ->  ecx        
+;  V08 loc8         [V08,T25] (  3, 48   )     int  ->  ecx        
 ;  V09 loc9         [V09    ] (  2, 32   )  struct ( 8) [ebp-0x34]  do-not-enreg[XS] addr-exposed ld-addr-op <System.TimeSpan>
 ;* V10 loc10        [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.CounterGroup]>
 ;* V11 loc11        [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Diagnostics.Tracing.CounterGroup>
-;  V12 tmp0         [V12,T46] (  3,  6   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V12 tmp0         [V12,T47] (  3,  6   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V13 tmp1         [V13    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.TimeSpan>
 ;* V14 tmp2         [V14    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.DateTime>
 ;* V15 tmp3         [V15    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.DateTime>
-;  V16 tmp4         [V16,T31] (  2, 32   )   ubyte  ->  ecx         "Inlining Arg"
-;  V17 tmp5         [V17,T30] (  2, 32   )     ref  ->  edx         class-hnd "Inlining Arg" <<unknown class>>
+;  V16 tmp4         [V16,T32] (  2, 32   )   ubyte  ->  ecx         "Inlining Arg"
+;  V17 tmp5         [V17,T31] (  2, 32   )     ref  ->  edx         class-hnd "Inlining Arg" <<unknown class>>
 ;* V18 tmp6         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.CounterGroup]>
 ;* V19 tmp7         [V19    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V20 tmp8         [V20    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
@@ -37,70 +37,71 @@
 ;* V25 tmp13        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V26 tmp14        [V26    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V27 tmp15        [V27    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
-;  V28 tmp16        [V28,T23] (  3, 48   )     ref  ->  edx         class-hnd exact "Inline stloc first use temp" <<unknown class>>
-;  V29 tmp17        [V29,T18] (  4, 64   )     int  ->  ecx         "Inline stloc first use temp"
+;  V28 tmp16        [V28,T24] (  3, 48   )     ref  ->  edx         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V29 tmp17        [V29,T19] (  4, 64   )     int  ->  ecx         "Inline stloc first use temp"
 ;* V30 tmp18        [V30    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V31 tmp19        [V31    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.DateTime>
 ;* V32 tmp20        [V32    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
 ;* V33 tmp21        [V33    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.TimeSpan>
 ;* V34 tmp22        [V34    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V35 tmp23        [V35,T19] (  4, 64   )     int  ->  ecx         "Inline return value spill temp"
-;  V36 tmp24        [V36,T25] (  3, 48   )     int  ->  ecx         "Inline return value spill temp"
-;* V37 tmp25        [V37,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V35 tmp23        [V35,T20] (  4, 64   )     int  ->  ecx         "Inline return value spill temp"
+;  V36 tmp24        [V36,T26] (  3, 48   )     int  ->  ecx         "Inline return value spill temp"
+;* V37 tmp25        [V37,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V38 tmp26        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;* V39 tmp27        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.CounterGroup]>
-;* V40 tmp28        [V40,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V40 tmp28        [V40,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V41 tmp29        [V41    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V42 tmp30        [V42,T17] (  3, 68   )     int  ->  edx         "Inline stloc first use temp"
+;  V42 tmp30        [V42,T18] (  3, 68   )     int  ->  eax         "Inline stloc first use temp"
 ;* V43 tmp31        [V43    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V44 tmp32        [V44,T42] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V45 tmp33        [V45,T03] (  5,168   )     ref  ->  [ebp-0x84]  spill-single-def "field V05._list (fldOffset=0x0)" P-INDEP
-;  V46 tmp34        [V46,T07] (  5,112   )     ref  ->  edi         "field V05._current (fldOffset=0x4)" P-INDEP
+;* V44 tmp32        [V44,T43] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;  V45 tmp33        [V45,T07] (  4,136   )     ref  ->  [ebp-0x80]  spill-single-def "field V05._list (fldOffset=0x0)" P-INDEP
+;  V46 tmp34        [V46,T06] (  5,112   )     ref  ->  edi         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V47 tmp35        [V47,T01] (  6,168   )     int  ->  [ebp-0x38]  "field V05._index (fldOffset=0x8)" P-INDEP
-;  V48 tmp36        [V48,T10] (  3,104   )     int  ->  [ebp-0x3C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
+;  V48 tmp36        [V48,T16] (  2, 72   )     int  ->  [ebp-0x3C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
 ;  V49 tmp37        [V49    ] (  5,128   )    long  ->  [ebp-0x2C]  do-not-enreg[X] addr-exposed "field V07._dateData (fldOffset=0x0)" P-DEP
 ;  V50 tmp38        [V50    ] (  2, 32   )    long  ->  [ebp-0x34]  do-not-enreg[X] addr-exposed "field V09._ticks (fldOffset=0x0)" P-DEP
-;* V51 tmp39        [V51,T43] (  0,  0   )     ref  ->  zero-ref    "field V10._list (fldOffset=0x0)" P-INDEP
-;  V52 tmp40        [V52,T13] (  2, 48   )     ref  ->  edx         "field V10._current (fldOffset=0x4)" P-INDEP
+;* V51 tmp39        [V51,T44] (  0,  0   )     ref  ->  zero-ref    "field V10._list (fldOffset=0x0)" P-INDEP
+;  V52 tmp40        [V52,T13] (  2, 48   )     ref  ->  eax         "field V10._current (fldOffset=0x4)" P-INDEP
 ;  V53 tmp41        [V53,T02] (  6,168   )     int  ->  [ebp-0x40]  "field V10._index (fldOffset=0x8)" P-INDEP
-;  V54 tmp42        [V54,T16] (  2, 72   )     int  ->  [ebp-0x44]  spill-single-def "field V10._version (fldOffset=0xc)" P-INDEP
-;* V55 tmp43        [V55,T32] (  0,  0   )    long  ->  zero-ref    "field V13._ticks (fldOffset=0x0)" P-INDEP
-;  V56 tmp44        [V56,T20] (  3, 64   )    long  ->  [ebp-0x4C]  do-not-enreg[F] "field V14._dateData (fldOffset=0x0)" P-INDEP
+;  V54 tmp42        [V54,T17] (  2, 72   )     int  ->  edi         "field V10._version (fldOffset=0xc)" P-INDEP
+;* V55 tmp43        [V55,T33] (  0,  0   )    long  ->  zero-ref    "field V13._ticks (fldOffset=0x0)" P-INDEP
+;  V56 tmp44        [V56,T21] (  3, 64   )    long  ->  [ebp-0x48]  do-not-enreg[F] "field V14._dateData (fldOffset=0x0)" P-INDEP
 ;* V57 tmp45        [V57    ] (  0,  0   )    long  ->  zero-ref    "field V15._dateData (fldOffset=0x0)" P-INDEP
-;  V58 tmp46        [V58,T35] (  3, 24   )     ref  ->  edx         "field V18._list (fldOffset=0x0)" P-INDEP
+;  V58 tmp46        [V58,T36] (  3, 24   )     ref  ->  edx         "field V18._list (fldOffset=0x0)" P-INDEP
 ;* V59 tmp47        [V59    ] (  0,  0   )     ref  ->  zero-ref    "field V18._current (fldOffset=0x4)" P-INDEP
-;* V60 tmp48        [V60,T44] (  0,  0   )     int  ->  zero-ref    "field V18._index (fldOffset=0x8)" P-INDEP
-;  V61 tmp49        [V61,T39] (  2, 16   )     int  ->  [ebp-0x50]  spill-single-def "field V18._version (fldOffset=0xc)" P-INDEP
-;  V62 tmp50        [V62,T08] (  5,128   )    long  ->  [ebp-0x58]  do-not-enreg[F] "field V20._dateData (fldOffset=0x0)" P-INDEP
+;* V60 tmp48        [V60,T45] (  0,  0   )     int  ->  zero-ref    "field V18._index (fldOffset=0x8)" P-INDEP
+;  V61 tmp49        [V61,T40] (  2, 16   )     int  ->  [ebp-0x4C]  spill-single-def "field V18._version (fldOffset=0xc)" P-INDEP
+;  V62 tmp50        [V62,T08] (  5,128   )    long  ->  [ebp-0x54]  do-not-enreg[F] "field V20._dateData (fldOffset=0x0)" P-INDEP
 ;* V63 tmp51        [V63    ] (  0,  0   )    long  ->  zero-ref    "field V21._ticks (fldOffset=0x0)" P-INDEP
-;  V64 tmp52        [V64,T26] (  3, 48   )    long  ->  [ebp-0x60]  do-not-enreg[F] "field V23._dateData (fldOffset=0x0)" P-INDEP
+;  V64 tmp52        [V64,T27] (  3, 48   )    long  ->  [ebp-0x5C]  do-not-enreg[F] "field V23._dateData (fldOffset=0x0)" P-INDEP
 ;* V65 tmp53        [V65    ] (  0,  0   )    long  ->  zero-ref    "field V25._dateData (fldOffset=0x0)" P-INDEP
 ;* V66 tmp54        [V66    ] (  0,  0   )    long  ->  zero-ref    "field V26._dateData (fldOffset=0x0)" P-INDEP
-;  V67 tmp55        [V67,T27] (  3, 48   )    long  ->  [ebp-0x68]  do-not-enreg[F] "field V30._dateData (fldOffset=0x0)" P-INDEP
-;  V68 tmp56        [V68,T28] (  3, 48   )    long  ->  [ebp-0x70]  do-not-enreg[F] "field V31._dateData (fldOffset=0x0)" P-INDEP
-;  V69 tmp57        [V69,T29] (  3, 48   )    long  ->  [ebp-0x78]  do-not-enreg[F] "field V33._ticks (fldOffset=0x0)" P-INDEP
-;  V70 tmp58        [V70,T37] (  2, 16   )     ref  ->  ecx         "field V39._list (fldOffset=0x0)" P-INDEP
+;  V67 tmp55        [V67,T28] (  3, 48   )    long  ->  [ebp-0x64]  do-not-enreg[F] "field V30._dateData (fldOffset=0x0)" P-INDEP
+;  V68 tmp56        [V68,T29] (  3, 48   )    long  ->  [ebp-0x6C]  do-not-enreg[F] "field V31._dateData (fldOffset=0x0)" P-INDEP
+;  V69 tmp57        [V69,T30] (  3, 48   )    long  ->  [ebp-0x74]  do-not-enreg[F] "field V33._ticks (fldOffset=0x0)" P-INDEP
+;  V70 tmp58        [V70,T38] (  2, 16   )     ref  ->  ecx         "field V39._list (fldOffset=0x0)" P-INDEP
 ;* V71 tmp59        [V71    ] (  0,  0   )     ref  ->  zero-ref    "field V39._current (fldOffset=0x4)" P-INDEP
-;* V72 tmp60        [V72,T45] (  0,  0   )     int  ->  zero-ref    "field V39._index (fldOffset=0x8)" P-INDEP
-;  V73 tmp61        [V73,T40] (  2, 16   )     int  ->  eax         "field V39._version (fldOffset=0xc)" P-INDEP
-;  V74 tmp62        [V74,T04] (  3,192   )     ref  ->  edi         "arr expr"
-;  V75 tmp63        [V75,T05] (  3,192   )     ref  ->  edx         "arr expr"
-;  V76 tmp64        [V76,T38] (  2, 16   )     ref  ->  ecx         "argument with side effect"
+;* V72 tmp60        [V72,T46] (  0,  0   )     int  ->  zero-ref    "field V39._index (fldOffset=0x8)" P-INDEP
+;  V73 tmp61        [V73,T41] (  2, 16   )     int  ->  edi         "field V39._version (fldOffset=0xc)" P-INDEP
+;  V74 tmp62        [V74,T03] (  3,192   )     ref  ->  edi         "arr expr"
+;  V75 tmp63        [V75,T04] (  3,192   )     ref  ->  eax         "arr expr"
+;  V76 tmp64        [V76,T39] (  2, 16   )     ref  ->  ecx         "argument with side effect"
 ;  V77 EHSlots      [V77    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V78 cse0         [V78,T33] (  4, 25   )   byref  ->  [ebp-0x88]  spill-single-def hoist "CSE - conservative"
-;  V79 cse1         [V79,T41] (  3, 12   )     ref  ->  edx         "CSE - conservative"
-;  V80 cse2         [V80,T09] (  3, 96   )     int  ->  edx         "CSE - moderate"
-;* V81 rat0         [V81    ] (  0,  0   )     int  ->  zero-ref    "field V19.lo (fldOffset=0x0)" P-INDEP
-;* V82 rat1         [V82    ] (  0,  0   )     int  ->  zero-ref    "field V19.hi (fldOffset=0x4)" P-INDEP
-;  V83 rat2         [V83,T14] (  3, 80   )     int  ->  edx         "field V22.lo (fldOffset=0x0)" P-INDEP
-;  V84 rat3         [V84,T15] (  3, 80   )     int  ->  ecx         "field V22.hi (fldOffset=0x4)" P-INDEP
-;  V85 rat4         [V85,T06] (  3,192   )   byref  ->  edx         "ReplaceWithLclVar is creating a new local variable"
-;  V86 rat5         [V86,T11] (  3, 96   )   byref  ->  edi         "ReplaceWithLclVar is creating a new local variable"
-;  TEMP_02                                     int  ->  [ebp-0x8C]
-;  TEMP_01                                     int  ->  [ebp-0x90]
-;  TEMP_03                                  double  ->  [ebp-0x98]
+;  V78 cse0         [V78,T34] (  4, 25   )   byref  ->  [ebp-0x84]  spill-single-def hoist "CSE - conservative"
+;  V79 cse1         [V79,T42] (  3, 12   )     ref  ->  edx         "CSE - conservative"
+;  V80 cse2         [V80,T09] (  3, 96   )     int  ->  eax         "CSE - moderate"
+;  V81 cse3         [V81,T11] (  2, 64   )     int  ->  edi         "CSE - moderate"
+;* V82 rat0         [V82    ] (  0,  0   )     int  ->  zero-ref    "field V19.lo (fldOffset=0x0)" P-INDEP
+;* V83 rat1         [V83    ] (  0,  0   )     int  ->  zero-ref    "field V19.hi (fldOffset=0x4)" P-INDEP
+;  V84 rat2         [V84,T14] (  3, 80   )     int  ->  edx         "field V22.lo (fldOffset=0x0)" P-INDEP
+;  V85 rat3         [V85,T15] (  3, 80   )     int  ->  ecx         "field V22.hi (fldOffset=0x4)" P-INDEP
+;  V86 rat4         [V86,T05] (  3,192   )   byref  ->  edx         "ReplaceWithLclVar is creating a new local variable"
+;  V87 rat5         [V87,T10] (  3, 96   )   byref  ->  edi         "ReplaceWithLclVar is creating a new local variable"
+;  TEMP_02                                     int  ->  [ebp-0x88]
+;  TEMP_01                                     int  ->  [ebp-0x8C]
+;  TEMP_03                                  double  ->  [ebp-0x94]
 ;
-; Lcl frame size = 140
+; Lcl frame size = 136
 
 G_M58893_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -108,7 +109,7 @@ G_M58893_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 140
+       sub      esp, 136
        xor      eax, eax
        mov      dword ptr [ebp-0x18], eax
                        ;; size=17 bbWeight=1 PerfScore 5.75
@@ -132,25 +133,25 @@ G_M58893_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; byrRegs +[eax]
        mov      edi, eax
        ; byrRegs +[edi]
-       mov      bword ptr [ebp-0x88], edi
+       mov      bword ptr [ebp-0x84], edi
        ; GC ptr vars +{V78}
                        ;; size=39 bbWeight=1 PerfScore 16.00
-G_M58893_IG03:        ; bbWeight=8, gcVars=0000000200000000 {V78}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref
+G_M58893_IG03:        ; bbWeight=8, gcVars=0000000400000000 {V78}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref
        ; byrRegs -[eax]
        mov      ebx, 0xD1FFAB1E
        mov      edx, gword ptr [edi+0x0AE0]
        ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x80], edx
+       mov      gword ptr [ebp-0x7C], edx
        ; GC ptr vars +{V03}
        xor      edx, edx
        ; gcrRegs -[edx]
        mov      dword ptr [ebp-0x24], edx
                        ;; size=19 bbWeight=8 PerfScore 36.00
-G_M58893_IG04:        ; bbWeight=8, gcVars=0000001200000000 {V03 V78}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
+G_M58893_IG04:        ; bbWeight=8, gcVars=0000002400000000 {V03 V78}, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, gcvars, byref, isz
        cmp      byte  ptr [ebp-0x24], 0
        jne      G_M58893_IG13
        lea      edx, [ebp-0x24]
-       mov      ecx, gword ptr [ebp-0x80]
+       mov      ecx, gword ptr [ebp-0x7C]
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx]
@@ -170,31 +171,32 @@ G_M58893_IG05:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000080
 G_M58893_IG06:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000080 {edi}, byref
        mov      eax, gword ptr [edi+0x0AEC]
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x7C], eax
+       mov      gword ptr [ebp-0x78], eax
        ; GC ptr vars +{V00}
        mov      edx, gword ptr [edi+0x0AF0]
        ; gcrRegs +[edx]
        mov      ecx, dword ptr [edx+0x0C]
-       mov      dword ptr [ebp-0x50], ecx
-       mov      gword ptr [ebp-0x84], edx
+       mov      dword ptr [ebp-0x4C], ecx
+       mov      gword ptr [ebp-0x80], edx
        ; GC ptr vars +{V45}
        xor      ecx, ecx
-       mov      eax, dword ptr [ebp-0x50]
+       mov      eax, dword ptr [ebp-0x4C]
        ; gcrRegs -[eax]
        mov      dword ptr [ebp-0x3C], eax
-                        ;; size=35 bbWeight=8 PerfScore 90.00
-G_M58893_IG07:        ; bbWeight=64, gcVars=0000001600000008 {V00 V03 V45 V78}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, gcvars, byref
+                       ;; size=32 bbWeight=8 PerfScore 90.00
+G_M58893_IG07:        ; bbWeight=64, gcVars=0000002C00000080 {V00 V03 V45 V78}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, gcvars, byref
        ; byrRegs -[edi]
        cmp      eax, dword ptr [edx+0x0C]
-       jne      G_M58893_IG17
+       jne      G_M58893_IG18
                         ;; size=9 bbWeight=64 PerfScore 256.00
 G_M58893_IG08:        ; bbWeight=32, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
-       cmp      ecx, dword ptr [edx+0x08]
-       jae      G_M58893_IG21
+       mov      edi, dword ptr [edx+0x08]
+       cmp      ecx, edi
+       jae      G_M58893_IG20
        mov      edi, gword ptr [edx+0x04]
        ; gcrRegs +[edi]
        cmp      ecx, dword ptr [edi+0x04]
-       jae      G_M58893_IG18
+       jae      G_M58893_IG17
        mov      edi, gword ptr [edi+4*ecx+0x08]
        inc      ecx
        mov      dword ptr [ebp-0x38], ecx
@@ -206,45 +208,45 @@ G_M58893_IG08:        ; bbWeight=32, gcrefRegs=00000044 {edx esi}, byrefRegs=000
        mov      ecx, dword ptr [edx]
        mov      edx, dword ptr [edx+0x04]
        ; byrRegs -[edx]
-       mov      dword ptr [ebp-0x4C], ecx
-       mov      dword ptr [ebp-0x48], edx
+       mov      dword ptr [ebp-0x48], ecx
+       mov      dword ptr [ebp-0x44], edx
        mov      edx, dword ptr [ebp-0x2C]
        mov      ecx, dword ptr [ebp-0x28]
-       mov      dword ptr [ebp-0x58], edx
-       mov      dword ptr [ebp-0x54], ecx
-       mov      edx, dword ptr [ebp-0x58]
-       mov      ecx, dword ptr [ebp-0x54]
+       mov      dword ptr [ebp-0x54], edx
+       mov      dword ptr [ebp-0x50], ecx
+       mov      edx, dword ptr [ebp-0x54]
+       mov      ecx, dword ptr [ebp-0x50]
        and      ecx, 0xD1FFAB1E
        add      edx, 0x2710
        adc      ecx, 0
...
  
+3 (+0.43%) : 23434.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)
@@ -9,58 +9,59 @@
 ; 0 inlinees with PGO data; 12 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 loc0         [V00,T18] (  8, 260   )     ref  ->  [ebp-0x54]  class-hnd exact spill-single-def <<unknown class>>
-;  V01 loc1         [V01,T00] ( 16,1249   )     ref  ->  edi         class-hnd single-def <<unknown class>>
+;  V00 loc0         [V00,T19] (  8, 260   )     ref  ->  [ebp-0x54]  class-hnd exact spill-single-def <<unknown class>>
+;  V01 loc1         [V01,T01] ( 15,1121   )     ref  ->  edi         class-hnd single-def <<unknown class>>
 ;  V02 loc2         [V02,T06] (  9, 641   )     ref  ->  esi         class-hnd single-def <<unknown class>>
 ;  V03 loc3         [V03,T09] (  8, 392   )     int  ->  [ebp-0x24] 
-;  V04 loc4         [V04,T40] (  2,   0   )     ref  ->  [ebp-0x58]  class-hnd exact EH-live single-def <<unknown class>>
+;  V04 loc4         [V04,T41] (  2,   0   )     ref  ->  [ebp-0x58]  class-hnd exact EH-live single-def <<unknown class>>
 ;  V05 loc5         [V05    ] (  6,   5   )   ubyte  ->  [ebp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V06 loc6         [V06    ] (  1,  64   )    long  ->  [ebp-0x30]  multireg-ret
-;  V07 loc7         [V07,T30] (  3,  80   )     ref  ->  [ebp-0x5C]  do-not-enreg[Z] class-hnd exact EH-live <<unknown class>>
+;  V07 loc7         [V07,T31] (  3,  80   )     ref  ->  [ebp-0x5C]  do-not-enreg[Z] class-hnd exact EH-live <<unknown class>>
 ;  V08 loc8         [V08    ] (  6, 320   )   ubyte  ->  [ebp-0x34]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V09 loc9         [V09,T01] ( 12,1152   )     int  ->  [ebp-0x38] 
+;  V09 loc9         [V09,T00] ( 12,1152   )     int  ->  [ebp-0x38] 
 ;  V10 loc10        [V10,T08] (  5, 448   )     ref  ->  [ebp-0x60]  class-hnd exact spill-single-def <System.Threading.TimerQueue>
 ;* V11 loc11        [V11    ] (  0,   0   )    long  ->  zero-ref   
 ;  V12 loc12        [V12,T10] (  6, 384   )     int  ->  ebx        
 ;* V13 loc13        [V13    ] (  0,   0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Threading.TimerQueue]>
 ;* V14 loc14        [V14    ] (  0,   0   )     ref  ->  zero-ref    class-hnd exact <System.Threading.TimerQueue>
-;  V15 tmp0         [V15,T39] (  2,   4   )   ubyte  ->  ecx         "Inlining Arg"
+;  V15 tmp0         [V15,T40] (  2,   4   )   ubyte  ->  ecx         "Inlining Arg"
 ;* V16 tmp1         [V16    ] (  0,   0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V17 tmp2         [V17,T33] (  0,   0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V18 tmp3         [V18,T23] (  2, 256   )   ubyte  ->  ecx         "Inlining Arg"
-;  V19 tmp4         [V19,T25] (  3, 192   )     ref  ->  [ebp-0x64]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
-;  V20 tmp5         [V20,T19] (  4, 256   )     int  ->  ebx         "Inline stloc first use temp"
-;  V21 tmp6         [V21,T21] (  2, 256   )     ref  ->  ecx         class-hnd exact "Inlining Arg" <System.Threading.TimerQueue>
+;* V17 tmp2         [V17,T34] (  0,   0   )     int  ->  zero-ref    "Inline return value spill temp"
+;  V18 tmp3         [V18,T24] (  2, 256   )   ubyte  ->  ecx         "Inlining Arg"
+;  V19 tmp4         [V19,T26] (  3, 192   )     ref  ->  [ebp-0x64]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V20 tmp5         [V20,T20] (  4, 256   )     int  ->  ebx         "Inline stloc first use temp"
+;  V21 tmp6         [V21,T22] (  2, 256   )     ref  ->  ecx         class-hnd exact "Inlining Arg" <System.Threading.TimerQueue>
 ;* V22 tmp7         [V22    ] (  0,   0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Threading.TimerQueue]>
-;* V23 tmp8         [V23,T24] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V23 tmp8         [V23,T25] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V24 tmp9         [V24    ] (  0,   0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V25 tmp10        [V25,T17] (  3, 272   )     int  ->  ebx         "Inline stloc first use temp"
-;* V26 tmp11        [V26,T36] (  0,   0   )     ref  ->  zero-ref    "field V13._list (fldOffset=0x0)" P-INDEP
-;  V27 tmp12        [V27,T15] (  2, 192   )     ref  ->  ebx         "field V13._current (fldOffset=0x4)" P-INDEP
+;  V25 tmp10        [V25,T18] (  3, 272   )     int  ->  eax         "Inline stloc first use temp"
+;* V26 tmp11        [V26,T37] (  0,   0   )     ref  ->  zero-ref    "field V13._list (fldOffset=0x0)" P-INDEP
+;  V27 tmp12        [V27,T16] (  2, 192   )     ref  ->  ebx         "field V13._current (fldOffset=0x4)" P-INDEP
 ;  V28 tmp13        [V28,T02] (  6, 656   )     int  ->  [ebp-0x3C]  "field V13._index (fldOffset=0x8)" P-INDEP
-;  V29 tmp14        [V29,T29] (  2, 144   )     int  ->  [ebp-0x40]  spill-single-def "field V13._version (fldOffset=0xc)" P-INDEP
-;  V30 tmp15        [V30,T34] (  2,  32   )     ref  ->  eax         "field V22._list (fldOffset=0x0)" P-INDEP
+;  V29 tmp14        [V29,T30] (  2, 144   )     int  ->  [ebp-0x40]  spill-single-def "field V13._version (fldOffset=0xc)" P-INDEP
+;  V30 tmp15        [V30,T35] (  2,  32   )     ref  ->  eax         "field V22._list (fldOffset=0x0)" P-INDEP
 ;* V31 tmp16        [V31    ] (  0,   0   )     ref  ->  zero-ref    "field V22._current (fldOffset=0x4)" P-INDEP
-;* V32 tmp17        [V32,T37] (  0,   0   )     int  ->  zero-ref    "field V22._index (fldOffset=0x8)" P-INDEP
-;  V33 tmp18        [V33,T35] (  2,  32   )     int  ->  eax         "field V22._version (fldOffset=0xc)" P-INDEP
+;* V32 tmp17        [V32,T38] (  0,   0   )     int  ->  zero-ref    "field V22._index (fldOffset=0x8)" P-INDEP
+;  V33 tmp18        [V33,T36] (  2,  32   )     int  ->  eax         "field V22._version (fldOffset=0xc)" P-INDEP
 ;  V34 tmp19        [V34,T03] (  3, 768   )     ref  ->  edx         "arr expr"
 ;  V35 tmp20        [V35,T12] (  3, 384   )     ref  ->  ecx         "arr expr"
 ;  V36 tmp21        [V36,T13] (  3, 384   )     ref  ->  edx         "arr expr"
-;  V37 tmp22        [V37,T04] (  3, 768   )     ref  ->  ebx         "arr expr"
-;  V38 tmp23        [V38,T22] (  2, 256   )     ref  ->  ecx         "argument with side effect"
-;  V39 tmp24        [V39,T31] (  2,  64   )     ref  ->  ecx         "argument with side effect"
+;  V37 tmp22        [V37,T04] (  3, 768   )     ref  ->  eax         "arr expr"
+;  V38 tmp23        [V38,T23] (  2, 256   )     ref  ->  ecx         "argument with side effect"
+;  V39 tmp24        [V39,T32] (  2,  64   )     ref  ->  ecx         "argument with side effect"
 ;  V40 EHSlots      [V40    ] (  1,   1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V41 cse0         [V41,T38] (  4,   4   )   byref  ->  esi         "CSE - conservative"
-;  V42 cse1         [V42,T32] (  6,  51   )     ref  ->  edx         multi-def "CSE - conservative"
-;  V43 cse2         [V43,T07] (  3, 384   )     int  ->  ebx         "CSE - moderate"
-;  V44 cse3         [V44,T20] (  4, 256   )     int  ->  edx         "CSE - conservative"
-;  V45 cse4         [V45,T26] (  3, 192   )     ref  ->  [ebp-0x68]  spill-single-def "CSE - conservative"
-;  V46 rat0         [V46,T27] (  2, 192   )     int  ->  [ebp-0x44]  spill-single-def "field V06.lo (fldOffset=0x0)" P-INDEP
-;  V47 rat1         [V47,T28] (  2, 192   )     int  ->  [ebp-0x48]  spill-single-def "field V06.hi (fldOffset=0x4)" P-INDEP
-;  V48 rat2         [V48,T11] (  4, 384   )     int  ->  ebx         "field V11.lo (fldOffset=0x0)" P-INDEP
-;  V49 rat3         [V49,T16] (  3, 320   )     int  ->  [ebp-0x4C]  spill-single-def "field V11.hi (fldOffset=0x4)" P-INDEP
-;  V50 rat4         [V50,T05] (  3, 768   )   byref  ->  edx         "ReplaceWithLclVar is creating a new local variable"
-;  V51 rat5         [V51,T14] (  3, 384   )     int  ->  [ebp-0x50]  spill-single-def "ReplaceWithLclVar is creating a new local variable"
+;  V41 cse0         [V41,T39] (  4,   4   )   byref  ->  esi         "CSE - conservative"
+;  V42 cse1         [V42,T33] (  6,  51   )     ref  ->  edx         multi-def "CSE - conservative"
+;  V43 cse2         [V43,T14] (  3, 384   )     int  ->  ebx         "CSE - moderate"
+;  V44 cse3         [V44,T07] (  3, 384   )     int  ->  eax         "CSE - moderate"
+;  V45 cse4         [V45,T21] (  4, 256   )     int  ->  edx         "CSE - conservative"
+;  V46 cse5         [V46,T27] (  3, 192   )     ref  ->  [ebp-0x68]  spill-single-def "CSE - conservative"
+;  V47 rat0         [V47,T28] (  2, 192   )     int  ->  [ebp-0x44]  spill-single-def "field V06.lo (fldOffset=0x0)" P-INDEP
+;  V48 rat1         [V48,T29] (  2, 192   )     int  ->  [ebp-0x48]  spill-single-def "field V06.hi (fldOffset=0x4)" P-INDEP
+;  V49 rat2         [V49,T11] (  4, 384   )     int  ->  ebx         "field V11.lo (fldOffset=0x0)" P-INDEP
+;  V50 rat3         [V50,T17] (  3, 320   )     int  ->  [ebp-0x4C]  spill-single-def "field V11.hi (fldOffset=0x4)" P-INDEP
+;  V51 rat4         [V51,T05] (  3, 768   )   byref  ->  edx         "ReplaceWithLclVar is creating a new local variable"
+;  V52 rat5         [V52,T15] (  3, 384   )     int  ->  [ebp-0x50]  spill-single-def "ReplaceWithLclVar is creating a new local variable"
 ;  TEMP_01                                      int  ->  [ebp-0x6C]
 ;
 ; Lcl frame size = 96
@@ -91,22 +92,22 @@ G_M45973_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        xor      edx, edx
        mov      dword ptr [ebp-0x28], edx
                        ;; size=31 bbWeight=1 PerfScore 10.50
-G_M45973_IG03:        ; bbWeight=1, gcVars=0000010000040000 {V00 V04}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, gcvars, byref, isz
+G_M45973_IG03:        ; bbWeight=1, gcVars=0000020000080000 {V00 V04}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, gcvars, byref, isz
        ; byrRegs -[eax]
        cmp      byte  ptr [ebp-0x28], 0
        je       SHORT G_M45973_IG05
                        ;; size=6 bbWeight=1 PerfScore 3.00
-G_M45973_IG04:        ; bbWeight=0, gcVars=0000010000000000 {V04}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M45973_IG04:        ; bbWeight=0, gcVars=0000020000000000 {V04}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[ebx edi]
        ; byrRegs -[esi]
        ; GC ptr vars -{V00}
        call     [System.Threading.Monitor:ThrowLockTakenException()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M45973_IG05:        ; bbWeight=1, gcVars=0000010000040000 {V00 V04}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, gcvars, byref, isz
+G_M45973_IG05:        ; bbWeight=1, gcVars=0000020000080000 {V00 V04}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, gcvars, byref, isz
        ; gcrRegs +[ebx edi]
        ; byrRegs +[esi]
-       ; GC ptr vars +{V00 V18}
+       ; GC ptr vars +{V00 V19}
        lea      edx, [ebp-0x28]
        mov      ecx, ebx
        ; gcrRegs +[ecx]
@@ -128,8 +129,8 @@ G_M45973_IG06:        ; bbWeight=1, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
        ; gcrRegs +[esi]
        ; byrRegs -[esi]
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M45973_IG07:        ; bbWeight=1, gcVars=0000000000040000 {V00}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V04 V18}
+G_M45973_IG07:        ; bbWeight=1, gcVars=0000000000080000 {V00}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V04 V19}
        cmp      byte  ptr [ebp-0x28], 0
        je       SHORT G_M45973_IG10
        mov      ecx, ebx
@@ -138,14 +139,14 @@ G_M45973_IG07:        ; bbWeight=1, gcVars=0000000000040000 {V00}, gcrefRegs=000
        ; gcrRegs -[ecx]
        jmp      SHORT G_M45973_IG10
                        ;; size=16 bbWeight=1 PerfScore 8.25
-G_M45973_IG08:        ; bbWeight=0, gcVars=0000010000000000 {V04}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M45973_IG08:        ; bbWeight=0, gcVars=0000020000000000 {V04}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[ebx esi edi]
-       ; GC ptr vars -{V00} +{V04}
+       ; GC ptr vars -{V00} +{V04 V41}
        cmp      byte  ptr [ebp-0x28], 0
        je       SHORT G_M45973_IG09
        mov      ecx, gword ptr [ebp-0x58]
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V04}
+       ; GC ptr vars -{V04 V41}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
                        ;; size=15 bbWeight=0 PerfScore 0.00
@@ -153,9 +154,9 @@ G_M45973_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M45973_IG10:        ; bbWeight=8, gcVars=0000000000040000 {V00}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M45973_IG10:        ; bbWeight=8, gcVars=0000000000080000 {V00}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[ebx esi edi]
-       ; GC ptr vars +{V00 V18}
+       ; GC ptr vars +{V00 V19}
        mov      eax, -1
                        ;; size=5 bbWeight=8 PerfScore 2.00
 G_M45973_IG11:        ; bbWeight=64, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
@@ -181,8 +182,8 @@ G_M45973_IG11:        ; bbWeight=64, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs
        xor      eax, eax
        mov      dword ptr [ebp-0x34], eax
                        ;; size=54 bbWeight=64 PerfScore 1216.00
-G_M45973_IG12:        ; bbWeight=64, gcVars=0000000040040000 {V00 V07}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V18}
+G_M45973_IG12:        ; bbWeight=64, gcVars=0000000080080000 {V00 V07}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V19}
        cmp      byte  ptr [ebp-0x34], 0
        jne      G_M45973_IG26
        lea      edx, [ebp-0x34]
@@ -233,7 +234,7 @@ G_M45973_IG15:        ; bbWeight=128, gcrefRegs=000000C0 {esi edi}, byrefRegs=00
        sbb      edx, 0
        jge      G_M45973_IG24
                        ;; size=60 bbWeight=128 PerfScore 3232.00
-G_M45973_IG16:        ; bbWeight=64, gcVars=0000000040040100 {V00 V07 V10}, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M45973_IG16:        ; bbWeight=64, gcVars=0000000080080100 {V00 V07 V10}, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        mov      byte  ptr [ecx+0x39], 0
        inc      dword ptr [edi+0x0C]
        mov      edx, gword ptr [edi+0x04]
@@ -267,7 +268,7 @@ G_M45973_IG17:        ; bbWeight=64, gcrefRegs=000000C0 {esi edi}, byrefRegs=000
        mov      ecx, gword ptr [esi+0x04]
        ; gcrRegs +[ecx]
        mov      gword ptr [ebp-0x68], ecx
-       ; GC ptr vars +{V45}
+       ; GC ptr vars +{V46}
        cmp      ebx, dword ptr [ecx+0x04]
        jae      SHORT G_M45973_IG25
        mov      ecx, gword ptr [ecx+4*ebx+0x08]
@@ -281,7 +282,7 @@ G_M45973_IG17:        ; bbWeight=64, gcrefRegs=000000C0 {esi edi}, byrefRegs=000
        lea      edx, bword ptr [edx+4*eax+0x08]
        ; gcrRegs -[edx]
        ; byrRegs +[edx]
-       ; GC ptr vars -{V45}
+       ; GC ptr vars -{V46}
        call     [CORINFO_HELP_ASSIGN_REF_ECX]
        ; gcrRegs -[ecx]
        ; byrRegs -[edx]
@@ -306,19 +307,19 @@ G_M45973_IG21:        ; bbWeight=32, gcrefRegs=000000C0 {esi edi}, byrefRegs=000
        mov      dword ptr [ebp-0x38], eax
        jmp      SHORT G_M45973_IG18
                        ;; size=5 bbWeight=32 PerfScore 96.00
-G_M45973_IG22:        ; bbWeight=0, gcVars=0000000040000000 {V07}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M45973_IG22:        ; bbWeight=0, gcVars=0000000080000000 {V07}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[esi edi]
        ; GC ptr vars -{V00}
        call     [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M45973_IG23:        ; bbWeight=64, gcVars=0000000040040100 {V00 V07 V10}, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M45973_IG23:        ; bbWeight=64, gcVars=0000000080080100 {V00 V07 V10}, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[ecx esi edi]
-       ; GC ptr vars +{V00 V10 V18}
+       ; GC ptr vars +{V00 V10 V19}
        mov      ecx, edi
        mov      edx, gword ptr [ebp-0x60]
        ; gcrRegs +[edx]
-       ; GC ptr vars -{V10 V18}
+       ; GC ptr vars -{V10 V19}
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
        jmp      SHORT G_M45973_IG17
@@ -338,7 +339,7 @@ G_M45973_IG24:        ; bbWeight=64, gcrefRegs=000000C0 {esi edi}, byrefRegs=000
        mov      dword ptr [ebp-0x24], ebx
        jmp      SHORT G_M45973_IG19
                        ;; size=35 bbWeight=64 PerfScore 832.00
-G_M45973_IG25:        ; bbWeight=0, gcVars=0000000040000000 {V07}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M45973_IG25:        ; bbWeight=0, gcVars=0000000080000000 {V07}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[esi edi]
        ; GC ptr vars -{V00}
        call     [CORINFO_HELP_RNGCHKFAIL]
@@ -347,16 +348,16 @@ G_M45973_IG26:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [System.Threading.Monitor:ThrowLockTakenException()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M45973_IG27:        ; bbWeight=64, gcVars=0000000040040000 {V00 V07}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M45973_IG27:        ; bbWeight=64, gcVars=0000000080080000 {V00 V07}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[esi edi]
-       ; GC ptr vars +{V00 V18}
+       ; GC ptr vars +{V00 V19}
        cmp      byte  ptr [ebp-0x34], 0
        je       SHORT G_M45973_IG29
                        ;; size=6 bbWeight=64 PerfScore 192.00
 G_M45973_IG28:        ; bbWeight=16, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        mov      ecx, gword ptr [ebp-0x5C]
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V07 V18}
+       ; GC ptr vars -{V07 V19}
        call     [<unknown method>]
...
  
+2 (+0.44%) : 16827.dasm - System.Threading.Tasks.Task:GetDelegatesFromContinuationObject(System.Object):System.Delegate
@@ -9,25 +9,25 @@
 ; 0 inlinees with PGO data; 6 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T14] (  8,  5.50)     ref  ->  esi         class-hnd single-def <System.Object>
-;  V01 loc0         [V01,T23] (  3,  1.50)     ref  ->  edi         class-hnd single-def <System.Action>
-;  V02 loc1         [V02,T24] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
-;  V03 loc2         [V03,T25] (  3,  1.50)     ref  ->  eax         class-hnd single-def <System.Threading.Tasks.Task>
-;  V04 loc3         [V04,T21] (  4,  2   )     ref  ->  ebx         class-hnd single-def <<unknown class>>
-;  V05 loc4         [V05,T26] (  3,  1.50)     ref  ->  ebx         class-hnd single-def <<unknown class>>
-;  V06 loc5         [V06,T27] (  3,  1.50)     ref  ->  ebx         class-hnd single-def <System.Delegate[]>
+;  V00 arg0         [V00,T15] (  8,  5.50)     ref  ->  esi         class-hnd single-def <System.Object>
+;  V01 loc0         [V01,T24] (  3,  1.50)     ref  ->  edi         class-hnd single-def <System.Action>
+;  V02 loc1         [V02,T25] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
+;  V03 loc2         [V03,T26] (  3,  1.50)     ref  ->  eax         class-hnd single-def <System.Threading.Tasks.Task>
+;  V04 loc3         [V04,T22] (  4,  2   )     ref  ->  ebx         class-hnd single-def <<unknown class>>
+;  V05 loc4         [V05,T27] (  3,  1.50)     ref  ->  ebx         class-hnd single-def <<unknown class>>
+;  V06 loc5         [V06,T28] (  3,  1.50)     ref  ->  ebx         class-hnd single-def <System.Delegate[]>
 ;  V07 loc6         [V07,T01] (  8, 52.50)     ref  ->  esi         class-hnd exact single-def <<unknown class>>
 ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Object]>
 ;* V09 loc8         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Object>
-;  V10 loc9         [V10,T15] (  3,  6   )     ref  ->  eax         class-hnd <System.Delegate[]>
+;  V10 loc9         [V10,T16] (  3,  6   )     ref  ->  eax         class-hnd <System.Delegate[]>
 ;  V11 loc10        [V11,T07] (  3, 20   )     ref  ->  [ebp-0x34]  class-hnd spill-single-def <System.Delegate[]>
 ;  V12 loc11        [V12,T00] (  5, 66   )     int  ->  [ebp-0x24] 
 ;  V13 loc12        [V13,T02] (  4, 48   )     ref  ->  ebx         class-hnd <System.Delegate>
-;  V14 tmp0         [V14,T17] (  3,  3   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V15 tmp1         [V15,T18] (  3,  3   )     ref  ->  esi         class-hnd exact single-def "dup spill" <System.Delegate[]>
-;  V16 tmp2         [V16,T19] (  3,  3   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V17 tmp3         [V17,T20] (  3,  3   )     ref  ->  ebx         class-hnd exact single-def "dup spill" <System.Delegate[]>
-;  V18 tmp4         [V18,T22] (  2,  2   )     ref  ->  eax         class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.Action>
+;  V14 tmp0         [V14,T18] (  3,  3   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V15 tmp1         [V15,T19] (  3,  3   )     ref  ->  esi         class-hnd exact single-def "dup spill" <System.Delegate[]>
+;  V16 tmp2         [V16,T20] (  3,  3   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V17 tmp3         [V17,T21] (  3,  3   )     ref  ->  ebx         class-hnd exact single-def "dup spill" <System.Delegate[]>
+;  V18 tmp4         [V18,T23] (  2,  2   )     ref  ->  eax         class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.Action>
 ;* V19 tmp5         [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Object]>
 ;  V20 tmp6         [V20,T05] (  3, 24   )     ref  ->  ecx         class-hnd "Inline stloc first use temp" <System.Delegate[]>
 ;  V21 tmp7         [V21,T03] (  4, 32   )     int  ->  edi         "Inline stloc first use temp"
@@ -37,15 +37,16 @@
 ;  V25 tmp11        [V25,T10] (  4, 12.50)     ref  ->  [ebp-0x38]  spill-single-def "field V08._list (fldOffset=0x0)" P-INDEP
 ;  V26 tmp12        [V26,T12] (  2,  6   )     ref  ->  eax         "field V08._current (fldOffset=0x4)" P-INDEP
 ;  V27 tmp13        [V27,T04] (  6, 20.50)     int  ->  [ebp-0x28]  "field V08._index (fldOffset=0x8)" P-INDEP
-;  V28 tmp14        [V28,T16] (  2,  4.50)     int  ->  [ebp-0x2C]  spill-single-def "field V08._version (fldOffset=0xc)" P-INDEP
-;  V29 tmp15        [V29,T28] (  3,  1.50)     ref  ->  ebx         single-def "field V19._list (fldOffset=0x0)" P-INDEP
+;  V28 tmp14        [V28,T17] (  2,  4.50)     int  ->  [ebp-0x2C]  spill-single-def "field V08._version (fldOffset=0xc)" P-INDEP
+;  V29 tmp15        [V29,T29] (  3,  1.50)     ref  ->  ebx         single-def "field V19._list (fldOffset=0x0)" P-INDEP
 ;* V30 tmp16        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V19._current (fldOffset=0x4)" P-INDEP
-;* V31 tmp17        [V31,T30] (  0,  0   )     int  ->  zero-ref    "field V19._index (fldOffset=0x8)" P-INDEP
-;  V32 tmp18        [V32,T29] (  2,  1   )     int  ->  edi         "field V19._version (fldOffset=0xc)" P-INDEP
+;* V31 tmp17        [V31,T31] (  0,  0   )     int  ->  zero-ref    "field V19._index (fldOffset=0x8)" P-INDEP
+;  V32 tmp18        [V32,T30] (  2,  1   )     int  ->  edi         "field V19._version (fldOffset=0xc)" P-INDEP
 ;  V33 tmp19        [V33,T06] (  3, 24   )     ref  ->  eax         "arr expr"
 ;  V34 EHSlots      [V34    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V35 cse0         [V35,T11] (  2,  8   )     int  ->  eax         "CSE - moderate"
-;  V36 cse1         [V36,T08] (  3, 20   )     int  ->  [ebp-0x30]  spill-single-def "CSE - moderate"
+;  V35 cse0         [V35,T14] (  2,  8   )     int  ->  eax         "CSE - moderate"
+;  V36 cse1         [V36,T11] (  2,  8   )     int  ->  eax         "CSE - moderate"
+;  V37 cse2         [V37,T08] (  3, 20   )     int  ->  [ebp-0x30]  spill-single-def "CSE - moderate"
 ;
 ; Lcl frame size = 44
 
@@ -276,7 +277,8 @@ G_M37569_IG15:        ; bbWeight=8, gcVars=00000400 {V25}, gcrefRegs=00000040 {e
        mov      edi, dword ptr [ebp-0x2C]
                        ;; size=6 bbWeight=8 PerfScore 16.00
 G_M37569_IG16:        ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
-       cmp      edi, dword ptr [ebx+0x0C]
+       mov      eax, dword ptr [ebx+0x0C]
+       cmp      edi, eax
        jne      SHORT G_M37569_IG23
        mov      eax, dword ptr [ebx+0x08]
        cmp      ecx, eax
@@ -289,7 +291,7 @@ G_M37569_IG16:        ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=0000
        inc      ecx
        mov      dword ptr [ebp-0x28], ecx
        jmp      G_M37569_IG08
-                        ;; size=33 bbWeight=4 PerfScore 74.00
+                     ;; size=35 bbWeight=4 PerfScore 71.00
 G_M37569_IG17:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax ebx]
        ; GC ptr vars -{V25}
@@ -335,6 +337,6 @@ G_M37569_IG23:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 457, prolog size 16, PerfScore 530.00, instruction count 155, allocated bytes for code 457 (MethodHash=9db16d3e) for method System.Threading.Tasks.Task:GetDelegatesFromContinuationObject(System.Object):System.Delegate[] (FullOpts)
+; Total bytes of code 459, prolog size 16, PerfScore 527.00, instruction count 156, allocated bytes for code 459 (MethodHash=9db16d3e) for method System.Threading.Tasks.Task:GetDelegatesFromContinuationObject(System.Object):System.Delegate[] (FullOpts)
 ; ============================================================
 
  
+2 (+2.04%) : 23076.dasm - System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (FullOpts)
@@ -9,26 +9,27 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T08] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl>
-;  V01 arg1         [V01,T07] (  3,  4   )     ref  ->  esi         class-hnd single-def <ubyte[]>
+;  V00 this         [V00,T09] (  3,  3   )     ref  ->  ecx         this class-hnd single-def <System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl>
+;  V01 arg1         [V01,T08] (  3,  4   )     ref  ->  esi         class-hnd single-def <ubyte[]>
 ;  V02 loc0         [V02    ] (  3,  7   )     int  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.FieldMetadata]>
 ;* V04 loc2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Diagnostics.Tracing.FieldMetadata>
-;  V05 tmp0         [V05,T09] (  2,  4   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V05 tmp0         [V05,T10] (  2,  4   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Diagnostics.Tracing.FieldMetadata]>
-;* V07 tmp2         [V07,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V07 tmp2         [V07,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V08 tmp3         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V09 tmp4         [V09,T02] (  4, 17   )     ref  ->  edi         single-def "field V03._list (fldOffset=0x0)" P-INDEP
-;  V10 tmp5         [V10,T04] (  2,  6   )     ref  ->  ecx         "field V03._current (fldOffset=0x4)" P-INDEP
+;  V10 tmp5         [V10,T05] (  2,  6   )     ref  ->  ecx         "field V03._current (fldOffset=0x4)" P-INDEP
 ;  V11 tmp6         [V11,T00] (  6, 21   )     int  ->  [ebp-0x28]  "field V03._index (fldOffset=0x8)" P-INDEP
-;  V12 tmp7         [V12,T05] (  2,  9   )     int  ->  ebx         "field V03._version (fldOffset=0xc)" P-INDEP
-;  V13 tmp8         [V13,T10] (  3,  3   )     ref  ->  edi         single-def "field V06._list (fldOffset=0x0)" P-INDEP
+;  V12 tmp7         [V12,T06] (  2,  9   )     int  ->  ebx         "field V03._version (fldOffset=0xc)" P-INDEP
+;  V13 tmp8         [V13,T11] (  3,  3   )     ref  ->  edi         single-def "field V06._list (fldOffset=0x0)" P-INDEP
 ;* V14 tmp9         [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._current (fldOffset=0x4)" P-INDEP
-;* V15 tmp10        [V15,T12] (  0,  0   )     int  ->  zero-ref    "field V06._index (fldOffset=0x8)" P-INDEP
-;  V16 tmp11        [V16,T11] (  2,  2   )     int  ->  ebx         "field V06._version (fldOffset=0xc)" P-INDEP
+;* V15 tmp10        [V15,T13] (  0,  0   )     int  ->  zero-ref    "field V06._index (fldOffset=0x8)" P-INDEP
+;  V16 tmp11        [V16,T12] (  2,  2   )     int  ->  ebx         "field V06._version (fldOffset=0xc)" P-INDEP
 ;  V17 tmp12        [V17,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V18 EHSlots      [V18    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V19 cse0         [V19,T03] (  2,  8   )     int  ->  ecx         "CSE - moderate"
+;  V19 cse0         [V19,T04] (  2,  8   )     int  ->  ecx         "CSE - moderate"
+;  V20 cse1         [V20,T03] (  2, 16   )     int  ->  ecx         "CSE - aggressive"
 ;
 ; Lcl frame size = 28
 
@@ -66,9 +67,10 @@ G_M38703_IG04:        ; bbWeight=2, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=
        mov      edx, dword ptr [ebp-0x28]
                        ;; size=15 bbWeight=2 PerfScore 17.00
 G_M38703_IG05:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ebx, dword ptr [edi+0x0C]
+       mov      ecx, dword ptr [edi+0x0C]
+       cmp      ebx, ecx
        jne      SHORT G_M38703_IG10
-                      ;; size=5 bbWeight=8 PerfScore 32.00
+                      ;; size=7 bbWeight=8 PerfScore 26.00
 G_M38703_IG06:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, dword ptr [edi+0x08]
        cmp      edx, ecx
@@ -102,6 +104,6 @@ G_M38703_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 98, prolog size 14, PerfScore 138.25, instruction count 41, allocated bytes for code 98 (MethodHash=726d68d0) for method System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (FullOpts)
+; Total bytes of code 100, prolog size 14, PerfScore 132.25, instruction count 42, allocated bytes for code 100 (MethodHash=726d68d0) for method System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (FullOpts)
 ; ============================================================
 
  
  
libraries.pmi.windows.x86.checked.mch
-22 (-7.86%) : 237902.dasm - System.IO.Packaging.PackagePart:Close():this (FullOpts)
@@ -8,34 +8,33 @@
 ; 8 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] ( 14, 10   )     ref  ->  [ebp-0x28]  this class-hnd EH-live single-def <System.IO.Packaging.PackagePart>
+;  V00 this         [V00,T06] ( 14, 10   )     ref  ->  [ebp-0x28]  this class-hnd EH-live single-def <System.IO.Packaging.PackagePart>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.IO.Stream]>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.IO.Stream>
-;  V03 tmp0         [V03,T09] (  2,  2   )     ref  ->  esi         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V03 tmp0         [V03,T10] (  2,  2   )     ref  ->  esi         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.IO.Stream]>
 ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.IO.FileStream>
-;  V06 tmp3         [V06,T04] (  4, 10.24)     ref  ->  [ebp-0x2C]  class-hnd spill-single-def "dup spill" <System.IO.Strategies.FileStreamStrategy>
+;  V06 tmp3         [V06,T05] (  4, 10.24)     ref  ->  [ebp-0x2C]  class-hnd spill-single-def "dup spill" <System.IO.Strategies.FileStreamStrategy>
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref   
-;* V08 tmp5         [V08,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V08 tmp5         [V08,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V09 tmp6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V10 tmp7         [V10,T07] (  6, 40.67)     ref  ->  edx         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V11 tmp8         [V11,T13] (  3,  8.34)     int  ->  eax         single-def "Inline stloc first use temp"
-;  V12 tmp9         [V12,T02] (  5, 12.51)     ref  ->  esi         single-def "field V01._list (fldOffset=0x0)" P-INDEP
-;  V13 tmp10        [V13,T03] (  6,  9.33)     ref  ->  [ebp-0x30]  spill-single-def "field V01._current (fldOffset=0x4)" P-INDEP
+;  V10 tmp7         [V10,T08] (  6, 40.67)     ref  ->  edx         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V11 tmp8         [V11,T14] (  3,  8.34)     int  ->  eax         single-def "Inline stloc first use temp"
+;  V12 tmp9         [V12,T04] (  4, 11.84)     ref  ->  esi         single-def "field V01._list (fldOffset=0x0)" P-INDEP
+;  V13 tmp10        [V13,T02] (  6,  9.33)     ref  ->  [ebp-0x30]  spill-single-def "field V01._current (fldOffset=0x4)" P-INDEP
 ;  V14 tmp11        [V14,T00] (  6, 17.82)     int  ->  ebx         "field V01._index (fldOffset=0x8)" P-INDEP
-;  V15 tmp12        [V15,T08] (  3,  5.17)     int  ->  [ebp-0x24]  spill-single-def "field V01._version (fldOffset=0xc)" P-INDEP
-;  V16 tmp13        [V16,T10] (  3,  1.50)     ref  ->  esi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V15 tmp12        [V15,T09] (  2,  4.50)     int  ->  [ebp-0x24]  spill-single-def "field V01._version (fldOffset=0xc)" P-INDEP
+;  V16 tmp13        [V16,T11] (  3,  1.50)     ref  ->  esi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
 ;* V17 tmp14        [V17    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._current (fldOffset=0x4)" P-INDEP
-;* V18 tmp15        [V18,T15] (  0,  0   )     int  ->  zero-ref    single-def "field V04._index (fldOffset=0x8)" P-INDEP
-;  V19 tmp16        [V19,T14] (  2,  1   )     int  ->  edi         single-def "field V04._version (fldOffset=0xc)" P-INDEP
+;* V18 tmp15        [V18,T16] (  0,  0   )     int  ->  zero-ref    single-def "field V04._index (fldOffset=0x8)" P-INDEP
+;  V19 tmp16        [V19,T15] (  2,  1   )     int  ->  edi         single-def "field V04._version (fldOffset=0xc)" P-INDEP
 ;  V20 tmp17        [V20,T01] (  3, 19.97)     ref  ->  edx         "arr expr"
-;  V21 tmp18        [V21,T12] (  2,  1.34)     ref  ->  edx         single-def "argument with side effect"
+;  V21 tmp18        [V21,T13] (  2,  1.34)     ref  ->  edx         single-def "argument with side effect"
 ;  V22 EHSlots      [V22    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V23 cse0         [V23,T11] (  3,  1.50)     ref  ->  esi         "CSE - conservative"
-;  TEMP_02                                     ref  ->  [ebp-0x34]
-;  TEMP_01                                     int  ->  [ebp-0x38]
+;  V23 cse0         [V23,T03] (  2,  8.01)     int  ->  edx         "CSE - moderate"
+;  V24 cse1         [V24,T12] (  3,  1.50)     ref  ->  esi         "CSE - conservative"
 ;
-; Lcl frame size = 44
+; Lcl frame size = 36
 
 G_M35060_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -43,34 +42,35 @@ G_M35060_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 44
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [ebp-0x34], ymm4
+       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-0x28], ecx
        ; GC ptr vars +{V00}
-                      ;; size=26 bbWeight=1 PerfScore 9.08
-G_M35060_IG02:        ; bbWeight=1, gcVars=00000020 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
+                        ;; size=26 bbWeight=1 PerfScore 9.75
+G_M35060_IG02:        ; bbWeight=1, gcVars=00000040 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[ecx]
        cmp      byte  ptr [ecx+0x1C], 0
-       jne      G_M35060_IG23
+       jne      G_M35060_IG22
                       ;; size=10 bbWeight=1 PerfScore 4.00
 G_M35060_IG03:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        mov      esi, gword ptr [ecx+0x10]
        ; gcrRegs +[esi]
        test     esi, esi
-       je       G_M35060_IG17
+       je       G_M35060_IG16
        cmp      byte  ptr [ecx+0x1D], 0
-       jne      G_M35060_IG15
+       jne      SHORT G_M35060_IG14
        mov      edi, dword ptr [esi+0x0C]
        xor      ebx, ebx
        mov      dword ptr [ebp-0x24], edi
        jmp      SHORT G_M35060_IG09
-                      ;; size=31 bbWeight=0.50 PerfScore 6.25
-G_M35060_IG04:        ; bbWeight=2, gcVars=00000028 {V00 V13}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+                       ;; size=27 bbWeight=0.50 PerfScore 6.25
+G_M35060_IG04:        ; bbWeight=2, gcVars=00000044 {V00 V13}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[ecx] +[eax]
-       ; GC ptr vars +{V03 V13}
+       ; GC ptr vars +{V13}
        cmp      dword ptr [eax], 0xD1FFAB1E
        jne      SHORT G_M35060_IG08
                        ;; size=8 bbWeight=2 PerfScore 8.00
@@ -83,23 +83,19 @@ G_M35060_IG05:        ; bbWeight=1.28, gcrefRegs=00000041 {eax esi}, byrefRegs=0
        je       SHORT G_M35060_IG07
        mov      ecx, edx
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x34], ecx
        mov      edx, 1
        ; gcrRegs -[edx]
-       mov      ecx, gword ptr [ebp-0x2C]
-       mov      ecx, dword ptr [ecx]
-       ; gcrRegs -[ecx]
-       mov      ecx, dword ptr [ecx+0x34]
-       mov      dword ptr [ebp-0x38], ecx
-       mov      ecx, gword ptr [ebp-0x34]
-       ; gcrRegs +[ecx]
-       mov      edi, dword ptr [ebp-0x38]
-       ; GC ptr vars -{V03 V06}
+       mov      edi, gword ptr [ebp-0x2C]
+       ; gcrRegs +[edi]
+       mov      edi, dword ptr [edi]
+       ; gcrRegs -[edi]
+       mov      edi, dword ptr [edi+0x34]
+       ; GC ptr vars -{V06}
        call     [edi+0x10]<unknown method>
        ; gcrRegs -[eax ecx]
        mov      eax, gword ptr [ebp-0x30]
        ; gcrRegs +[eax]
-                      ;; size=43 bbWeight=1.28 PerfScore 22.72
+                      ;; size=31 bbWeight=1.28 PerfScore 17.60
 G_M35060_IG06:        ; bbWeight=1.28, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, eax
        ; gcrRegs +[ecx]
@@ -109,8 +105,8 @@ G_M35060_IG06:        ; bbWeight=1.28, gcrefRegs=00000041 {eax esi}, byrefRegs=0
        mov      edi, dword ptr [ebp-0x24]
        jmp      SHORT G_M35060_IG09
                        ;; size=12 bbWeight=1.28 PerfScore 5.44
-G_M35060_IG07:        ; bbWeight=0.64, gcVars=00000028 {V00 V13}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V03 V13}
+G_M35060_IG07:        ; bbWeight=0.64, gcVars=00000044 {V00 V13}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V13}
        mov      eax, gword ptr [ebp-0x30]
        ; gcrRegs +[eax]
        jmp      SHORT G_M35060_IG06
@@ -121,19 +117,20 @@ G_M35060_IG08:        ; bbWeight=0.72, gcrefRegs=00000041 {eax esi}, byrefRegs=0
        mov      eax, dword ptr [eax]
        ; gcrRegs -[eax]
        mov      eax, dword ptr [eax+0x34]
-       ; GC ptr vars -{V03 V13}
+       ; GC ptr vars -{V13}
        call     [eax+0x0C]System.IO.Stream:Close():this
        ; gcrRegs -[ecx]
        mov      edi, dword ptr [ebp-0x24]
                        ;; size=13 bbWeight=0.72 PerfScore 5.94
 G_M35060_IG09:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        cmp      edi, dword ptr [esi+0x0C]
-       jne      SHORT G_M35060_IG14
+       jne      SHORT G_M35060_IG13
                         ;; size=5 bbWeight=4 PerfScore 16.00
 G_M35060_IG10:        ; bbWeight=4.01, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ebx, dword ptr [esi+0x08]
-       jae      SHORT G_M35060_IG15
-                       ;; size=5 bbWeight=4.01 PerfScore 16.02
+       mov      edx, dword ptr [esi+0x08]
+       cmp      ebx, edx
+       jae      SHORT G_M35060_IG14
+                       ;; size=7 bbWeight=4.01 PerfScore 13.02
 G_M35060_IG11:        ; bbWeight=3.33, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
@@ -155,14 +152,7 @@ G_M35060_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M35060_IG14:        ; bbWeight=0.67, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[esi]
-       mov      edi, dword ptr [ebp-0x24]
-       cmp      edi, dword ptr [esi+0x0C]
-       jne      SHORT G_M35060_IG13
-                       ;; size=8 bbWeight=0.67 PerfScore 3.35
-G_M35060_IG15:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[esi]
+G_M35060_IG14:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x28]
        ; gcrRegs +[ecx]
        mov      edx, gword ptr [ecx+0x10]
@@ -172,9 +162,9 @@ G_M35060_IG15:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        xor      esi, esi
        mov      dword ptr [edx+0x08], esi
        test     eax, eax
-       jle      SHORT G_M35060_IG17
+       jle      SHORT G_M35060_IG16
                      ;; size=21 bbWeight=4 PerfScore 42.00
-G_M35060_IG16:        ; bbWeight=0.34, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
+G_M35060_IG15:        ; bbWeight=0.34, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
        mov      edx, gword ptr [edx+0x04]
        push     eax
@@ -185,23 +175,23 @@ G_M35060_IG16:        ; bbWeight=0.34, gcrefRegs=00000004 {edx}, byrefRegs=00000
        call     [<unknown method>]
        ; gcrRegs -[ecx]
                        ;; size=14 bbWeight=0.34 PerfScore 2.18
-G_M35060_IG17:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M35060_IG16:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        xor      eax, eax
        ; gcrRegs +[eax]
        mov      ecx, gword ptr [ebp-0x28]
        ; gcrRegs +[ecx]
        mov      gword ptr [ecx+0x10], eax
                        ;; size=8 bbWeight=0.50 PerfScore 1.12
-G_M35060_IG18:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+G_M35060_IG17:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        mov      gword ptr [ecx+0x14], eax
                        ;; size=3 bbWeight=0.50 PerfScore 0.50
-G_M35060_IG19:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+G_M35060_IG18:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        mov      gword ptr [ecx+0x08], eax
        mov      byte  ptr [ecx+0x1C], 1
-       jmp      SHORT G_M35060_IG23
+       jmp      SHORT G_M35060_IG22
                       ;; size=9 bbWeight=0.50 PerfScore 2.00
-G_M35060_IG20:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M35060_IG19:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
        xor      eax, eax
        ; gcrRegs +[eax]
@@ -209,17 +199,17 @@ G_M35060_IG20:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; gcrRegs +[ecx]
        mov      gword ptr [ecx+0x10], eax
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M35060_IG21:        ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+G_M35060_IG20:        ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        mov      gword ptr [ecx+0x14], eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M35060_IG22:        ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+G_M35060_IG21:        ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
        mov      gword ptr [ecx+0x08], eax
        mov      byte  ptr [ecx+0x1C], 1
        pop      eax
        jmp      eax
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M35060_IG23:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
+G_M35060_IG22:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
        ; gcrRegs -[ecx]
        ; GC ptr vars -{V00}
        lea      esp, [ebp-0x0C]
@@ -230,9 +220,9 @@ G_M35060_IG23:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 280, prolog size 26, PerfScore 187.49, instruction count 101, allocated bytes for code 280 (MethodHash=c698770b) for method System.IO.Packaging.PackagePart:Close():this (FullOpts)
+; Total bytes of code 258, prolog size 26, PerfScore 176.68, instruction count 96, allocated bytes for code 258 (MethodHash=c698770b) for method System.IO.Packaging.PackagePart:Close():this (FullOpts)
...
  
-11 (-4.35%) : 201875.dasm - Microsoft.Build.Evaluation.ProjectCollection:RemoveGlobalProperty(System.String):ubyte:this (FullOpts)
@@ -8,30 +8,31 @@
 ; 2 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  7,  6.50)     ref  ->  esi         this class-hnd single-def <Microsoft.Build.Evaluation.ProjectCollection>
-;  V01 arg1         [V01,T08] (  4,  5   )     ref  ->  edi         class-hnd single-def <System.String>
-;  V02 loc0         [V02,T13] (  2,  2   )   ubyte  ->  [ebp-0x24]  spill-single-def
-;  V03 loc1         [V03,T15] (  5,  1.50)     ref  ->  [ebp-0x30]  class-hnd EH-live spill-single-def <System.IDisposable>
+;  V00 this         [V00,T07] (  7,  6.50)     ref  ->  esi         this class-hnd single-def <Microsoft.Build.Evaluation.ProjectCollection>
+;  V01 arg1         [V01,T09] (  4,  5   )     ref  ->  edi         class-hnd single-def <System.String>
+;  V02 loc0         [V02,T14] (  2,  2   )   ubyte  ->  [ebp-0x24]  spill-single-def
+;  V03 loc1         [V03,T16] (  5,  1.50)     ref  ->  [ebp-0x30]  class-hnd EH-live spill-single-def <System.IDisposable>
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[Microsoft.Build.Evaluation.Project]>
-;  V05 tmp0         [V05,T10] (  3,  6   )     ref  ->  [ebp-0x34]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
-;  V06 tmp1         [V06,T11] (  3,  5   )     ref  ->  eax         class-hnd exact single-def "NewObj constructor temp" <Microsoft.Build.Evaluation.ProjectCollectionChangedEventArgs>
+;  V05 tmp0         [V05,T11] (  3,  6   )     ref  ->  [ebp-0x34]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+;  V06 tmp1         [V06,T12] (  3,  5   )     ref  ->  eax         class-hnd exact single-def "NewObj constructor temp" <Microsoft.Build.Evaluation.ProjectCollectionChangedEventArgs>
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Microsoft.Build.Evaluation.Project]>
 ;* V08 tmp3         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
-;* V09 tmp4         [V09,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V09 tmp4         [V09,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V11 tmp6         [V11,T09] (  4,  6   )     ref  ->  edi         class-hnd exact single-def "dup spill" <<unknown class>>
+;  V11 tmp6         [V11,T10] (  4,  6   )     ref  ->  edi         class-hnd exact single-def "dup spill" <<unknown class>>
 ;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V13 tmp8         [V13,T01] (  5, 17.01)     ref  ->  [ebp-0x38]  spill-single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V13 tmp8         [V13,T02] (  4, 16.34)     ref  ->  [ebp-0x38]  spill-single-def "field V04._list (fldOffset=0x0)" P-INDEP
 ;  V14 tmp9         [V14,T05] (  2,  5.33)     ref  ->  ebx         "field V04._current (fldOffset=0x4)" P-INDEP
 ;  V15 tmp10        [V15,T00] (  6, 18.32)     int  ->  [ebp-0x28]  "field V04._index (fldOffset=0x8)" P-INDEP
-;  V16 tmp11        [V16,T04] (  3,  9.67)     int  ->  [ebp-0x2C]  spill-single-def "field V04._version (fldOffset=0xc)" P-INDEP
-;  V17 tmp12        [V17,T12] (  3,  3   )     ref  ->  eax         single-def "field V07._list (fldOffset=0x0)" P-INDEP
+;  V16 tmp11        [V16,T06] (  2,  9   )     int  ->  [ebp-0x2C]  spill-single-def "field V04._version (fldOffset=0xc)" P-INDEP
+;  V17 tmp12        [V17,T13] (  3,  3   )     ref  ->  eax         single-def "field V07._list (fldOffset=0x0)" P-INDEP
 ;* V18 tmp13        [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V07._current (fldOffset=0x4)" P-INDEP
-;* V19 tmp14        [V19,T16] (  0,  0   )     int  ->  zero-ref    single-def "field V07._index (fldOffset=0x8)" P-INDEP
-;  V20 tmp15        [V20,T14] (  2,  2   )     int  ->  edx         single-def "field V07._version (fldOffset=0xc)" P-INDEP
-;  V21 tmp16        [V21,T02] (  3, 19.97)     ref  ->  ebx         "arr expr"
-;  V22 tmp17        [V22,T03] (  3, 12   )     ref  ->  ebx         "argument with side effect"
+;* V19 tmp14        [V19,T17] (  0,  0   )     int  ->  zero-ref    single-def "field V07._index (fldOffset=0x8)" P-INDEP
+;  V20 tmp15        [V20,T15] (  2,  2   )     int  ->  edx         single-def "field V07._version (fldOffset=0xc)" P-INDEP
+;  V21 tmp16        [V21,T01] (  3, 19.97)     ref  ->  ebx         "arr expr"
+;  V22 tmp17        [V22,T04] (  3, 12   )     ref  ->  ebx         "argument with side effect"
 ;  V23 EHSlots      [V23    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
+;  V24 cse0         [V24,T03] (  2,  8.01)     int  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 44
 
@@ -61,7 +62,7 @@ G_M12469_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        mov      gword ptr [ebp-0x30], eax
        ; GC ptr vars +{V03}
                        ;; size=14 bbWeight=1 PerfScore 9.00
-G_M12469_IG03:        ; bbWeight=1, gcVars=00008000 {V03}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M12469_IG03:        ; bbWeight=1, gcVars=00010000 {V03}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
        mov      ecx, gword ptr [esi+0x1C]
        ; gcrRegs +[ecx]
@@ -89,10 +90,9 @@ G_M12469_IG03:        ; bbWeight=1, gcVars=00008000 {V03}, gcrefRegs=000000C0 {e
        ; GC ptr vars +{V13}
        xor      ecx, ecx
        mov      dword ptr [ebp-0x2C], edx
-       mov      ebx, dword ptr [ebp-0x24]
        jmp      SHORT G_M12469_IG05
-                      ;; size=59 bbWeight=1 PerfScore 25.00
-G_M12469_IG04:        ; bbWeight=2, gcVars=00008002 {V03 V13}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+                        ;; size=56 bbWeight=1 PerfScore 24.00
+G_M12469_IG04:        ; bbWeight=2, gcVars=00010004 {V03 V13}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax] +[ebx]
        ; GC ptr vars -{V05}
        mov      ebx, gword ptr [ebx+0x04]
@@ -109,16 +109,16 @@ G_M12469_IG04:        ; bbWeight=2, gcVars=00008002 {V03 V13}, gcrefRegs=000000C
        ; gcrRegs +[eax]
        mov      ecx, dword ptr [ebp-0x28]
        mov      edx, dword ptr [ebp-0x2C]
-       mov      ebx, dword ptr [ebp-0x24]
-                       ;; size=27 bbWeight=2 PerfScore 27.00
+                     ;; size=24 bbWeight=2 PerfScore 25.00
 G_M12469_IG05:        ; bbWeight=8, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
        cmp      edx, dword ptr [eax+0x0C]
-       jne      SHORT G_M12469_IG10
+       jne      SHORT G_M12469_IG09
                         ;; size=5 bbWeight=8 PerfScore 32.00
 G_M12469_IG06:        ; bbWeight=4.01, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ecx, dword ptr [eax+0x08]
-       jae      SHORT G_M12469_IG11
-                       ;; size=5 bbWeight=4.01 PerfScore 16.02
+       mov      ebx, dword ptr [eax+0x08]
+       cmp      ecx, ebx
+       jae      SHORT G_M12469_IG10
+                       ;; size=7 bbWeight=4.01 PerfScore 13.02
 G_M12469_IG07:        ; bbWeight=3.33, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ebx, gword ptr [eax+0x04]
        ; gcrRegs +[ebx]
@@ -129,7 +129,7 @@ G_M12469_IG07:        ; bbWeight=3.33, gcrefRegs=000000C1 {eax esi edi}, byrefRe
        mov      dword ptr [ebp-0x28], ecx
        jmp      SHORT G_M12469_IG04
                        ;; size=18 bbWeight=3.33 PerfScore 37.45
-G_M12469_IG08:        ; bbWeight=0, gcVars=00008000 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M12469_IG08:        ; bbWeight=0, gcVars=00010000 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax ebx esi edi]
        ; GC ptr vars -{V13}
        call     CORINFO_HELP_RNGCHKFAIL
@@ -138,45 +138,37 @@ G_M12469_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M12469_IG10:        ; bbWeight=0.67, gcVars=00008002 {V03 V13}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[eax esi]
-       ; GC ptr vars +{V01 V13}
-       mov      edx, dword ptr [ebp-0x2C]
-       cmp      edx, dword ptr [eax+0x0C]
-       jne      SHORT G_M12469_IG09
-                       ;; size=8 bbWeight=0.67 PerfScore 3.35
-G_M12469_IG11:        ; bbWeight=1, gcVars=00008000 {V03}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[eax]
-       ; GC ptr vars -{V01 V13}
+G_M12469_IG10:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[esi]
        mov      eax, gword ptr [ebp-0x30]
        ; gcrRegs +[eax]
        test     eax, eax
-       je       SHORT G_M12469_IG15
+       je       SHORT G_M12469_IG14
                      ;; size=7 bbWeight=1 PerfScore 2.25
-G_M12469_IG12:        ; bbWeight=0.50, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
+G_M12469_IG11:        ; bbWeight=0.50, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, eax
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V03}
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
-       jmp      SHORT G_M12469_IG15
+       jmp      SHORT G_M12469_IG14
                       ;; size=10 bbWeight=0.50 PerfScore 2.62
-G_M12469_IG13:        ; bbWeight=0, gcVars=00008000 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M12469_IG12:        ; bbWeight=0, gcVars=00010000 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[esi]
-       ; GC ptr vars +{V03 V15}
+       ; GC ptr vars +{V03 V16}
        cmp      gword ptr [ebp-0x30], 0
-       je       SHORT G_M12469_IG14
+       je       SHORT G_M12469_IG13
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V03 V15}
+       ; GC ptr vars -{V03 V16}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
                        ;; size=15 bbWeight=0 PerfScore 0.00
-G_M12469_IG14:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M12469_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M12469_IG15:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M12469_IG14:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi]
        mov      ecx, 0xD1FFAB1E      ; Microsoft.Build.Evaluation.ProjectCollectionChangedEventArgs
        call     CORINFO_HELP_NEWSFAST
@@ -185,9 +177,9 @@ G_M12469_IG15:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      edi, gword ptr [esi+0x2C]
        ; gcrRegs +[edi]
        test     edi, edi
-       je       SHORT G_M12469_IG17
+       je       SHORT G_M12469_IG16
                      ;; size=24 bbWeight=1 PerfScore 5.50
-G_M12469_IG16:        ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
+G_M12469_IG15:        ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
        push     eax
        mov      edx, esi
        ; gcrRegs +[edx]
@@ -196,10 +188,10 @@ G_M12469_IG16:        ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRe
        call     [edi+0x0C]<unknown method>
        ; gcrRegs -[eax ecx edx esi edi]
                        ;; size=9 bbWeight=0.50 PerfScore 3.12
-G_M12469_IG17:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      eax, ebx
-                       ;; size=2 bbWeight=1 PerfScore 0.25
-G_M12469_IG18:        ; bbWeight=1, epilog, nogc, extend
+G_M12469_IG16:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       mov      eax, dword ptr [ebp-0x24]
+                       ;; size=3 bbWeight=1 PerfScore 1.00
+G_M12469_IG17:        ; bbWeight=1, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -208,9 +200,9 @@ G_M12469_IG18:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 253, prolog size 23, PerfScore 176.33, instruction count 91, allocated bytes for code 253 (MethodHash=7ae6cf4a) for method Microsoft.Build.Evaluation.ProjectCollection:RemoveGlobalProperty(System.String):ubyte:this (FullOpts)
+; Total bytes of code 242, prolog size 23, PerfScore 167.72, instruction count 87, allocated bytes for code 242 (MethodHash=7ae6cf4a) for method Microsoft.Build.Evaluation.ProjectCollection:RemoveGlobalProperty(System.String):ubyte:this (FullOpts)
 ; ============================================================
 
 *************** EH table for Microsoft.Build.Evaluation.ProjectCollection:RemoveGlobalProperty(System.String):ubyte:this
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M12469_IG03..G_M12469_IG11) handled by [G_M12469_IG13..G_M12469_IG15) (fault)
+EH#0: try [G_M12469_IG03..G_M12469_IG10) handled by [G_M12469_IG12..G_M12469_IG14) (fault)
  
-10 (-4.03%) : 253217.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
@@ -9,31 +9,32 @@
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct ( 4) zero-ref    single-def <System.Net.Http.Headers.HeaderDescriptor>
-;  V01 arg1         [V01,T03] (  8, 12.83)     ref  ->  esi         class-hnd single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
-;  V02 loc0         [V02,T15] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V01 arg1         [V01,T04] (  8, 12.83)     ref  ->  esi         class-hnd single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V02 loc0         [V02,T16] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
 ;  V03 loc1         [V03    ] (  6,  5   )   ubyte  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V04 loc2         [V04,T12] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
+;  V04 loc2         [V04,T13] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V07 loc5         [V07,T10] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
-;  V08 tmp0         [V08,T11] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
+;  V07 loc5         [V07,T11] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
+;  V08 tmp0         [V08,T12] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
 ;* V09 tmp1         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.String>
-;  V10 tmp2         [V10,T07] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
+;  V10 tmp2         [V10,T08] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
 ;* V11 tmp3         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
-;* V12 tmp4         [V12,T05] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V12 tmp4         [V12,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V13 tmp5         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V14 tmp6         [V14,T08] (  2,  3.83)     ref  ->  edi         single-def "field V00._descriptor (fldOffset=0x0)" P-INDEP
-;  V15 tmp7         [V15,T02] (  5, 12.51)     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
-;  V16 tmp8         [V16,T04] (  2,  6.66)     ref  ->  edx         "field V05._current (fldOffset=0x4)" P-INDEP
+;  V14 tmp6         [V14,T09] (  2,  3.83)     ref  ->  edi         single-def "field V00._descriptor (fldOffset=0x0)" P-INDEP
+;  V15 tmp7         [V15,T03] (  4, 11.84)     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
+;  V16 tmp8         [V16,T05] (  2,  6.66)     ref  ->  edx         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V17 tmp9         [V17,T00] (  6, 17.82)     int  ->  [ebp-0x28]  "field V05._index (fldOffset=0x8)" P-INDEP
-;  V18 tmp10        [V18,T06] (  3,  5.17)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
-;  V19 tmp11        [V19,T13] (  3,  1.50)     ref  ->  ebx         single-def "field V11._list (fldOffset=0x0)" P-INDEP
+;  V18 tmp10        [V18,T07] (  2,  4.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
+;  V19 tmp11        [V19,T14] (  3,  1.50)     ref  ->  ebx         single-def "field V11._list (fldOffset=0x0)" P-INDEP
 ;* V20 tmp12        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._current (fldOffset=0x4)" P-INDEP
-;* V21 tmp13        [V21,T16] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
-;  V22 tmp14        [V22,T14] (  2,  1   )     int  ->  eax         "field V11._version (fldOffset=0xc)" P-INDEP
+;* V21 tmp13        [V21,T17] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
+;  V22 tmp14        [V22,T15] (  2,  1   )     int  ->  eax         "field V11._version (fldOffset=0xc)" P-INDEP
 ;  V23 tmp15        [V23,T01] (  3, 19.97)     ref  ->  edx         "arr expr"
 ;  V24 EHSlots      [V24    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V25 cse0         [V25,T09] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
+;  V25 cse0         [V25,T02] (  2,  8.01)     int  ->  edx         "CSE - aggressive"
+;  V26 cse1         [V26,T10] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 36
 
@@ -57,7 +58,7 @@ G_M53769_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        xor      edx, edx
        mov      dword ptr [ebp-0x24], edx
                        ;; size=8 bbWeight=1 PerfScore 2.25
-G_M53769_IG03:        ; bbWeight=1, gcVars=00008000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M53769_IG03:        ; bbWeight=1, gcVars=00010000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      byte  ptr [ebp-0x24], 0
        jne      SHORT G_M53769_IG10
        lea      edx, [ebp-0x24]
@@ -77,12 +78,12 @@ G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M53769_IG05:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M53769_IG05:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ebx, gword ptr [esi+0x04]
        ; gcrRegs +[ebx]
        test     ebx, ebx
-       je       G_M53769_IG16
-                       ;; size=11 bbWeight=1 PerfScore 3.25
+       je       SHORT G_M53769_IG15
+                       ;; size=7 bbWeight=1 PerfScore 3.25
 G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -90,7 +91,7 @@ G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[edx] +[eax]
        test     eax, eax
-       je       SHORT G_M53769_IG15
+       je       SHORT G_M53769_IG14
        mov      ebx, eax
        mov      eax, dword ptr [ebx+0x0C]
        ; gcrRegs -[eax]
@@ -99,17 +100,18 @@ G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
                        ;; size=26 bbWeight=0.50 PerfScore 3.12
 G_M53769_IG07:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        cmp      eax, dword ptr [ebx+0x0C]
-       jne      SHORT G_M53769_IG11
+       jne      SHORT G_M53769_IG13
                         ;; size=5 bbWeight=4 PerfScore 16.00
 G_M53769_IG08:        ; bbWeight=4.01, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ecx, dword ptr [ebx+0x08]
-       jae      SHORT G_M53769_IG12
-                       ;; size=5 bbWeight=4.01 PerfScore 16.02
+       mov      edx, dword ptr [ebx+0x08]
+       cmp      ecx, edx
+       jae      SHORT G_M53769_IG11
+                       ;; size=7 bbWeight=4.01 PerfScore 13.02
 G_M53769_IG09:        ; bbWeight=3.33, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [ebx+0x04]
        ; gcrRegs +[edx]
        cmp      ecx, dword ptr [edx+0x04]
-       jae      SHORT G_M53769_IG13
+       jae      SHORT G_M53769_IG12
        mov      edx, gword ptr [edx+4*ecx+0x08]
        inc      ecx
        mov      dword ptr [ebp-0x28], ecx
@@ -127,28 +129,22 @@ G_M53769_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [System.Threading.Monitor:ThrowLockTakenException()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M53769_IG11:        ; bbWeight=0.67, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[ebx esi]
-       mov      eax, dword ptr [ebp-0x2C]
-       cmp      eax, dword ptr [ebx+0x0C]
-       jne      SHORT G_M53769_IG14
-                       ;; size=8 bbWeight=0.67 PerfScore 3.35
-G_M53769_IG12:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ebx]
+G_M53769_IG11:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[esi]
        xor      ecx, ecx
        ; gcrRegs +[ecx]
        mov      gword ptr [esi+0x04], ecx
-       jmp      SHORT G_M53769_IG16
+       jmp      SHORT G_M53769_IG15
                         ;; size=7 bbWeight=4 PerfScore 13.00
-G_M53769_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx esi]
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M53769_IG14:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M53769_IG15:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG14:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ebx esi edi]
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -160,36 +156,36 @@ G_M53769_IG15:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        mov      ecx, esi
        call     [System.Net.Http.Headers.HttpHeaders:ParseSingleRawHeaderValue(System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo,System.Net.Http.Headers.HeaderDescriptor,System.String)]
        ; gcrRegs -[ecx edx ebx edi]
-       jmp      SHORT G_M53769_IG12
+       jmp      SHORT G_M53769_IG11
                       ;; size=24 bbWeight=0.50 PerfScore 5.00
-G_M53769_IG16:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG15:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG20
+       je       SHORT G_M53769_IG19
                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M53769_IG17:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG16:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V02}
        call     <unknown method>
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M53769_IG20
+       jmp      SHORT G_M53769_IG19
                       ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M53769_IG18:        ; bbWeight=0, gcVars=00008000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V02 V15}
+G_M53769_IG17:        ; bbWeight=0, gcVars=00010000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V02 V16}
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG19
+       je       SHORT G_M53769_IG18
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V02 V15}
+       ; GC ptr vars -{V02 V16}
        call     <unknown method>
        ; gcrRegs -[ecx]
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M53769_IG19:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG18:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M53769_IG20:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M53769_IG19:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -198,9 +194,9 @@ G_M53769_IG20:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
 
-; Total bytes of code 248, prolog size 14, PerfScore 145.51, instruction count 88, allocated bytes for code 248 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
+; Total bytes of code 238, prolog size 14, PerfScore 139.15, instruction count 86, allocated bytes for code 238 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
 ; ============================================================
 
 *************** EH table for System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo)
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M53769_IG03..G_M53769_IG16) handled by [G_M53769_IG18..G_M53769_IG20) (fault)
+EH#0: try [G_M53769_IG03..G_M53769_IG15) handled by [G_M53769_IG17..G_M53769_IG19) (fault)
  
+37 (+2.24%) : 175323.dasm - System.Xml.Xsl.IlGen.XmlILModule:DefineMethod(System.String,System.Type,System.Type[],System.String[],int):System.Reflection.MethodInfo:this (FullOpts)
@@ -123,7 +123,7 @@
 ;* V112 tmp97       [V112,T58] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V113 tmp98       [V113,T03] (  3, 19.68)     ref  ->  esi         class-hnd exact "Inlining Arg" <System.String>
 ;  V114 tmp99       [V114,T10] (  5, 12   )     int  ->  esi         "Inlining Arg"
-;  V115 tmp100      [V115,T17] (  3,  8   )     ref  ->  ecx         class-hnd exact "Inlining Arg" <System.String>
+;  V115 tmp100      [V115,T17] (  3,  8   )     ref  ->  edx         class-hnd exact "Inlining Arg" <System.String>
 ;* V116 tmp101      [V116    ] (  0,  0   )     ref  ->  zero-ref    "guarded devirt return temp"
 ;* V117 tmp102      [V117    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Reflection.Emit.RuntimeMethodBuilder>
 ;  V118 tmp103      [V118,T49] (  3,  3   )     ref  ->  [ebp-0x7C]  class-hnd spill-single-def "Inlining Arg" <<unknown class>>
@@ -212,7 +212,7 @@ G_M15401_IG02:        ; bbWeight=1, gcVars=000000000000000000000200 {V00}, gcref
        setne    cl
        movzx    ecx, cl
        mov      dword ptr [ebp-0x10], ecx
-       jmp      G_M15401_IG22
+       jmp      G_M15401_IG17
                         ;; size=50 bbWeight=1 PerfScore 10.50
 G_M15401_IG03:        ; bbWeight=2.00, gcVars=000000000000000000004200 {V00 V08}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[ebx]
@@ -240,12 +240,12 @@ G_M15401_IG04:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
        mov      dword ptr [ebp-0x20], ecx
        mov      byte  ptr [ebp-0x1C], 0
        cmp      byte  ptr [ebp-0x1C], 0
-       jne      G_M15401_IG15
+       jne      G_M15401_IG20
        mov      esi, gword ptr [ebp-0x58]
        ; gcrRegs +[esi]
        ; byrRegs -[esi]
        test     esi, esi
-       je       G_M15401_IG16
+       je       G_M15401_IG21
        mov      ecx, dword ptr [ebp-0x20]
        cmp      ecx, dword ptr [ebp-0x14]
        ja       G_M15401_IG48
@@ -269,7 +269,7 @@ G_M15401_IG04:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
 G_M15401_IG05:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
        mov      eax, dword ptr [ebp-0x30]
        cmp      dword ptr [esi+0x04], eax
-       ja       G_M15401_IG16
+       ja       G_M15401_IG21
                         ;; size=12 bbWeight=2 PerfScore 10.00
 G_M15401_IG06:        ; bbWeight=2.00, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
        lea      edx, bword ptr [esi+0x08]
@@ -308,7 +308,7 @@ G_M15401_IG07:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
                        ;; size=46 bbWeight=2 PerfScore 25.00
 G_M15401_IG08:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
        cmp      dword ptr [ebp-0x34], 2
-       jb       G_M15401_IG18
+       jb       G_M15401_IG25
                       ;; size=10 bbWeight=2 PerfScore 6.00
 G_M15401_IG09:        ; bbWeight=2.00, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
        mov      edx, 0xD1FFAB1E
@@ -346,10 +346,10 @@ G_M15401_IG10:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=57 bbWeight=2 PerfScore 32.50
-G_M15401_IG11:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref, isz
+G_M15401_IG11:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
        cmp      dword ptr [ebp-0x38], 0
-       je       SHORT G_M15401_IG19
-                       ;; size=6 bbWeight=2 PerfScore 6.00
+       je       G_M15401_IG26
+                       ;; size=10 bbWeight=2 PerfScore 6.00
 G_M15401_IG12:        ; bbWeight=2.00, gcrefRegs=00000040 {esi}, byrefRegs=00000008 {ebx}, byref
        mov      edx, 0xD1FFAB1E
        ; byrRegs +[edx]
@@ -373,7 +373,7 @@ G_M15401_IG14:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      bword ptr [ebp-0x74], eax
        ; GC ptr vars +{V73}
        test     ebx, ebx
-       jge      SHORT G_M15401_IG20
+       jge      SHORT G_M15401_IG15
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
@@ -381,51 +381,14 @@ G_M15401_IG14:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
        ; byrRegs -[eax]
-       jmp      SHORT G_M15401_IG17
-                       ;; size=28 bbWeight=2 PerfScore 17.50
-G_M15401_IG15:        ; bbWeight=1, gcVars=000000000000000000004200 {V00 V08}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[esi]
-       ; GC ptr vars -{V73}
-       mov      esi, gword ptr [ebp-0x58]
-       ; gcrRegs +[esi]
-                       ;; size=3 bbWeight=1 PerfScore 1.00
-G_M15401_IG16:        ; bbWeight=0.00, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       lea      ecx, [ebp-0x28]
-       mov      edx, esi
-       ; gcrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[edx]
-       jmp      G_M15401_IG07
-                       ;; size=16 bbWeight=0.00 PerfScore 0.02
-G_M15401_IG17:        ; bbWeight=2, gcVars=000000000000000000044200 {V00 V08 V73}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V73}
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-       jmp      SHORT G_M15401_IG20
-                       ;; size=18 bbWeight=2 PerfScore 11.00
-G_M15401_IG18:        ; bbWeight=0.01, gcVars=000000000000000000004200 {V00 V08}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
-       ; GC ptr vars -{V73}
-       lea      ecx, [ebp-0x28]
-       mov      edx, 0xD1FFAB1E
-       ; gcrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[edx]
-       jmp      G_M15401_IG10
-                       ;; size=19 bbWeight=0.01 PerfScore 0.03
-G_M15401_IG19:        ; bbWeight=0.01, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       lea      ecx, [ebp-0x28]
-       mov      edx, 0xD1FFAB1E
-       ; gcrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[edx]
-       jmp      SHORT G_M15401_IG13
-                       ;; size=16 bbWeight=0.01 PerfScore 0.03
-G_M15401_IG20:        ; bbWeight=2, gcVars=000000000000000000044200 {V00 V08 V73}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V73}
+                      ;; size=42 bbWeight=2 PerfScore 20.50
+G_M15401_IG15:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      eax, bword ptr [ebp-0x74]
        ; byrRegs +[eax]
        push     ebx
@@ -444,9 +407,9 @@ G_M15401_IG20:        ; bbWeight=2, gcVars=000000000000000000044200 {V00 V08 V73
        vmovdqu  xmmword ptr [ebp-0x28], xmm0
        vmovdqu  xmmword ptr [ebp-0x20], xmm0
        test     edx, edx
-       je       SHORT G_M15401_IG22
+       je       SHORT G_M15401_IG17
                      ;; size=33 bbWeight=2 PerfScore 17.67
-G_M15401_IG21:        ; bbWeight=1.94, gcrefRegs=0000004C {edx ebx esi}, byrefRegs=00000000 {}, byref
+G_M15401_IG16:        ; bbWeight=1.94, gcrefRegs=0000004C {edx ebx esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        push     0
        mov      ecx, gword ptr [D1FFAB1EH]      ; static handle
@@ -455,7 +418,7 @@ G_M15401_IG21:        ; bbWeight=1.94, gcrefRegs=0000004C {edx ebx esi}, byrefRe
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=16 bbWeight=1.94 PerfScore 17.48
-G_M15401_IG22:        ; bbWeight=8, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
+G_M15401_IG17:        ; bbWeight=8, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi]
        mov      edx, gword ptr [ebp-0x50]
        ; gcrRegs +[edx]
@@ -472,14 +435,14 @@ G_M15401_IG22:        ; bbWeight=8, gcrefRegs=00000008 {ebx}, byrefRegs=00000000
        test     eax, eax
        jne      G_M15401_IG03
                        ;; size=26 bbWeight=8 PerfScore 94.00
-G_M15401_IG23:        ; bbWeight=1, gcVars=000000000000000000000200 {V00}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M15401_IG18:        ; bbWeight=1, gcVars=000000000000000000000200 {V00}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax]
        ; GC ptr vars -{V08}
        mov      esi, dword ptr [ebp-0x10]
        test     esi, esi
-       jne      SHORT G_M15401_IG25
-                       ;; size=7 bbWeight=1 PerfScore 2.25
-G_M15401_IG24:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
+       jne      G_M15401_IG33
+                       ;; size=11 bbWeight=1 PerfScore 2.25
+G_M15401_IG19:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
        mov      edi, gword ptr [ebp+0x10]
        ; gcrRegs +[edi]
        mov      edx, dword ptr [edi+0x04]
@@ -505,17 +468,146 @@ G_M15401_IG24:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000
        mov      edi, gword ptr [ebp-0x5C]
        ; gcrRegs +[edi]
        mov      gword ptr [ebp+0x10], edi
-                        ;; size=59 bbWeight=0.50 PerfScore 10.00
-G_M15401_IG25:        ; bbWeight=1, gcVars=000000000000000000000200 {V00}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[edi]
-       ; GC ptr vars -{V09}
+       jmp      G_M15401_IG33
+                       ;; size=64 bbWeight=0.50 PerfScore 11.00
+G_M15401_IG20:        ; bbWeight=1, gcVars=000000000000000000004200 {V00 V08}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[ebx edi]
+       ; GC ptr vars -{V09} +{V08}
+       mov      esi, gword ptr [ebp-0x58]
+       ; gcrRegs +[esi]
+                       ;; size=3 bbWeight=1 PerfScore 1.00
+G_M15401_IG21:        ; bbWeight=0.00, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       lea      ecx, [ebp-0x28]
+       mov      edx, esi
+       ; gcrRegs +[edx]
+       call     [<unknown method>]
+       ; gcrRegs -[edx]
+       jmp      G_M15401_IG07
+                       ;; size=16 bbWeight=0.00 PerfScore 0.02
+G_M15401_IG22:        ; bbWeight=0.50, gcVars=000000000000000000008200 {V00 V12}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[esi] +[ebx edi]
+       ; GC ptr vars -{V08} +{V12 V15}
+       xor      ecx, ecx
+       mov      edx, gword ptr [ebp+0x0C]
+       ; gcrRegs +[edx]
+       cmp      dword ptr [edx+0x04], 0
+       jle      G_M15401_IG31
+                       ;; size=15 bbWeight=0.50 PerfScore 2.62
+G_M15401_IG23:        ; bbWeight=4, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref, isz
+       mov      esi, gword ptr [edx+4*ecx+0x08]
+       ; gcrRegs +[esi]
+       test     esi, esi
+       je       SHORT G_M15401_IG30
+                       ;; size=8 bbWeight=4 PerfScore 13.00
+G_M15401_IG24:        ; bbWeight=1.84, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M15401_IG27
+                       ;; size=2 bbWeight=1.84 PerfScore 3.68
+G_M15401_IG25:        ; bbWeight=0.01, gcVars=000000000000000000004200 {V00 V08}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[edx ebx edi]
+       ; GC ptr vars -{V12 V15} +{V08}
+       lea      ecx, [ebp-0x28]
+       mov      edx, 0xD1FFAB1E
+       ; gcrRegs +[edx]
+       call     [<unknown method>]
+       ; gcrRegs -[edx]
+       jmp      G_M15401_IG10
+                       ;; size=19 bbWeight=0.01 PerfScore 0.03
+G_M15401_IG26:        ; bbWeight=0.01, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       lea      ecx, [ebp-0x28]
+       mov      edx, 0xD1FFAB1E
+       ; gcrRegs +[edx]
+       call     [<unknown method>]
+       ; gcrRegs -[edx]
+       jmp      G_M15401_IG13
+                       ;; size=19 bbWeight=0.01 PerfScore 0.03
+G_M15401_IG27:        ; bbWeight=1.84, gcVars=000000000000000000008200 {V00 V12}, gcrefRegs=000000CC {edx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs +[edx ebx edi]
+       ; GC ptr vars -{V08} +{V12 V15}
+       cmp      dword ptr [esi+0x04], 0
+       je       SHORT G_M15401_IG30
+                       ;; size=6 bbWeight=1.84 PerfScore 7.35
+G_M15401_IG28:        ; bbWeight=2, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[esi]
+       cmp      dword ptr [ebp-0x10], 0
+       jne      G_M15401_IG43
+       mov      esi, 2
+                       ;; size=15 bbWeight=2 PerfScore 6.50
+G_M15401_IG29:        ; bbWeight=2, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref
+       add      esi, ecx
+       mov      gword ptr [ebp+0x0C], edx
+       mov      dword ptr [ebp-0x2C], ecx
+       mov      edx, gword ptr [edx+4*ecx+0x08]
+       mov      eax, edi
+       ; gcrRegs +[eax]
+       cmp      byte  ptr [eax], al
+       test     esi, esi
+       jl       G_M15401_IG54
...
  
+20 (+4.30%) : 296438.dasm - Microsoft.Extensions.Caching.Memory.MemoryCache:Sum():System.ValueTuple`2[long,long]:this (FullOpts)
@@ -8,9 +8,9 @@
 ; 4 inlinees with PGO data; 11 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T14] (  5,  5   )     ref  ->  esi         this class-hnd single-def <Microsoft.Extensions.Caching.Memory.MemoryCache>
-;  V01 RetBuf       [V01,T15] (  4,  4   )   byref  ->  [ebp-0x5C]  single-def
-;  V02 loc0         [V02,T32] (  4,  1.50)     ref  ->  [ebp-0x60]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V00 this         [V00,T15] (  5,  5   )     ref  ->  esi         this class-hnd single-def <Microsoft.Extensions.Caching.Memory.MemoryCache>
+;  V01 RetBuf       [V01,T16] (  4,  4   )   byref  ->  [ebp-0x60]  single-def
+;  V02 loc0         [V02,T33] (  4,  1.50)     ref  ->  [ebp-0x64]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V03 loc1         [V03    ] (  5,  4   )   ubyte  ->  [ebp-0x24]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;* V04 loc2         [V04    ] (  0,  0   )    long  ->  zero-ref   
 ;* V05 loc3         [V05    ] (  0,  0   )    long  ->  zero-ref   
@@ -19,57 +19,58 @@
 ;* V08 loc6         [V08    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
 ;* V09 loc7         [V09    ] (  0,  0   )  struct (16) zero-ref    <System.ValueTuple`2[long,long]>
 ;* V10 loc8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[long,long]>
-;  V11 tmp1         [V11,T28] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
-;  V12 tmp2         [V12,T27] (  2,  4   )     ref  ->  esi         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V11 tmp1         [V11,T29] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
+;  V12 tmp2         [V12,T28] (  2,  4   )     ref  ->  esi         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V13 tmp3         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.WeakReference`1[Microsoft.Extensions.Caching.Memory.MemoryCache+Stats]]>
 ;* V14 tmp4         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V15 tmp5         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
-;  V16 tmp6         [V16,T12] (  5,  8   )     ref  ->  [ebp-0x64]  class-hnd "Inline return value spill temp" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
-;  V17 tmp7         [V17,T06] (  5, 10.66)     int  ->  eax         "Inline stloc first use temp"
+;  V16 tmp6         [V16,T13] (  5,  8   )     ref  ->  [ebp-0x68]  class-hnd "Inline return value spill temp" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
+;  V17 tmp7         [V17,T07] (  5, 10.66)     int  ->  ebx         "Inline stloc first use temp"
 ;* V18 tmp8         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
-;  V19 tmp9         [V19,T26] (  3,  4   )     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
+;  V19 tmp9         [V19,T27] (  3,  4   )     ref  ->  ebx         class-hnd "Inline stloc first use temp" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
 ;* V20 tmp10        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
 ;* V21 tmp11        [V21    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
-;  V22 tmp12        [V22,T35] (  3,  0   )     ref  ->  [ebp-0x68]  class-hnd spill-single-def "updating class info" <System.ComAwareWeakReference>
+;  V22 tmp12        [V22,T36] (  3,  0   )     ref  ->  ebx         class-hnd "updating class info" <System.ComAwareWeakReference>
 ;* V23 tmp13        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp14        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V25 tmp15        [V25,T36] (  2,  0   )     ref  ->  eax         class-hnd "dup spill" <System.Object>
-;  V26 tmp16        [V26,T34] (  4,  0   )     ref  ->  eax        
-;  V27 tmp17        [V27,T04] (  3, 12   )   byref  ->  eax         "Inlining Arg"
-;  V28 tmp18        [V28,T05] (  3, 12   )   byref  ->  edx         "Inlining Arg"
-;* V29 tmp19        [V29,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V25 tmp15        [V25,T37] (  2,  0   )     ref  ->  eax         class-hnd "dup spill" <System.Object>
+;  V26 tmp16        [V26,T35] (  4,  0   )     ref  ->  eax        
+;  V27 tmp17        [V27,T05] (  3, 12   )   byref  ->  ebx         "Inlining Arg"
+;  V28 tmp18        [V28,T06] (  3, 12   )   byref  ->  ecx         "Inlining Arg"
+;* V29 tmp19        [V29,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp21        [V31,T01] (  5, 17.01)     ref  ->  esi         single-def "field V06._list (fldOffset=0x0)" P-INDEP
-;  V32 tmp22        [V32,T03] (  3,  8.66)     ref  ->  [ebp-0x6C]  spill-single-def "field V06._current (fldOffset=0x4)" P-INDEP
+;  V31 tmp21        [V31,T02] (  4, 16.34)     ref  ->  [ebp-0x6C]  spill-single-def "field V06._list (fldOffset=0x0)" P-INDEP
+;  V32 tmp22        [V32,T03] (  3,  8.66)     ref  ->  [ebp-0x70]  spill-single-def "field V06._current (fldOffset=0x4)" P-INDEP
 ;  V33 tmp23        [V33,T00] (  6, 18.32)     int  ->  edi         "field V06._index (fldOffset=0x8)" P-INDEP
-;  V34 tmp24        [V34,T07] (  3,  9.67)     int  ->  ebx         single-def "field V06._version (fldOffset=0xc)" P-INDEP
+;  V34 tmp24        [V34,T12] (  2,  9   )     int  ->  [ebp-0x28]  spill-single-def "field V06._version (fldOffset=0xc)" P-INDEP
 ;* V35 tmp25        [V35    ] (  0,  0   )    long  ->  zero-ref    single-def "field V09.Item1 (fldOffset=0x0)" P-INDEP
 ;* V36 tmp26        [V36    ] (  0,  0   )    long  ->  zero-ref    single-def "field V09.Item2 (fldOffset=0x8)" P-INDEP
-;  V37 tmp27        [V37,T20] (  3,  6   )    long  ->  [ebp-0x2C]  do-not-enreg[F] single-def "field V10.Item1 (fldOffset=0x0)" P-INDEP
-;  V38 tmp28        [V38,T21] (  3,  6   )    long  ->  [ebp-0x34]  do-not-enreg[F] single-def "field V10.Item2 (fldOffset=0x8)" P-INDEP
-;  V39 tmp29        [V39,T29] (  3,  3   )     ref  ->  [ebp-0x70]  spill-single-def "field V13._list (fldOffset=0x0)" P-INDEP
+;  V37 tmp27        [V37,T21] (  3,  6   )    long  ->  [ebp-0x30]  do-not-enreg[F] single-def "field V10.Item1 (fldOffset=0x0)" P-INDEP
+;  V38 tmp28        [V38,T22] (  3,  6   )    long  ->  [ebp-0x38]  do-not-enreg[F] single-def "field V10.Item2 (fldOffset=0x8)" P-INDEP
+;  V39 tmp29        [V39,T30] (  3,  3   )     ref  ->  [ebp-0x74]  spill-single-def "field V13._list (fldOffset=0x0)" P-INDEP
 ;* V40 tmp30        [V40    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V13._current (fldOffset=0x4)" P-INDEP
-;* V41 tmp31        [V41,T33] (  0,  0   )     int  ->  zero-ref    single-def "field V13._index (fldOffset=0x8)" P-INDEP
-;  V42 tmp32        [V42,T31] (  2,  2   )     int  ->  [ebp-0x38]  spill-single-def "field V13._version (fldOffset=0xc)" P-INDEP
-;  V43 tmp33        [V43,T02] (  3, 19.97)     ref  ->  eax         "arr expr"
+;* V41 tmp31        [V41,T34] (  0,  0   )     int  ->  zero-ref    single-def "field V13._index (fldOffset=0x8)" P-INDEP
+;  V42 tmp32        [V42,T32] (  2,  2   )     int  ->  [ebp-0x3C]  spill-single-def "field V13._version (fldOffset=0xc)" P-INDEP
+;  V43 tmp33        [V43,T01] (  3, 19.97)     ref  ->  ebx         "arr expr"
 ;  V44 EHSlots      [V44    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V45 cse0         [V45,T30] (  3,  3   )     ref  ->  ecx         "CSE - conservative"
-;  V46 rat0         [V46,T08] (  4,  9   )     int  ->  [ebp-0x3C]  "field V04.lo (fldOffset=0x0)" P-INDEP
-;  V47 rat1         [V47,T09] (  4,  9   )     int  ->  [ebp-0x40]  "field V04.hi (fldOffset=0x4)" P-INDEP
-;  V48 rat2         [V48,T10] (  4,  9   )     int  ->  [ebp-0x44]  "field V05.lo (fldOffset=0x0)" P-INDEP
-;  V49 rat3         [V49,T11] (  4,  9   )     int  ->  [ebp-0x48]  "field V05.hi (fldOffset=0x4)" P-INDEP
-;  V50 rat4         [V50,T16] (  3,  6   )   byref  ->  eax         "ReplaceWithLclVar is creating a new local variable"
-;  V51 rat5         [V51,T17] (  3,  6   )   byref  ->  ecx         "ReplaceWithLclVar is creating a new local variable"
-;  V52 rat6         [V52    ] (  1,  4   )    long  ->  [ebp-0x50]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
-;  V53 rat7         [V53,T22] (  2,  6   )     int  ->  eax         "field V52.lo (fldOffset=0x0)" P-INDEP
-;  V54 rat8         [V54,T23] (  2,  6   )     int  ->  edx         "field V52.hi (fldOffset=0x4)" P-INDEP
-;  V55 rat9         [V55    ] (  1,  4   )    long  ->  [ebp-0x58]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
-;  V56 rat10        [V56,T24] (  2,  6   )     int  ->  eax         "field V55.lo (fldOffset=0x0)" P-INDEP
-;  V57 rat11        [V57,T25] (  2,  6   )     int  ->  edx         "field V55.hi (fldOffset=0x4)" P-INDEP
-;  V58 rat12        [V58,T18] (  3,  6   )   byref  ->  eax         "ReplaceWithLclVar is creating a new local variable"
-;  V59 rat13        [V59,T19] (  3,  6   )   byref  ->  edi         "ReplaceWithLclVar is creating a new local variable"
+;  V45 cse0         [V45,T04] (  2,  8.01)     int  ->  ebx         "CSE - moderate"
+;  V46 cse1         [V46,T31] (  3,  3   )     ref  ->  ecx         "CSE - conservative"
+;  V47 rat0         [V47,T08] (  4,  9   )     int  ->  [ebp-0x40]  "field V04.lo (fldOffset=0x0)" P-INDEP
+;  V48 rat1         [V48,T09] (  4,  9   )     int  ->  [ebp-0x44]  "field V04.hi (fldOffset=0x4)" P-INDEP
+;  V49 rat2         [V49,T10] (  4,  9   )     int  ->  [ebp-0x48]  "field V05.lo (fldOffset=0x0)" P-INDEP
+;  V50 rat3         [V50,T11] (  4,  9   )     int  ->  [ebp-0x4C]  "field V05.hi (fldOffset=0x4)" P-INDEP
+;  V51 rat4         [V51,T17] (  3,  6   )   byref  ->  eax         "ReplaceWithLclVar is creating a new local variable"
+;  V52 rat5         [V52,T18] (  3,  6   )   byref  ->  ecx         "ReplaceWithLclVar is creating a new local variable"
+;  V53 rat6         [V53    ] (  1,  4   )    long  ->  [ebp-0x54]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
+;  V54 rat7         [V54,T23] (  2,  6   )     int  ->  eax         "field V53.lo (fldOffset=0x0)" P-INDEP
+;  V55 rat8         [V55,T24] (  2,  6   )     int  ->  edx         "field V53.hi (fldOffset=0x4)" P-INDEP
+;  V56 rat9         [V56    ] (  1,  4   )    long  ->  [ebp-0x5C]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
+;  V57 rat10        [V57,T25] (  2,  6   )     int  ->  eax         "field V56.lo (fldOffset=0x0)" P-INDEP
+;  V58 rat11        [V58,T26] (  2,  6   )     int  ->  edx         "field V56.hi (fldOffset=0x4)" P-INDEP
+;  V59 rat12        [V59,T19] (  3,  6   )   byref  ->  eax         "ReplaceWithLclVar is creating a new local variable"
+;  V60 rat13        [V60,T20] (  3,  6   )   byref  ->  edi         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 100
+; Lcl frame size = 104
 
 G_M42359_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -77,23 +78,23 @@ G_M42359_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 100
+       sub      esp, 104
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  xmmword ptr [ebp-0x24], xmm4
        xor      eax, eax
        mov      dword ptr [ebp-0x14], eax
-       mov      bword ptr [ebp-0x5C], edx
+       mov      bword ptr [ebp-0x60], edx
        ; GC ptr vars +{V01}
        mov      esi, ecx
        ; gcrRegs +[esi]
                        ;; size=28 bbWeight=1 PerfScore 9.33
-G_M42359_IG02:        ; bbWeight=1, gcVars=0000000000008000 {V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M42359_IG02:        ; bbWeight=1, gcVars=0000000000010000 {V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
        mov      ecx, gword ptr [esi+0x0C]
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x60], ecx
+       mov      gword ptr [ebp-0x64], ecx
        ; GC ptr vars +{V02}
                        ;; size=6 bbWeight=1 PerfScore 3.00
-G_M42359_IG03:        ; bbWeight=1, gcVars=0000000100008000 {V01 V02}, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M42359_IG03:        ; bbWeight=1, gcVars=0000000200010000 {V01 V02}, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      byte  ptr [ebp-0x24], 0
        jne      G_M42359_IG13
        lea      edx, [ebp-0x24]
@@ -119,224 +120,223 @@ G_M42359_IG05:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      ebx, dword ptr [eax]
        mov      eax, dword ptr [eax+0x04]
        ; byrRegs -[eax]
-       mov      dword ptr [ebp-0x3C], ebx
-       mov      dword ptr [ebp-0x40], eax
+       mov      dword ptr [ebp-0x40], ebx
+       mov      dword ptr [ebp-0x44], eax
        add      ecx, 12
        ; gcrRegs -[ecx]
        ; byrRegs +[ecx]
        mov      edx, dword ptr [ecx]
        mov      ecx, dword ptr [ecx+0x04]
        ; byrRegs -[ecx]
-       mov      dword ptr [ebp-0x44], edx
-       mov      dword ptr [ebp-0x48], ecx
+       mov      dword ptr [ebp-0x48], edx
+       mov      dword ptr [ebp-0x4C], ecx
        mov      esi, gword ptr [esi+0x0C]
-       mov      gword ptr [ebp-0x70], esi
+       mov      gword ptr [ebp-0x74], esi
        ; GC ptr vars +{V39}
        mov      esi, dword ptr [esi+0x0C]
        ; gcrRegs -[esi]
-       mov      dword ptr [ebp-0x38], esi
-       mov      esi, gword ptr [ebp-0x70]
+       mov      dword ptr [ebp-0x3C], esi
+       mov      esi, gword ptr [ebp-0x74]
        ; gcrRegs +[esi]
+       mov      gword ptr [ebp-0x6C], esi
+       ; GC ptr vars +{V31}
        xor      edi, edi
-       mov      ebx, dword ptr [ebp-0x38]
-                       ;; size=51 bbWeight=1 PerfScore 23.00
-G_M42359_IG06:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       mov      ebx, dword ptr [ebp-0x3C]
+       mov      dword ptr [ebp-0x28], ebx
+                       ;; size=57 bbWeight=1 PerfScore 25.00
+G_M42359_IG06:        ; bbWeight=8, gcVars=0000000200010004 {V01 V02 V31}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars -{V39}
        cmp      ebx, dword ptr [esi+0x0C]
-       jne      G_M42359_IG16
+       jne      G_M42359_IG18
                         ;; size=9 bbWeight=8 PerfScore 32.00
 G_M42359_IG07:        ; bbWeight=4.01, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       cmp      edi, dword ptr [esi+0x08]
+       mov      ebx, dword ptr [esi+0x08]
+       cmp      edi, ebx
+       jae      G_M42359_IG16
+                       ;; size=11 bbWeight=4.01 PerfScore 13.02
+G_M42359_IG08:        ; bbWeight=3.33, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       mov      ebx, gword ptr [esi+0x04]
+       ; gcrRegs +[ebx]
+       cmp      edi, dword ptr [ebx+0x04]
        jae      G_M42359_IG17
-                       ;; size=9 bbWeight=4.01 PerfScore 16.02
-G_M42359_IG08:        ; bbWeight=3.33, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, gword ptr [esi+0x04]
-       ; gcrRegs +[eax]
-       cmp      edi, dword ptr [eax+0x04]
-       jae      G_M42359_IG18
-       mov      eax, gword ptr [eax+4*edi+0x08]
-       mov      gword ptr [ebp-0x6C], eax
+       mov      ebx, gword ptr [ebx+4*edi+0x08]
+       mov      gword ptr [ebp-0x70], ebx
        ; GC ptr vars +{V32}
        inc      edi
-       mov      eax, dword ptr [eax+0x04]
-       ; gcrRegs -[eax]
-       and      eax, -2
-       je       SHORT G_M42359_IG12
-                       ;; size=28 bbWeight=3.33 PerfScore 41.61
-G_M42359_IG09:        ; bbWeight=2, gcVars=0000000100008008 {V01 V02 V32}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
-       test     al, 2
+       mov      ebx, dword ptr [ebx+0x04]
+       ; gcrRegs -[ebx]
+       and      ebx, -2
+       je       G_M42359_IG12
+                       ;; size=32 bbWeight=3.33 PerfScore 41.61
+G_M42359_IG09:        ; bbWeight=2, gcVars=000000020001000C {V01 V02 V31 V32}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+       test     bl, 2
        jne      G_M42359_IG14
-       mov      ecx, eax
+       mov      ecx, ebx
        call     <unknown method>
        ; gcrRegs +[eax]
-                      ;; size=15 bbWeight=2 PerfScore 5.00
-G_M42359_IG10:        ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref
-       mov      ecx, eax
-       ; gcrRegs +[ecx]
-                       ;; size=2 bbWeight=2 PerfScore 0.50
-G_M42359_IG11:        ; bbWeight=2, gcVars=0000000100008000 {V01 V02}, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      ebx, eax
+       ; gcrRegs +[ebx]
+                       ;; size=18 bbWeight=2 PerfScore 5.50
+G_M42359_IG10:        ; bbWeight=2, gcVars=0000000200010004 {V01 V02 V31}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
        ; GC ptr vars -{V32}
-       test     ecx, ecx
-       mov      gword ptr [ebp-0x64], ecx
+       test     ebx, ebx
+       mov      gword ptr [ebp-0x68], ebx
        ; GC ptr vars +{V16}
-       je       SHORT G_M42359_IG06
-       mov      eax, gword ptr [ebp-0x64]
-       ; gcrRegs +[eax]
-       add      eax, 4
-       ; gcrRegs -[eax]
-       ; byrRegs +[eax]
-       test     eax, eax
-       je       G_M42359_IG20
+       je       SHORT G_M42359_IG11
+       mov      ebx, gword ptr [ebp-0x68]
...
  
+29 (+4.90%) : 277684.dasm - System.Security.Cryptography.XmlKeyHelper:WriteCryptoBinary(System.String,System.ReadOnlySpan`1[ubyte],System.Text.StringBuilder) (FullOpts)
@@ -106,7 +106,7 @@ G_M40104_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
        cmp      dword ptr [edx+0x04], ecx
-       jbe      G_M40104_IG21
+       jbe      G_M40104_IG34
                         ;; size=18 bbWeight=1 PerfScore 9.00
 G_M40104_IG03:        ; bbWeight=0.47, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
        mov      word  ptr [edx+2*ecx+0x08], 60
@@ -137,7 +137,7 @@ G_M40104_IG06:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=000000C0 {esi
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
        cmp      dword ptr [edx+0x04], ecx
-       jbe      G_M40104_IG25
+       jbe      G_M40104_IG35
                         ;; size=15 bbWeight=1 PerfScore 8.00
 G_M40104_IG07:        ; bbWeight=0.47, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
        mov      word  ptr [edx+2*ecx+0x08], 62
@@ -163,11 +163,11 @@ G_M40104_IG09:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        mov      bword ptr [ebp-0x2C], ecx
        ; GC ptr vars +{V48}
        test     ebx, ebx
-       jle      G_M40104_IG26
+       jle      G_M40104_IG32
                      ;; size=32 bbWeight=1 PerfScore 8.50
 G_M40104_IG10:        ; bbWeight=4, gcVars=00000080 {V48}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
        cmp      edx, 192
-       jl       G_M40104_IG20
+       jl       G_M40104_IG33
                      ;; size=12 bbWeight=4 PerfScore 5.00
 G_M40104_IG11:        ; bbWeight=1.47, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        mov      gword ptr [ebp-0x24], edi
@@ -231,49 +231,23 @@ G_M40104_IG17:        ; bbWeight=4.00, gcrefRegs=00000040 {esi}, byrefRegs=00000
                        ;; size=17 bbWeight=4.00 PerfScore 13.00
 G_M40104_IG18:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        test     eax, eax
-       jge      SHORT G_M40104_IG23
+       jge      SHORT G_M40104_IG20
                      ;; size=4 bbWeight=4 PerfScore 5.00
-G_M40104_IG19:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M40104_IG19:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-       jmp      SHORT G_M40104_IG22
-                       ;; size=18 bbWeight=2 PerfScore 11.00
-G_M40104_IG20:        ; bbWeight=0.53, gcVars=00000080 {V48}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs +[edi]
-       ; GC ptr vars -{V00}
-       mov      gword ptr [ebp-0x24], edi
-       ; GC ptr vars +{V00}
-       mov      dword ptr [ebp-0x18], edx
-       mov      edi, edx
-       ; gcrRegs -[edi]
-       mov      edx, dword ptr [ebp-0x18]
-       jmp      G_M40104_IG12
-                       ;; size=16 bbWeight=0.53 PerfScore 2.78
-G_M40104_IG21:        ; bbWeight=0.03, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs +[edi]
-       ; GC ptr vars -{V00 V48}
-       mov      ecx, esi
-       ; gcrRegs +[ecx]
-       mov      edx, 60
-       call     [<unknown method>]
-       ; gcrRegs -[ecx]
-       jmp      G_M40104_IG04
-                       ;; size=18 bbWeight=0.03 PerfScore 0.19
-G_M40104_IG22:        ; bbWeight=2, gcVars=00000480 {V00 V48}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[edi]
-       ; GC ptr vars +{V00 V48}
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-                      ;; size=16 bbWeight=2 PerfScore 7.00
-G_M40104_IG23:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+                       ;; size=32 bbWeight=2 PerfScore 14.00
+G_M40104_IG20:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        push     dword ptr [ebp-0x20]
        mov      ecx, esi
        ; gcrRegs +[ecx]
@@ -289,51 +263,41 @@ G_M40104_IG23:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      edi, eax
        test     edx, edx
        mov      eax, edi
-       mov      edi, gword ptr [ebp-0x24]
-       ; gcrRegs +[edi]
-       jg       G_M40104_IG10
-                       ;; size=39 bbWeight=4 PerfScore 46.00
-G_M40104_IG24:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V00 V48}
-       jmp      SHORT G_M40104_IG26
-                       ;; size=2 bbWeight=1 PerfScore 2.00
-G_M40104_IG25:        ; bbWeight=0.03, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
-       mov      ecx, esi
-       ; gcrRegs +[ecx]
-       mov      edx, 62
-       call     [<unknown method>]
-       ; gcrRegs -[ecx]
-       jmp      G_M40104_IG08
-                       ;; size=18 bbWeight=0.03 PerfScore 0.19
-G_M40104_IG26:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       jg       SHORT G_M40104_IG31
+                       ;; size=32 bbWeight=4 PerfScore 42.00
+G_M40104_IG21:        ; bbWeight=1, gcVars=00000400 {V00}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars -{V48}
        mov      ecx, dword ptr [esi+0x0C]
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
        cmp      dword ptr [edx+0x04], ecx
-       jbe      SHORT G_M40104_IG36
-                       ;; size=11 bbWeight=1 PerfScore 8.00
-G_M40104_IG27:        ; bbWeight=0.47, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
+       jbe      G_M40104_IG36
+                       ;; size=15 bbWeight=1 PerfScore 8.00
+G_M40104_IG22:        ; bbWeight=0.47, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
        mov      word  ptr [edx+2*ecx+0x08], 60
        inc      dword ptr [esi+0x0C]
                        ;; size=10 bbWeight=0.47 PerfScore 1.86
-G_M40104_IG28:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40104_IG23:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edx]
        mov      ecx, dword ptr [esi+0x0C]
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
        cmp      dword ptr [edx+0x04], ecx
-       jbe      SHORT G_M40104_IG37
-                       ;; size=11 bbWeight=1 PerfScore 8.00
-G_M40104_IG29:        ; bbWeight=0.47, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
+       jbe      G_M40104_IG37
+                       ;; size=15 bbWeight=1 PerfScore 8.00
+G_M40104_IG24:        ; bbWeight=0.47, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
        mov      word  ptr [edx+2*ecx+0x08], 47
        inc      dword ptr [esi+0x0C]
                        ;; size=10 bbWeight=0.47 PerfScore 1.86
-G_M40104_IG30:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40104_IG25:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edx]
+       mov      edi, gword ptr [ebp-0x24]
+       ; gcrRegs +[edi]
        test     edi, edi
-       je       SHORT G_M40104_IG32
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M40104_IG31:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       je       SHORT G_M40104_IG27
+                       ;; size=7 bbWeight=1 PerfScore 2.25
+G_M40104_IG26:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars -{V00}
        push     dword ptr [edi+0x04]
        lea      edx, bword ptr [edi+0x08]
        ; byrRegs +[edx]
@@ -343,24 +307,24 @@ G_M40104_IG31:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        ; gcrRegs -[ecx edi]
        ; byrRegs -[edx]
                        ;; size=14 bbWeight=0.50 PerfScore 2.87
-G_M40104_IG32:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M40104_IG27:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      ecx, dword ptr [esi+0x0C]
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
        cmp      dword ptr [edx+0x04], ecx
-       jbe      SHORT G_M40104_IG38
-                       ;; size=11 bbWeight=1 PerfScore 8.00
-G_M40104_IG33:        ; bbWeight=0.47, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
+       jbe      G_M40104_IG38
+                       ;; size=15 bbWeight=1 PerfScore 8.00
+G_M40104_IG28:        ; bbWeight=0.47, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
        mov      word  ptr [edx+2*ecx+0x08], 62
        inc      dword ptr [esi+0x0C]
                        ;; size=10 bbWeight=0.47 PerfScore 1.86
-G_M40104_IG34:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M40104_IG29:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edx esi]
        cmp      dword ptr [ebp-0x34], 0xD1FFAB1E
-       je       SHORT G_M40104_IG35
+       je       SHORT G_M40104_IG30
        call     CORINFO_HELP_FAIL_FAST
                        ;; size=14 bbWeight=1 PerfScore 4.00
-G_M40104_IG35:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M40104_IG30:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -368,32 +332,74 @@ G_M40104_IG35:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        pop      ebp
        ret      8
                        ;; size=10 bbWeight=1 PerfScore 4.50
-G_M40104_IG36:        ; bbWeight=0.03, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[esi edi]
+G_M40104_IG31:        ; bbWeight=2, gcVars=00000480 {V00 V48}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs +[esi]
+       ; GC ptr vars +{V00 V48}
+       mov      edi, gword ptr [ebp-0x24]
+       ; gcrRegs +[edi]
+       jmp      G_M40104_IG10
+                       ;; size=8 bbWeight=2 PerfScore 6.00
+G_M40104_IG32:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars -{V00 V48}
+       mov      gword ptr [ebp-0x24], edi
+       ; GC ptr vars +{V00}
+       jmp      G_M40104_IG21
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M40104_IG33:        ; bbWeight=0.53, gcVars=00000080 {V48}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars -{V00} +{V48}
+       mov      gword ptr [ebp-0x24], edi
+       ; GC ptr vars +{V00}
+       mov      dword ptr [ebp-0x18], edx
+       mov      edi, edx
+       ; gcrRegs -[edi]
+       mov      edx, dword ptr [ebp-0x18]
+       jmp      G_M40104_IG12
+                       ;; size=16 bbWeight=0.53 PerfScore 2.78
+G_M40104_IG34:        ; bbWeight=0.03, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs +[edi]
+       ; GC ptr vars -{V00 V48}
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      edx, 60
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M40104_IG28
-                       ;; size=15 bbWeight=0.03 PerfScore 0.19
-G_M40104_IG37:        ; bbWeight=0.03, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       jmp      G_M40104_IG04
+                       ;; size=18 bbWeight=0.03 PerfScore 0.19
+G_M40104_IG35:        ; bbWeight=0.03, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       mov      edx, 62
+       call     [<unknown method>]
+       ; gcrRegs -[ecx]
+       jmp      G_M40104_IG08
+                       ;; size=18 bbWeight=0.03 PerfScore 0.19
+G_M40104_IG36:        ; bbWeight=0.03, gcVars=00000400 {V00}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[edi]
+       ; GC ptr vars +{V00}
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       mov      edx, 60
+       call     [<unknown method>]
+       ; gcrRegs -[ecx]
+       jmp      G_M40104_IG23
+                       ;; size=18 bbWeight=0.03 PerfScore 0.19
+G_M40104_IG37:        ; bbWeight=0.03, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      ecx, esi
...
  
  
libraries_tests.run.windows.x86.Release.mch
-21 (-4.65%) : 43021.dasm - System.Speech.Internal.Synthesis.VoiceSynthesis:BuildInstalledVoices(System.Speech.Internal.Synthesis.VoiceSynthesis):System.Collections.Generic.List`1System.Speech.Synthesis.InstalledVoice
@@ -8,38 +8,39 @@
 ; 3 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T15] (  3,  6   )     ref  ->  [ebp-0x28]  class-hnd single-def <System.Speech.Internal.Synthesis.VoiceSynthesis>
-;  V01 loc0         [V01,T07] (  8, 21   )     ref  ->  [ebp-0x2C]  must-init class-hnd exact EH-live single-def <System.Collections.Generic.List`1[System.Speech.Synthesis.InstalledVoice]>
-;  V02 loc1         [V02,T21] (  2,  1   )     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Speech.Internal.ObjectTokens.ObjectTokenCategory>
+;  V00 arg0         [V00,T16] (  3,  6   )     ref  ->  [ebp-0x2C]  class-hnd single-def <System.Speech.Internal.Synthesis.VoiceSynthesis>
+;  V01 loc0         [V01,T08] (  8, 21   )     ref  ->  [ebp-0x30]  must-init class-hnd exact EH-live single-def <System.Collections.Generic.List`1[System.Speech.Synthesis.InstalledVoice]>
+;  V02 loc1         [V02,T22] (  2,  1   )     ref  ->  [ebp-0x34]  class-hnd exact EH-live spill-single-def <System.Speech.Internal.ObjectTokens.ObjectTokenCategory>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Speech.Internal.ObjectTokens.ObjectToken]>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Speech.Internal.ObjectTokens.ObjectToken>
-;  V05 tmp0         [V05,T16] (  3,  6   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Speech.Synthesis.InstalledVoice]>
-;  V06 tmp1         [V06,T05] (  3, 24   )     ref  ->  [ebp-0x34]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Speech.Synthesis.VoiceInfo>
+;  V05 tmp0         [V05,T17] (  3,  6   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Speech.Synthesis.InstalledVoice]>
+;  V06 tmp1         [V06,T04] (  3, 24   )     ref  ->  [ebp-0x38]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Speech.Synthesis.VoiceInfo>
 ;  V07 tmp2         [V07,T01] (  6, 40   )     ref  ->  eax         class-hnd exact "NewObj constructor temp" <System.Speech.Synthesis.InstalledVoice>
 ;* V08 tmp3         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Speech.Internal.ObjectTokens.ObjectTokenCategory>
-;  V09 tmp4         [V09,T18] (  3,  3   )     ref  ->  edi         class-hnd single-def "Inline stloc first use temp" <System.Speech.Internal.ObjectTokens.RegistryDataKey>
-;  V10 tmp5         [V10,T12] (  6, 12   )     ref  ->  eax         class-hnd exact single-def "NewObj constructor temp" <System.Speech.Internal.ObjectTokens.ObjectTokenCategory>
-;  V11 tmp6         [V11,T17] (  2,  4   )     ref  ->  eax         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V09 tmp4         [V09,T19] (  3,  3   )     ref  ->  edi         class-hnd single-def "Inline stloc first use temp" <System.Speech.Internal.ObjectTokens.RegistryDataKey>
+;  V10 tmp5         [V10,T13] (  6, 12   )     ref  ->  eax         class-hnd exact single-def "NewObj constructor temp" <System.Speech.Internal.ObjectTokens.ObjectTokenCategory>
+;  V11 tmp6         [V11,T18] (  2,  4   )     ref  ->  eax         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V12 tmp7         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Speech.Internal.ObjectTokens.ObjectToken]>
 ;* V13 tmp8         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Speech.Internal.ObjectTokens.RegistryDataKey>
-;  V14 tmp9         [V14,T09] (  2, 16   )     ref  ->  edx         class-hnd "dup spill" <System.Speech.Internal.ObjectTokens.RegistryDataKey>
-;  V15 tmp10        [V15,T08] (  4, 16   )     ref  ->  edx        
-;  V16 tmp11        [V16,T06] (  3, 24   )     ref  ->  eax         class-hnd "dup spill" <System.Speech.Internal.ObjectTokens.RegistryDataKey>
+;  V14 tmp9         [V14,T10] (  2, 16   )     ref  ->  edx         class-hnd "dup spill" <System.Speech.Internal.ObjectTokens.RegistryDataKey>
+;  V15 tmp10        [V15,T09] (  4, 16   )     ref  ->  edx        
+;  V16 tmp11        [V16,T05] (  3, 24   )     ref  ->  eax         class-hnd "dup spill" <System.Speech.Internal.ObjectTokens.RegistryDataKey>
 ;* V17 tmp12        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Speech.Internal.ObjectTokens.RegistryDataKey>
-;  V18 tmp13        [V18,T14] (  3, 10.96)     ref  ->  [ebp-0x38]  class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
-;  V19 tmp14        [V19,T10] (  4, 13.91)     int  ->  esi         "Inline stloc first use temp"
-;* V20 tmp15        [V20,T11] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V18 tmp13        [V18,T14] (  3, 10.96)     ref  ->  ecx         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V19 tmp14        [V19,T11] (  4, 13.91)     int  ->  esi         "Inline stloc first use temp"
+;* V20 tmp15        [V20,T12] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V22 tmp17        [V22,T04] (  5, 25   )     ref  ->  edi         single-def "field V03._list (fldOffset=0x0)" P-INDEP
+;  V22 tmp17        [V22,T07] (  4, 22.77)     ref  ->  edi         single-def "field V03._list (fldOffset=0x0)" P-INDEP
 ;  V23 tmp18        [V23,T03] (  6, 25.77)     ref  ->  [ebp-0x3C]  "field V03._current (fldOffset=0x4)" P-INDEP
 ;  V24 tmp19        [V24,T00] (  6, 32.07)     int  ->  [ebp-0x24]  "field V03._index (fldOffset=0x8)" P-INDEP
-;  V25 tmp20        [V25,T13] (  3, 11.23)     int  ->  ebx         single-def "field V03._version (fldOffset=0xc)" P-INDEP
-;  V26 tmp21        [V26,T19] (  3,  3   )     ref  ->  edi         single-def "field V12._list (fldOffset=0x0)" P-INDEP
+;  V25 tmp20        [V25,T15] (  2,  9   )     int  ->  [ebp-0x28]  spill-single-def "field V03._version (fldOffset=0xc)" P-INDEP
+;  V26 tmp21        [V26,T20] (  3,  3   )     ref  ->  edi         single-def "field V12._list (fldOffset=0x0)" P-INDEP
 ;* V27 tmp22        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V12._current (fldOffset=0x4)" P-INDEP
-;* V28 tmp23        [V28,T22] (  0,  0   )     int  ->  zero-ref    single-def "field V12._index (fldOffset=0x8)" P-INDEP
-;  V29 tmp24        [V29,T20] (  2,  2   )     int  ->  ebx         single-def "field V12._version (fldOffset=0xc)" P-INDEP
+;* V28 tmp23        [V28,T23] (  0,  0   )     int  ->  zero-ref    single-def "field V12._index (fldOffset=0x8)" P-INDEP
+;  V29 tmp24        [V29,T21] (  2,  2   )     int  ->  ebx         single-def "field V12._version (fldOffset=0xc)" P-INDEP
 ;  V30 tmp25        [V30,T02] (  3, 34.60)     ref  ->  edx         "arr expr"
 ;  V31 EHSlots      [V31    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
+;  V32 cse0         [V32,T06] (  2, 16   )     int  ->  edx         "CSE - moderate"
 ;
 ; Lcl frame size = 48
 
@@ -51,14 +52,10 @@ G_M39843_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     ebx
        sub      esp, 48
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu  xmmword ptr [ebp-0x2C], xmm4
-       xor      eax, eax
-       mov      dword ptr [ebp-0x1C], eax
-       mov      dword ptr [ebp-0x18], eax
-       mov      dword ptr [ebp-0x14], eax
+       vmovdqu  ymmword ptr [ebp-0x30], ymm4
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=31 bbWeight=1 PerfScore 10.33
+                     ;; size=20 bbWeight=1 PerfScore 7.08
 G_M39843_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      ecx, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.Speech.Synthesis.InstalledVoice]
        call     CORINFO_HELP_NEWSFAST
@@ -76,7 +73,7 @@ G_M39843_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        call     CORINFO_HELP_ASSIGN_REF_ECX
        ; gcrRegs -[ecx]
        ; byrRegs -[edx]
-       mov      gword ptr [ebp-0x2C], edi
+       mov      gword ptr [ebp-0x30], edi
        ; GC ptr vars +{V01}
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
@@ -97,10 +94,10 @@ G_M39843_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; byrRegs -[edx]
        movzx    ecx, byte  ptr [edi+0x0C]
        mov      byte  ptr [eax+0x0C], cl
-       mov      gword ptr [ebp-0x30], eax
+       mov      gword ptr [ebp-0x34], eax
        ; GC ptr vars +{V02}
                        ;; size=100 bbWeight=1 PerfScore 21.00
-G_M39843_IG03:        ; bbWeight=1, gcVars=00200080 {V01 V02}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M39843_IG03:        ; bbWeight=1, gcVars=00400100 {V01 V02}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[edi]
        push     0
        ; gcr arg push 0
@@ -115,11 +112,13 @@ G_M39843_IG03:        ; bbWeight=1, gcVars=00200080 {V01 V02}, gcrefRegs=0000004
        ; gcrRegs +[edi]
        mov      ebx, dword ptr [edi+0x0C]
        xor      ecx, ecx
+       mov      dword ptr [ebp-0x28], ebx
        jmp      G_M39843_IG08
-                     ;; size=24 bbWeight=1 PerfScore 9.00
+                      ;; size=27 bbWeight=1 PerfScore 10.00
 G_M39843_IG04:        ; bbWeight=4, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
        test     eax, eax
        mov      ecx, dword ptr [ebp-0x24]
+       mov      ebx, dword ptr [ebp-0x28]
        je       G_M39843_IG08
        mov      edx, gword ptr [eax+0x14]
        ; gcrRegs +[edx]
@@ -145,17 +144,17 @@ G_M39843_IG04:        ; bbWeight=4, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
        mov      eax, ecx
        mov      ecx, dword ptr [ebp-0x24]
        ; gcrRegs -[ecx]
-                      ;; size=55 bbWeight=4 PerfScore 60.00
+                     ;; size=58 bbWeight=4 PerfScore 64.00
 G_M39843_IG05:        ; bbWeight=4, gcrefRegs=000000C5 {eax edx esi edi}, byrefRegs=00000000 {}, byref, isz
        test     edx, edx
        mov      gword ptr [ebp-0x3C], eax
        ; GC ptr vars +{V23}
-       je       G_M39843_IG08
+       je       SHORT G_M39843_IG08
        mov      dword ptr [ebp-0x24], ecx
        mov      ecx, 0xD1FFAB1E      ; System.Speech.Synthesis.VoiceInfo
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs -[edx]
-       mov      gword ptr [ebp-0x34], eax
+       mov      gword ptr [ebp-0x38], eax
        ; GC ptr vars +{V06}
        mov      ecx, eax
        ; gcrRegs +[ecx]
@@ -169,70 +168,64 @@ G_M39843_IG05:        ; bbWeight=4, gcrefRegs=000000C5 {eax edx esi edi}, byrefR
        ; gcrRegs +[eax]
        lea      edx, bword ptr [eax+0x08]
        ; byrRegs +[edx]
-       mov      gword ptr [ebp-0x28], esi
+       mov      gword ptr [ebp-0x2C], esi
        ; GC ptr vars +{V00}
        call     CORINFO_HELP_ASSIGN_REF_ESI
        ; gcrRegs -[esi]
        ; byrRegs -[edx]
        lea      edx, bword ptr [eax+0x04]
        ; byrRegs +[edx]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      ecx, gword ptr [ebp-0x38]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V06}
        call     CORINFO_HELP_ASSIGN_REF_ECX
        ; gcrRegs -[ecx]
        ; byrRegs -[edx]
        mov      byte  ptr [eax+0x0C], 1
-       mov      edx, gword ptr [ebp-0x2C]
+       mov      edx, gword ptr [ebp-0x30]
        ; gcrRegs +[edx]
        inc      dword ptr [edx+0x0C]
        mov      ecx, gword ptr [edx+0x04]
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x38], ecx
-       ; GC ptr vars +{V18}
        mov      esi, dword ptr [edx+0x08]
        cmp      dword ptr [ecx+0x04], esi
        jbe      SHORT G_M39843_IG07
-                      ;; size=94 bbWeight=4 PerfScore 120.00
-G_M39843_IG06:        ; bbWeight=2.96, gcVars=0020C080 {V00 V01 V02 V18}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[ecx edx]
-       lea      edx, [esi+0x01]
-       mov      ecx, gword ptr [ebp-0x2C]
-       ; gcrRegs +[ecx]
-       mov      dword ptr [ecx+0x08], edx
+                        ;; size=87 bbWeight=4 PerfScore 116.00
+G_M39843_IG06:        ; bbWeight=2.96, gcrefRegs=00000087 {eax ecx edx edi}, byrefRegs=00000000 {}, byref, isz
+       lea      ebx, [esi+0x01]
+       mov      dword ptr [edx+0x08], ebx
        push     eax
        ; gcr arg push 0
-       mov      ecx, gword ptr [ebp-0x38]
        mov      edx, esi
-       ; GC ptr vars -{V18}
+       ; gcrRegs -[edx]
        call     CORINFO_HELP_ARRADDR_ST
        ; gcrRegs -[eax ecx]
        ; gcr arg pop 1
        mov      ecx, dword ptr [ebp-0x24]
-       mov      esi, gword ptr [ebp-0x28]
+       mov      ebx, dword ptr [ebp-0x28]
+       mov      esi, gword ptr [ebp-0x2C]
        ; gcrRegs +[esi]
        jmp      SHORT G_M39843_IG08
-                      ;; size=28 bbWeight=2.96 PerfScore 28.83
-G_M39843_IG07:        ; bbWeight=1.04, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[esi] +[eax]
-       mov      edx, gword ptr [ebp-0x2C]
-       ; gcrRegs +[edx]
+                      ;; size=25 bbWeight=2.96 PerfScore 25.87
+G_M39843_IG07:        ; bbWeight=1.04, gcrefRegs=00000085 {eax edx edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[esi] +[eax edx]
        mov      ecx, edx
        ; gcrRegs +[ecx]
        mov      edx, eax
        call     [<unknown method>]
        ; gcrRegs -[eax ecx edx]
        mov      ecx, dword ptr [ebp-0x24]
-       mov      esi, gword ptr [ebp-0x28]
+       mov      esi, gword ptr [ebp-0x2C]
        ; gcrRegs +[esi]
-                       ;; size=19 bbWeight=1.04 PerfScore 6.78
-G_M39843_IG08:        ; bbWeight=8, gcVars=00200080 {V01 V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+                       ;; size=16 bbWeight=1.04 PerfScore 5.74
+G_M39843_IG08:        ; bbWeight=8, gcVars=00400100 {V01 V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; GC ptr vars -{V00}
        cmp      ebx, dword ptr [edi+0x0C]
-       jne      SHORT G_M39843_IG12
-       cmp      ecx, dword ptr [edi+0x08]
-       jae      SHORT G_M39843_IG13
-                       ;; size=10 bbWeight=8 PerfScore 64.00
+       jne      SHORT G_M39843_IG11
+       mov      edx, dword ptr [edi+0x08]
+       cmp      ecx, edx
+       jae      SHORT G_M39843_IG12
+                       ;; size=12 bbWeight=8 PerfScore 58.00
 G_M39843_IG09:        ; bbWeight=5.77, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [edi+0x04]
        ; gcrRegs +[edx]
@@ -252,38 +245,32 @@ G_M39843_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M39843_IG12:        ; bbWeight=2.23, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[edi]
-       cmp      ebx, dword ptr [edi+0x0C]
-       jne      SHORT G_M39843_IG11
-                       ;; size=5 bbWeight=2.23 PerfScore 8.93
-G_M39843_IG13:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edi]
+G_M39843_IG12:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      dword ptr [ebp-0x1C], 0
        mov      dword ptr [ebp-0x18], 252
-       push     G_M39843_IG14
-       jmp      SHORT G_M39843_IG15
+       push     G_M39843_IG13
+       jmp      SHORT G_M39843_IG14
                         ;; size=21 bbWeight=8 PerfScore 40.00
-G_M39843_IG14:        ; bbWeight=1, gcVars=00000080 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M39843_IG13:        ; bbWeight=1, gcVars=00000100 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; GC ptr vars -{V02}
        mov      dword ptr [ebp-0x18], 0
-       jmp      SHORT G_M39843_IG16
...
  
-8 (-3.57%) : 13907.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier0-FullOpts)
@@ -8,28 +8,29 @@
 ; 3 inlinees with PGO data; 7 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T08] (  4,  4   )     ref  ->  edi         this class-hnd single-def <Xunit.AggregateMessageSink>
-;  V01 arg1         [V01,T06] (  3,  5.33)     ref  ->  esi         class-hnd single-def <Xunit.Abstractions.IMessageSinkMessage>
-;  V02 arg2         [V02,T11] (  1,  3.33)     ref  ->  ebx         class-hnd single-def <System.Collections.Generic.HashSet`1[System.String]>
-;  V03 loc0         [V03,T05] (  4,  8.66)   ubyte  ->  [ebp-0x24] 
-;  V04 loc1         [V04,T14] (  4,  1.50)     ref  ->  [ebp-0x34]  class-hnd EH-live spill-single-def <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
+;  V00 this         [V00,T09] (  4,  4   )     ref  ->  edi         this class-hnd single-def <Xunit.AggregateMessageSink>
+;  V01 arg1         [V01,T07] (  3,  5.33)     ref  ->  esi         class-hnd single-def <Xunit.Abstractions.IMessageSinkMessage>
+;  V02 arg2         [V02,T12] (  1,  3.33)     ref  ->  ebx         class-hnd single-def <System.Collections.Generic.HashSet`1[System.String]>
+;  V03 loc0         [V03,T06] (  4,  8.66)   ubyte  ->  [ebp-0x24] 
+;  V04 loc1         [V04,T15] (  4,  1.50)     ref  ->  [ebp-0x34]  class-hnd EH-live spill-single-def <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
 ;  V05 loc2         [V05    ] (  5,  4   )   ubyte  ->  [ebp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;* V06 loc3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[Xunit.IMessageSinkWithTypes]>
-;  V07 tmp0         [V07,T10] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
-;  V08 tmp1         [V08,T09] (  2,  4   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
+;  V07 tmp0         [V07,T11] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
+;  V08 tmp1         [V08,T10] (  2,  4   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[Xunit.IMessageSinkWithTypes]>
-;* V10 tmp3         [V10,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V10 tmp3         [V10,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V11 tmp4         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[Xunit.IMessageSinkWithTypes]>
-;  V12 tmp5         [V12,T01] (  5, 17.01)     ref  ->  edi         single-def "field V06._list (fldOffset=0x0)" P-INDEP
-;  V13 tmp6         [V13,T03] (  2,  6.66)     ref  ->  edx         "field V06._current (fldOffset=0x4)" P-INDEP
+;  V12 tmp5         [V12,T02] (  4, 16.34)     ref  ->  edi         single-def "field V06._list (fldOffset=0x0)" P-INDEP
+;  V13 tmp6         [V13,T04] (  2,  6.66)     ref  ->  edx         "field V06._current (fldOffset=0x4)" P-INDEP
 ;  V14 tmp7         [V14,T00] (  6, 18.32)     int  ->  [ebp-0x2C]  "field V06._index (fldOffset=0x8)" P-INDEP
-;  V15 tmp8         [V15,T04] (  3,  9.67)     int  ->  [ebp-0x30]  spill-single-def "field V06._version (fldOffset=0xc)" P-INDEP
-;  V16 tmp9         [V16,T12] (  3,  3   )     ref  ->  edi         single-def "field V09._list (fldOffset=0x0)" P-INDEP
+;  V15 tmp8         [V15,T05] (  2,  9   )     int  ->  [ebp-0x30]  spill-single-def "field V06._version (fldOffset=0xc)" P-INDEP
+;  V16 tmp9         [V16,T13] (  3,  3   )     ref  ->  edi         single-def "field V09._list (fldOffset=0x0)" P-INDEP
 ;* V17 tmp10        [V17    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V09._current (fldOffset=0x4)" P-INDEP
-;* V18 tmp11        [V18,T15] (  0,  0   )     int  ->  zero-ref    single-def "field V09._index (fldOffset=0x8)" P-INDEP
-;  V19 tmp12        [V19,T13] (  2,  2   )     int  ->  eax         single-def "field V09._version (fldOffset=0xc)" P-INDEP
-;  V20 tmp13        [V20,T02] (  3, 19.97)     ref  ->  edx         "arr expr"
+;* V18 tmp11        [V18,T16] (  0,  0   )     int  ->  zero-ref    single-def "field V09._index (fldOffset=0x8)" P-INDEP
+;  V19 tmp12        [V19,T14] (  2,  2   )     int  ->  eax         single-def "field V09._version (fldOffset=0xc)" P-INDEP
+;  V20 tmp13        [V20,T01] (  3, 19.97)     ref  ->  edx         "arr expr"
 ;  V21 EHSlots      [V21    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
+;  V22 cse0         [V22,T03] (  2,  8.01)     int  ->  edx         "CSE - aggressive"
 ;
 ; Lcl frame size = 40
 
@@ -59,7 +60,7 @@ G_M52679_IG02:        ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
        mov      gword ptr [ebp-0x34], ecx
        ; GC ptr vars +{V04}
                        ;; size=13 bbWeight=1 PerfScore 4.00
-G_M52679_IG03:        ; bbWeight=1, gcVars=00004000 {V04}, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M52679_IG03:        ; bbWeight=1, gcVars=00008000 {V04}, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      byte  ptr [ebp-0x28], 0
        jne      SHORT G_M52679_IG09
        lea      edx, [ebp-0x28]
@@ -85,17 +86,18 @@ G_M52679_IG05:        ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
                        ;; size=11 bbWeight=1 PerfScore 5.25
 G_M52679_IG06:        ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        cmp      eax, dword ptr [edi+0x0C]
-       jne      SHORT G_M52679_IG10
+       jne      SHORT G_M52679_IG11
                         ;; size=5 bbWeight=8 PerfScore 32.00
 G_M52679_IG07:        ; bbWeight=4.01, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ecx, dword ptr [edi+0x08]
-       jae      SHORT G_M52679_IG14
-                       ;; size=5 bbWeight=4.01 PerfScore 16.02
+       mov      edx, dword ptr [edi+0x08]
+       cmp      ecx, edx
+       jae      SHORT G_M52679_IG12
+                       ;; size=7 bbWeight=4.01 PerfScore 13.02
 G_M52679_IG08:        ; bbWeight=3.33, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [edi+0x04]
        ; gcrRegs +[edx]
        cmp      ecx, dword ptr [edx+0x04]
-       jae      SHORT G_M52679_IG12
+       jae      SHORT G_M52679_IG10
        mov      edx, gword ptr [edx+4*ecx+0x08]
        inc      ecx
        mov      dword ptr [ebp-0x2C], ecx
@@ -117,53 +119,43 @@ G_M52679_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [System.Threading.Monitor:ThrowLockTakenException()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M52679_IG10:        ; bbWeight=0.67, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[edi]
-       mov      eax, dword ptr [ebp-0x30]
-       cmp      eax, dword ptr [edi+0x0C]
-       jne      SHORT G_M52679_IG13
-                       ;; size=8 bbWeight=0.67 PerfScore 3.35
-G_M52679_IG11:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edi]
-       jmp      SHORT G_M52679_IG14
-                       ;; size=2 bbWeight=4 PerfScore 8.00
-G_M52679_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M52679_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M52679_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M52679_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M52679_IG14:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M52679_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        cmp      byte  ptr [ebp-0x28], 0
-       je       SHORT G_M52679_IG18
+       je       SHORT G_M52679_IG16
                         ;; size=6 bbWeight=1 PerfScore 3.00
-G_M52679_IG15:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M52679_IG13:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x34]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V04}
        call     <unknown method>
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M52679_IG18
+       jmp      SHORT G_M52679_IG16
                       ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M52679_IG16:        ; bbWeight=0, gcVars=00004000 {V04}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V04 V14}
+G_M52679_IG14:        ; bbWeight=0, gcVars=00008000 {V04}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V04 V15}
        cmp      byte  ptr [ebp-0x28], 0
-       je       SHORT G_M52679_IG17
+       je       SHORT G_M52679_IG15
        mov      ecx, gword ptr [ebp-0x34]
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V04 V14}
+       ; GC ptr vars -{V04 V15}
        call     <unknown method>
        ; gcrRegs -[ecx]
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M52679_IG17:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M52679_IG15:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M52679_IG18:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M52679_IG16:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      eax, dword ptr [ebp-0x24]
                        ;; size=3 bbWeight=1 PerfScore 1.00
-G_M52679_IG19:        ; bbWeight=1, epilog, nogc, extend
+G_M52679_IG17:        ; bbWeight=1, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -172,9 +164,9 @@ G_M52679_IG19:        ; bbWeight=1, epilog, nogc, extend
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
 
-; Total bytes of code 224, prolog size 26, PerfScore 168.12, instruction count 78, allocated bytes for code 224 (MethodHash=39853238) for method Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier0-FullOpts)
+; Total bytes of code 216, prolog size 26, PerfScore 153.76, instruction count 75, allocated bytes for code 216 (MethodHash=39853238) for method Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier0-FullOpts)
 ; ============================================================
 
 *************** EH table for Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M52679_IG03..G_M52679_IG14) handled by [G_M52679_IG16..G_M52679_IG18) (fault)
+EH#0: try [G_M52679_IG03..G_M52679_IG12) handled by [G_M52679_IG14..G_M52679_IG16) (fault)
  
-6 (-2.75%) : 21402.dasm - System.IO.TempAclDirectory:DeleteDirectory():this (Tier0-FullOpts)
@@ -8,7 +8,7 @@
 ; 4 inlinees with PGO data; 12 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  8, 35   )     ref  ->  esi         this class-hnd single-def <System.IO.TempAclDirectory>
+;  V00 this         [V00,T05] (  8, 35   )     ref  ->  esi         this class-hnd single-def <System.IO.TempAclDirectory>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.IO.DirectoryInfo>
 ;* V02 loc1         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.IO.DirectoryInfo]>
 ;* V03 loc2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.IO.DirectoryInfo>
@@ -16,33 +16,35 @@
 ;* V05 loc4         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.IO.FileInfo>
 ;  V06 tmp0         [V06,T00] (  6, 96   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impSpillSpecialSideEff" <<unknown class>>
-;  V08 tmp2         [V08,T18] (  2,  4   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V08 tmp2         [V08,T20] (  2,  4   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V09 tmp3         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.IO.DirectoryInfo]>
-;* V10 tmp4         [V10,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V10 tmp4         [V10,T16] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V11 tmp5         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V12 tmp6         [V12,T08] (  2, 32   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V12 tmp6         [V12,T06] (  2, 32   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V13 tmp7         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.IO.FileInfo]>
-;* V14 tmp8         [V14,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V14 tmp8         [V14,T17] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V15 tmp9         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V16 tmp10        [V16,T07] (  5, 25   )     ref  ->  edi         single-def "field V02._list (fldOffset=0x0)" P-INDEP
-;  V17 tmp11        [V17,T10] (  2, 10.42)     ref  ->  edx         "field V02._current (fldOffset=0x4)" P-INDEP
+;  V16 tmp10        [V16,T11] (  4, 23.42)     ref  ->  edi         single-def "field V02._list (fldOffset=0x0)" P-INDEP
+;  V17 tmp11        [V17,T12] (  2, 10.42)     ref  ->  edx         "field V02._current (fldOffset=0x4)" P-INDEP
 ;  V18 tmp12        [V18,T02] (  6, 34.68)     int  ->  [ebp-0x24]  "field V02._index (fldOffset=0x8)" P-INDEP
-;  V19 tmp13        [V19,T16] (  3, 10.58)     int  ->  ebx         single-def "field V02._version (fldOffset=0xc)" P-INDEP
-;  V20 tmp14        [V20,T03] (  5, 32   )     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
-;  V21 tmp15        [V21,T11] (  2, 10.42)     ref  ->  edx         "field V04._current (fldOffset=0x4)" P-INDEP
+;  V19 tmp13        [V19,T18] (  2,  9   )     int  ->  ebx         single-def "field V02._version (fldOffset=0xc)" P-INDEP
+;  V20 tmp14        [V20,T07] (  4, 30.42)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V21 tmp15        [V21,T13] (  2, 10.42)     ref  ->  edx         "field V04._current (fldOffset=0x4)" P-INDEP
 ;  V22 tmp16        [V22,T01] (  6, 41.68)     int  ->  [ebp-0x28]  "field V04._index (fldOffset=0x8)" P-INDEP
-;  V23 tmp17        [V23,T12] (  3, 17.58)     int  ->  ebx         single-def "field V04._version (fldOffset=0xc)" P-INDEP
-;  V24 tmp18        [V24,T19] (  3,  3   )     ref  ->  edi         single-def "field V09._list (fldOffset=0x0)" P-INDEP
+;  V23 tmp17        [V23,T14] (  2, 16   )     int  ->  ebx         single-def "field V04._version (fldOffset=0xc)" P-INDEP
+;  V24 tmp18        [V24,T21] (  3,  3   )     ref  ->  edi         single-def "field V09._list (fldOffset=0x0)" P-INDEP
 ;* V25 tmp19        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V09._current (fldOffset=0x4)" P-INDEP
-;* V26 tmp20        [V26,T21] (  0,  0   )     int  ->  zero-ref    single-def "field V09._index (fldOffset=0x8)" P-INDEP
-;  V27 tmp21        [V27,T20] (  2,  2   )     int  ->  ebx         single-def "field V09._version (fldOffset=0xc)" P-INDEP
-;  V28 tmp22        [V28,T09] (  3, 24   )     ref  ->  edi         single-def "field V13._list (fldOffset=0x0)" P-INDEP
+;* V26 tmp20        [V26,T23] (  0,  0   )     int  ->  zero-ref    single-def "field V09._index (fldOffset=0x8)" P-INDEP
+;  V27 tmp21        [V27,T22] (  2,  2   )     int  ->  ebx         single-def "field V09._version (fldOffset=0xc)" P-INDEP
+;  V28 tmp22        [V28,T08] (  3, 24   )     ref  ->  edi         single-def "field V13._list (fldOffset=0x0)" P-INDEP
 ;* V29 tmp23        [V29    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V13._current (fldOffset=0x4)" P-INDEP
-;* V30 tmp24        [V30,T17] (  0,  0   )     int  ->  zero-ref    single-def "field V13._index (fldOffset=0x8)" P-INDEP
-;  V31 tmp25        [V31,T13] (  2, 16   )     int  ->  ebx         single-def "field V13._version (fldOffset=0xc)" P-INDEP
-;  V32 tmp26        [V32,T04] (  3, 38.52)     ref  ->  edx         "arr expr"
-;  V33 tmp27        [V33,T05] (  3, 38.52)     ref  ->  edx         "arr expr"
+;* V30 tmp24        [V30,T19] (  0,  0   )     int  ->  zero-ref    single-def "field V13._index (fldOffset=0x8)" P-INDEP
+;  V31 tmp25        [V31,T15] (  2, 16   )     int  ->  ebx         single-def "field V13._version (fldOffset=0xc)" P-INDEP
+;  V32 tmp26        [V32,T03] (  3, 38.52)     ref  ->  edx         "arr expr"
+;  V33 tmp27        [V33,T04] (  3, 38.52)     ref  ->  edx         "arr expr"
 ;  V34 EHSlots      [V34    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
+;  V35 cse0         [V35,T09] (  2, 16   )     int  ->  edx         "CSE - moderate"
+;  V36 cse1         [V36,T10] (  2, 16   )     int  ->  edx         "CSE - moderate"
 ;
 ; Lcl frame size = 28
 
@@ -78,10 +80,11 @@ G_M40197_IG03:        ; bbWeight=4, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=
                        ;; size=11 bbWeight=4 PerfScore 17.00
 G_M40197_IG04:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        cmp      ebx, dword ptr [edi+0x0C]
-       jne      SHORT G_M40197_IG08
-       cmp      ecx, dword ptr [edi+0x08]
-       jae      SHORT G_M40197_IG09
-                       ;; size=10 bbWeight=8 PerfScore 64.00
+       jne      SHORT G_M40197_IG07
+       mov      edx, dword ptr [edi+0x08]
+       cmp      ecx, edx
+       jae      SHORT G_M40197_IG08
+                       ;; size=12 bbWeight=8 PerfScore 58.00
 G_M40197_IG05:        ; bbWeight=6.42, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [edi+0x04]
        ; gcrRegs +[edx]
@@ -100,20 +103,15 @@ G_M40197_IG07:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M40197_IG08:        ; bbWeight=1.58, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[esi edi]
-       cmp      ebx, dword ptr [edi+0x0C]
-       jne      SHORT G_M40197_IG07
-                       ;; size=5 bbWeight=1.58 PerfScore 6.32
-G_M40197_IG09:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edi]
+G_M40197_IG08:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[esi]
        mov      edi, gword ptr [esi+0x0C]
        ; gcrRegs +[edi]
        mov      ebx, dword ptr [edi+0x0C]
        xor      ecx, ecx
-       jmp      SHORT G_M40197_IG11
+       jmp      SHORT G_M40197_IG10
                      ;; size=10 bbWeight=8 PerfScore 50.00
-G_M40197_IG10:        ; bbWeight=4, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
+G_M40197_IG09:        ; bbWeight=4, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[edx]
        mov      ecx, esi
        ; gcrRegs +[ecx]
@@ -121,13 +119,14 @@ G_M40197_IG10:        ; bbWeight=4, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=
        ; gcrRegs -[ecx edx]
        mov      ecx, dword ptr [ebp-0x28]
                        ;; size=11 bbWeight=4 PerfScore 17.00
-G_M40197_IG11:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40197_IG10:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        cmp      ebx, dword ptr [edi+0x0C]
-       jne      SHORT G_M40197_IG13
-       cmp      ecx, dword ptr [edi+0x08]
-       jae      SHORT G_M40197_IG14
-                       ;; size=10 bbWeight=8 PerfScore 64.00
-G_M40197_IG12:        ; bbWeight=6.42, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       jne      SHORT G_M40197_IG07
+       mov      edx, dword ptr [edi+0x08]
+       cmp      ecx, edx
+       jae      SHORT G_M40197_IG12
+                       ;; size=12 bbWeight=8 PerfScore 58.00
+G_M40197_IG11:        ; bbWeight=6.42, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [edi+0x04]
        ; gcrRegs +[edx]
        cmp      ecx, dword ptr [edx+0x04]
@@ -135,15 +134,10 @@ G_M40197_IG12:        ; bbWeight=6.42, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        mov      edx, gword ptr [edx+4*ecx+0x08]
        inc      ecx
        mov      dword ptr [ebp-0x28], ecx
-       jmp      SHORT G_M40197_IG10
+       jmp      SHORT G_M40197_IG09
                         ;; size=18 bbWeight=6.42 PerfScore 72.22
-G_M40197_IG13:        ; bbWeight=1.58, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edx]
-       cmp      ebx, dword ptr [edi+0x0C]
-       jne      SHORT G_M40197_IG07
-                       ;; size=5 bbWeight=1.58 PerfScore 6.32
-G_M40197_IG14:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edi]
+G_M40197_IG12:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edx edi]
        mov      ecx, 0xD1FFAB1E      ; System.IO.DirectoryInfo
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[eax]
@@ -168,13 +162,13 @@ G_M40197_IG14:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; gcrRegs -[ecx]
        mov      byte  ptr [edi+0x18], 0
        mov      dword ptr [edi+0x14], -1
-       jmp      SHORT G_M40197_IG16
+       jmp      SHORT G_M40197_IG14
                      ;; size=60 bbWeight=8 PerfScore 156.00
-G_M40197_IG15:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M40197_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edi]
        call     CORINFO_HELP_ENDCATCH
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M40197_IG16:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M40197_IG14:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -183,9 +177,9 @@ G_M40197_IG16:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 218, prolog size 23, PerfScore 543.83, instruction count 77, allocated bytes for code 218 (MethodHash=f82462fa) for method System.IO.TempAclDirectory:DeleteDirectory():this (Tier0-FullOpts)
+; Total bytes of code 212, prolog size 23, PerfScore 519.19, instruction count 75, allocated bytes for code 212 (MethodHash=f82462fa) for method System.IO.TempAclDirectory:DeleteDirectory():this (Tier0-FullOpts)
 ; ============================================================
 
 *************** EH table for System.IO.TempAclDirectory:DeleteDirectory():this
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M40197_IG02..G_M40197_IG15) handled by [G_M40197_IG15..G_M40197_IG16) (class: 1000012)
+EH#0: try [G_M40197_IG02..G_M40197_IG13) handled by [G_M40197_IG13..G_M40197_IG14) (class: 1000012)
  
+19 (+1.43%) : 486.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (Tier0-FullOpts)
@@ -209,11 +209,11 @@ G_M6409_IG05:        ; bbWeight=1, gcrefRegs=00000041 {eax esi}, byrefRegs=00000
                        ;; size=17 bbWeight=1 PerfScore 5.50
 G_M6409_IG06:        ; bbWeight=4, gcVars=0000000000010000 {V05}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      edx, dword ptr [eax+0x08]
-       jae      G_M6409_IG63
+       jae      G_M6409_IG60
        mov      edi, gword ptr [eax+0x04]
        ; gcrRegs +[edi]
        cmp      edx, dword ptr [edi+0x04]
-       jae      G_M6409_IG59
+       jae      G_M6409_IG56
        mov      edi, gword ptr [edi+4*edx+0x08]
        mov      dword ptr [ebp-0x18], edx
        cmp      ecx, edx
@@ -222,7 +222,7 @@ G_M6409_IG06:        ; bbWeight=4, gcVars=0000000000010000 {V05}, gcrefRegs=0000
 G_M6409_IG07:        ; bbWeight=2.00, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
        mov      dword ptr [ebp-0x1C], ecx
        cmp      ecx, dword ptr [eax+0x08]
-       jae      G_M6409_IG63
+       jae      G_M6409_IG60
        mov      ebx, gword ptr [eax+0x04]
        ; gcrRegs +[ebx]
        push     edi
@@ -271,11 +271,11 @@ G_M6409_IG09:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
                        ;; size=53 bbWeight=2 PerfScore 35.00
 G_M6409_IG10:        ; bbWeight=16, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
        cmp      ecx, edi
-       jae      G_M6409_IG63
+       jae      G_M6409_IG60
        mov      edx, gword ptr [eax+0x04]
        ; gcrRegs +[edx]
        cmp      ecx, dword ptr [edx+0x04]
-       jae      G_M6409_IG59
+       jae      G_M6409_IG56
        mov      edx, gword ptr [edx+4*ecx+0x08]
        lea      edx, bword ptr [edx+0x0C]
        ; gcrRegs -[edx]
@@ -302,7 +302,7 @@ G_M6409_IG12:        ; bbWeight=0.50, gcrefRegs=00000001 {eax}, byrefRegs=000000
        ; gcrRegs -[esi] +[eax]
        mov      ebx, ecx
        mov      edi, edx
-       jmp      G_M6409_IG55
+       jmp      G_M6409_IG52
                        ;; size=9 bbWeight=0.50 PerfScore 1.25
 G_M6409_IG13:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax] +[esi edi]
@@ -317,7 +317,7 @@ G_M6409_IG14:        ; bbWeight=1, gcrefRegs=00000046 {ecx edx esi}, byrefRegs=0
        ; gcrRegs -[edi]
        mov      eax, 0xD1FFAB1E      ; System.Text.RegularExpressions.RegexNode
        cmp      dword ptr [ecx], eax
-       jne      G_M6409_IG62
+       jne      G_M6409_IG59
                        ;; size=13 bbWeight=1 PerfScore 4.25
 G_M6409_IG15:        ; bbWeight=2, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edx]
@@ -344,7 +344,7 @@ G_M6409_IG16:        ; bbWeight=8, gcVars=0000000000010000 {V05}, gcrefRegs=0000
        ; GC ptr vars -{V00}
        mov      ebx, dword ptr [ebp-0x1C]
        dec      ebx
-       jmp      G_M6409_IG54
+       jmp      G_M6409_IG51
                         ;; size=9 bbWeight=8 PerfScore 26.00
 G_M6409_IG17:        ; bbWeight=16, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edi]
@@ -354,7 +354,7 @@ G_M6409_IG17:        ; bbWeight=16, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
                        ;; size=7 bbWeight=16 PerfScore 24.00
 G_M6409_IG18:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        cmp      eax, 12
-       jne      G_M6409_IG31
+       jne      G_M6409_IG49
                         ;; size=9 bbWeight=8 PerfScore 10.00
 G_M6409_IG19:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ebx, dword ptr [edi+0x18]
@@ -373,7 +373,7 @@ G_M6409_IG20:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      dword ptr [ebp-0x14], edi
        mov      ebx, ecx
        mov      edi, dword ptr [ebp-0x18]
-       jmp      G_M6409_IG54
+       jmp      G_M6409_IG51
                       ;; size=22 bbWeight=8 PerfScore 44.00
 G_M6409_IG21:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edi]
@@ -381,10 +381,10 @@ G_M6409_IG21:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
        mov      eax, gword ptr [ebp-0x40]
        ; gcrRegs +[eax]
        cmp      ecx, dword ptr [eax+0x08]
-       jae      G_M6409_IG63
+       jae      G_M6409_IG60
        mov      eax, gword ptr [eax+0x04]
        cmp      ecx, dword ptr [eax+0x04]
-       jae      G_M6409_IG59
+       jae      G_M6409_IG56
        mov      dword ptr [ebp-0x1C], ecx
        mov      eax, gword ptr [eax+4*ecx+0x08]
        mov      gword ptr [ebp-0x44], eax
@@ -413,7 +413,7 @@ G_M6409_IG21:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
 G_M6409_IG22:        ; bbWeight=8, gcVars=0000000000010010 {V05 V13}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; GC ptr vars -{V00}
        test     bl, 64
-       je       G_M6409_IG37
+       je       G_M6409_IG34
        cmp      byte  ptr [edi+0x1E], 9
        je       SHORT G_M6409_IG23
        mov      edi, gword ptr [edi+0x08]
@@ -423,7 +423,7 @@ G_M6409_IG22:        ; bbWeight=8, gcVars=0000000000010010 {V05 V13}, gcrefRegs=
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx edi]
-       jmp      G_M6409_IG52
+       jmp      G_M6409_IG44
                         ;; size=34 bbWeight=8 PerfScore 116.00
 G_M6409_IG23:        ; bbWeight=8.00, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[edi]
@@ -438,13 +438,13 @@ G_M6409_IG23:        ; bbWeight=8.00, gcrefRegs=000000C1 {eax esi edi}, byrefReg
        ; gcrRegs -[ecx ebx]
        mov      gword ptr [ebp-0x30], eax
        test     eax, eax
-       je       G_M6409_IG60
+       je       G_M6409_IG57
        lea      ebx, bword ptr [eax+0x08]
        ; byrRegs +[ebx]
        mov      eax, dword ptr [eax+0x04]
        ; gcrRegs -[eax]
                        ;; size=41 bbWeight=8.00 PerfScore 114.00
-G_M6409_IG24:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000008 {ebx}, byref, isz
+G_M6409_IG24:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000008 {ebx}, byref
        mov      bword ptr [ebp-0x24], ebx
        mov      dword ptr [ebp-0x20], eax
        xor      edx, edx
@@ -460,12 +460,12 @@ G_M6409_IG24:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
        mov      edi, gword ptr [ebx+0x08]
        ; gcrRegs +[edi]
        cmp      byte  ptr [ebp-0x28], 0
-       jne      G_M6409_IG30
+       jne      G_M6409_IG33
        test     edi, edi
-       je       G_M6409_IG30
+       je       G_M6409_IG33
        mov      ecx, dword ptr [ebp-0x2C]
        cmp      ecx, dword ptr [ebp-0x20]
-       ja       G_M6409_IG64
+       ja       G_M6409_IG61
        mov      edx, bword ptr [ebp-0x24]
        ; byrRegs +[edx]
        lea      eax, bword ptr [edx+2*ecx]
@@ -477,7 +477,7 @@ G_M6409_IG24:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
        sub      edx, ecx
        mov      dword ptr [ebp-0x38], edx
        test     edx, edx
-       jge      SHORT G_M6409_IG29
+       jge      G_M6409_IG32
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
@@ -487,12 +487,12 @@ G_M6409_IG24:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
        ; byrRegs -[eax]
        mov      eax, bword ptr [ebp-0x48]
        ; byrRegs +[eax]
-                      ;; size=104 bbWeight=8 PerfScore 252.00
-G_M6409_IG25:        ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000001 {eax}, byref, isz
+                        ;; size=108 bbWeight=8 PerfScore 252.00
+G_M6409_IG25:        ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000001 {eax}, byref
        mov      edx, dword ptr [ebp-0x38]
        cmp      dword ptr [edi+0x04], edx
-       ja       SHORT G_M6409_IG30
-                       ;; size=8 bbWeight=8 PerfScore 40.00
+       ja       G_M6409_IG33
+                       ;; size=12 bbWeight=8 PerfScore 40.00
 G_M6409_IG26:        ; bbWeight=7.98, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000001 {eax}, byref
        lea      edx, bword ptr [edi+0x08]
        ; byrRegs +[edx]
@@ -512,7 +512,7 @@ G_M6409_IG27:        ; bbWeight=8.00, gcrefRegs=00000048 {ebx esi}, byrefRegs=00
        ; gcrRegs -[edi]
        mov      edi, dword ptr [ebp-0x2C]
        cmp      edi, dword ptr [ebp-0x20]
-       ja       G_M6409_IG64
+       ja       G_M6409_IG61
                       ;; size=12 bbWeight=8.00 PerfScore 32.01
 G_M6409_IG28:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
        mov      eax, bword ptr [ebp-0x24]
@@ -520,7 +520,7 @@ G_M6409_IG28:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000
        mov      bword ptr [ebp-0x4C], eax
        ; GC ptr vars +{V59}
        test     edi, edi
-       jge      SHORT G_M6409_IG34
+       jge      SHORT G_M6409_IG29
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
@@ -528,53 +528,20 @@ G_M6409_IG28:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
        ; byrRegs -[eax]
-       jmp      SHORT G_M6409_IG33
-                       ;; size=28 bbWeight=8 PerfScore 70.00
-G_M6409_IG29:        ; bbWeight=4, gcVars=0000000020010010 {V05 V13 V44}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[edi]
-       ; GC ptr vars -{V59} +{V29 V44}
-       mov      eax, bword ptr [ebp-0x48]
-       ; byrRegs +[eax]
-       jmp      SHORT G_M6409_IG25
-                       ;; size=5 bbWeight=4 PerfScore 12.00
-G_M6409_IG30:        ; bbWeight=0.02, gcVars=0000000000010010 {V05 V13}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; byrRegs -[eax]
-       ; GC ptr vars -{V29 V44}
-       lea      ecx, [ebp-0x34]
-       mov      edx, edi
-       ; gcrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[edx edi]
-       jmp      SHORT G_M6409_IG27
-                       ;; size=13 bbWeight=0.02 PerfScore 0.09
-G_M6409_IG31:        ; bbWeight=16, gcVars=0000000000010000 {V05}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[ebx]
-       ; GC ptr vars -{V13}
-       cmp      ebx, 23
-       mov      dword ptr [ebp-0x1C], ecx
-       mov      edi, dword ptr [ebp-0x18]
-       je       G_M6409_IG16
-                       ;; size=15 bbWeight=16 PerfScore 52.00
-G_M6409_IG32:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       jmp      G_M6409_IG53
-                       ;; size=5 bbWeight=2 PerfScore 4.00
-G_M6409_IG33:        ; bbWeight=8, gcVars=0000000002010010 {V05 V13 V59}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs +[ebx]
-       ; GC ptr vars +{V04 V13 V59}
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-                      ;; size=16 bbWeight=8 PerfScore 28.00
-G_M6409_IG34:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+                       ;; size=42 bbWeight=8 PerfScore 82.00
+G_M6409_IG29:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
        mov      eax, bword ptr [ebp-0x4C]
        ; byrRegs +[eax]
        push     edi
        push     eax
        ; byr arg push 1
-       ; GC ptr vars -{V04 V59}
+       ; GC ptr vars -{V59}
        call     <unknown method>
        ; gcrRegs +[eax]
        ; byrRegs -[eax]
@@ -587,9 +554,9 @@ G_M6409_IG34:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000
        vmovdqu  xmmword ptr [ebp-0x34], xmm0
        vmovdqu  xmmword ptr [ebp-0x2C], xmm0
        test     edx, edx
...
  
+19 (+1.43%) : 3975.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (Tier0-FullOpts)
@@ -209,11 +209,11 @@ G_M6409_IG05:        ; bbWeight=1, gcrefRegs=00000041 {eax esi}, byrefRegs=00000
                        ;; size=17 bbWeight=1 PerfScore 5.50
 G_M6409_IG06:        ; bbWeight=4, gcVars=0000000000010000 {V05}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      edx, dword ptr [eax+0x08]
-       jae      G_M6409_IG63
+       jae      G_M6409_IG60
        mov      edi, gword ptr [eax+0x04]
        ; gcrRegs +[edi]
        cmp      edx, dword ptr [edi+0x04]
-       jae      G_M6409_IG59
+       jae      G_M6409_IG56
        mov      edi, gword ptr [edi+4*edx+0x08]
        mov      dword ptr [ebp-0x18], edx
        cmp      ecx, edx
@@ -222,7 +222,7 @@ G_M6409_IG06:        ; bbWeight=4, gcVars=0000000000010000 {V05}, gcrefRegs=0000
 G_M6409_IG07:        ; bbWeight=2.00, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
        mov      dword ptr [ebp-0x1C], ecx
        cmp      ecx, dword ptr [eax+0x08]
-       jae      G_M6409_IG63
+       jae      G_M6409_IG60
        mov      ebx, gword ptr [eax+0x04]
        ; gcrRegs +[ebx]
        push     edi
@@ -271,11 +271,11 @@ G_M6409_IG09:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
                        ;; size=53 bbWeight=2 PerfScore 35.00
 G_M6409_IG10:        ; bbWeight=16, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
        cmp      ecx, edi
-       jae      G_M6409_IG63
+       jae      G_M6409_IG60
        mov      edx, gword ptr [eax+0x04]
        ; gcrRegs +[edx]
        cmp      ecx, dword ptr [edx+0x04]
-       jae      G_M6409_IG59
+       jae      G_M6409_IG56
        mov      edx, gword ptr [edx+4*ecx+0x08]
        lea      edx, bword ptr [edx+0x0C]
        ; gcrRegs -[edx]
@@ -302,7 +302,7 @@ G_M6409_IG12:        ; bbWeight=0.50, gcrefRegs=00000001 {eax}, byrefRegs=000000
        ; gcrRegs -[esi] +[eax]
        mov      ebx, ecx
        mov      edi, edx
-       jmp      G_M6409_IG55
+       jmp      G_M6409_IG52
                        ;; size=9 bbWeight=0.50 PerfScore 1.25
 G_M6409_IG13:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax] +[esi edi]
@@ -317,7 +317,7 @@ G_M6409_IG14:        ; bbWeight=1, gcrefRegs=00000046 {ecx edx esi}, byrefRegs=0
        ; gcrRegs -[edi]
        mov      eax, 0xD1FFAB1E      ; System.Text.RegularExpressions.RegexNode
        cmp      dword ptr [ecx], eax
-       jne      G_M6409_IG62
+       jne      G_M6409_IG59
                        ;; size=13 bbWeight=1 PerfScore 4.25
 G_M6409_IG15:        ; bbWeight=2, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edx]
@@ -344,7 +344,7 @@ G_M6409_IG16:        ; bbWeight=8, gcVars=0000000000010000 {V05}, gcrefRegs=0000
        ; GC ptr vars -{V00}
        mov      ebx, dword ptr [ebp-0x1C]
        dec      ebx
-       jmp      G_M6409_IG54
+       jmp      G_M6409_IG51
                         ;; size=9 bbWeight=8 PerfScore 26.00
 G_M6409_IG17:        ; bbWeight=16, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edi]
@@ -354,7 +354,7 @@ G_M6409_IG17:        ; bbWeight=16, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
                        ;; size=7 bbWeight=16 PerfScore 24.00
 G_M6409_IG18:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        cmp      eax, 12
-       jne      G_M6409_IG31
+       jne      G_M6409_IG49
                         ;; size=9 bbWeight=8 PerfScore 10.00
 G_M6409_IG19:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ebx, dword ptr [edi+0x18]
@@ -373,7 +373,7 @@ G_M6409_IG20:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      dword ptr [ebp-0x14], edi
        mov      ebx, ecx
        mov      edi, dword ptr [ebp-0x18]
-       jmp      G_M6409_IG54
+       jmp      G_M6409_IG51
                       ;; size=22 bbWeight=8 PerfScore 44.00
 G_M6409_IG21:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edi]
@@ -381,10 +381,10 @@ G_M6409_IG21:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
        mov      eax, gword ptr [ebp-0x40]
        ; gcrRegs +[eax]
        cmp      ecx, dword ptr [eax+0x08]
-       jae      G_M6409_IG63
+       jae      G_M6409_IG60
        mov      eax, gword ptr [eax+0x04]
        cmp      ecx, dword ptr [eax+0x04]
-       jae      G_M6409_IG59
+       jae      G_M6409_IG56
        mov      dword ptr [ebp-0x1C], ecx
        mov      eax, gword ptr [eax+4*ecx+0x08]
        mov      gword ptr [ebp-0x44], eax
@@ -413,7 +413,7 @@ G_M6409_IG21:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
 G_M6409_IG22:        ; bbWeight=8, gcVars=0000000000010010 {V05 V13}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; GC ptr vars -{V00}
        test     bl, 64
-       je       G_M6409_IG37
+       je       G_M6409_IG34
        cmp      byte  ptr [edi+0x1E], 9
        je       SHORT G_M6409_IG23
        mov      edi, gword ptr [edi+0x08]
@@ -423,7 +423,7 @@ G_M6409_IG22:        ; bbWeight=8, gcVars=0000000000010010 {V05 V13}, gcrefRegs=
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx edi]
-       jmp      G_M6409_IG52
+       jmp      G_M6409_IG44
                         ;; size=34 bbWeight=8 PerfScore 116.00
 G_M6409_IG23:        ; bbWeight=8.00, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[edi]
@@ -438,13 +438,13 @@ G_M6409_IG23:        ; bbWeight=8.00, gcrefRegs=000000C1 {eax esi edi}, byrefReg
        ; gcrRegs -[ecx ebx]
        mov      gword ptr [ebp-0x30], eax
        test     eax, eax
-       je       G_M6409_IG60
+       je       G_M6409_IG57
        lea      ebx, bword ptr [eax+0x08]
        ; byrRegs +[ebx]
        mov      eax, dword ptr [eax+0x04]
        ; gcrRegs -[eax]
                        ;; size=41 bbWeight=8.00 PerfScore 114.00
-G_M6409_IG24:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000008 {ebx}, byref, isz
+G_M6409_IG24:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000008 {ebx}, byref
        mov      bword ptr [ebp-0x24], ebx
        mov      dword ptr [ebp-0x20], eax
        xor      edx, edx
@@ -460,12 +460,12 @@ G_M6409_IG24:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
        mov      edi, gword ptr [ebx+0x08]
        ; gcrRegs +[edi]
        cmp      byte  ptr [ebp-0x28], 0
-       jne      G_M6409_IG30
+       jne      G_M6409_IG33
        test     edi, edi
-       je       G_M6409_IG30
+       je       G_M6409_IG33
        mov      ecx, dword ptr [ebp-0x2C]
        cmp      ecx, dword ptr [ebp-0x20]
-       ja       G_M6409_IG64
+       ja       G_M6409_IG61
        mov      edx, bword ptr [ebp-0x24]
        ; byrRegs +[edx]
        lea      eax, bword ptr [edx+2*ecx]
@@ -477,7 +477,7 @@ G_M6409_IG24:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
        sub      edx, ecx
        mov      dword ptr [ebp-0x38], edx
        test     edx, edx
-       jge      SHORT G_M6409_IG29
+       jge      G_M6409_IG32
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
@@ -487,12 +487,12 @@ G_M6409_IG24:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
        ; byrRegs -[eax]
        mov      eax, bword ptr [ebp-0x48]
        ; byrRegs +[eax]
-                      ;; size=104 bbWeight=8 PerfScore 252.00
-G_M6409_IG25:        ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000001 {eax}, byref, isz
+                        ;; size=108 bbWeight=8 PerfScore 252.00
+G_M6409_IG25:        ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000001 {eax}, byref
        mov      edx, dword ptr [ebp-0x38]
        cmp      dword ptr [edi+0x04], edx
-       ja       SHORT G_M6409_IG30
-                       ;; size=8 bbWeight=8 PerfScore 40.00
+       ja       G_M6409_IG33
+                       ;; size=12 bbWeight=8 PerfScore 40.00
 G_M6409_IG26:        ; bbWeight=7.98, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000001 {eax}, byref
        lea      edx, bword ptr [edi+0x08]
        ; byrRegs +[edx]
@@ -512,7 +512,7 @@ G_M6409_IG27:        ; bbWeight=8.00, gcrefRegs=00000048 {ebx esi}, byrefRegs=00
        ; gcrRegs -[edi]
        mov      edi, dword ptr [ebp-0x2C]
        cmp      edi, dword ptr [ebp-0x20]
-       ja       G_M6409_IG64
+       ja       G_M6409_IG61
                       ;; size=12 bbWeight=8.00 PerfScore 32.01
 G_M6409_IG28:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
        mov      eax, bword ptr [ebp-0x24]
@@ -520,7 +520,7 @@ G_M6409_IG28:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000
        mov      bword ptr [ebp-0x4C], eax
        ; GC ptr vars +{V59}
        test     edi, edi
-       jge      SHORT G_M6409_IG34
+       jge      SHORT G_M6409_IG29
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
@@ -528,53 +528,20 @@ G_M6409_IG28:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
        ; byrRegs -[eax]
-       jmp      SHORT G_M6409_IG33
-                       ;; size=28 bbWeight=8 PerfScore 70.00
-G_M6409_IG29:        ; bbWeight=4, gcVars=0000000020010010 {V05 V13 V44}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[edi]
-       ; GC ptr vars -{V59} +{V29 V44}
-       mov      eax, bword ptr [ebp-0x48]
-       ; byrRegs +[eax]
-       jmp      SHORT G_M6409_IG25
-                       ;; size=5 bbWeight=4 PerfScore 12.00
-G_M6409_IG30:        ; bbWeight=0.02, gcVars=0000000000010010 {V05 V13}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; byrRegs -[eax]
-       ; GC ptr vars -{V29 V44}
-       lea      ecx, [ebp-0x34]
-       mov      edx, edi
-       ; gcrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[edx edi]
-       jmp      SHORT G_M6409_IG27
-                       ;; size=13 bbWeight=0.02 PerfScore 0.09
-G_M6409_IG31:        ; bbWeight=16, gcVars=0000000000010000 {V05}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[ebx]
-       ; GC ptr vars -{V13}
-       cmp      ebx, 23
-       mov      dword ptr [ebp-0x1C], ecx
-       mov      edi, dword ptr [ebp-0x18]
-       je       G_M6409_IG16
-                       ;; size=15 bbWeight=16 PerfScore 52.00
-G_M6409_IG32:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       jmp      G_M6409_IG53
-                       ;; size=5 bbWeight=2 PerfScore 4.00
-G_M6409_IG33:        ; bbWeight=8, gcVars=0000000002010010 {V05 V13 V59}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs +[ebx]
-       ; GC ptr vars +{V04 V13 V59}
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-                      ;; size=16 bbWeight=8 PerfScore 28.00
-G_M6409_IG34:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+                       ;; size=42 bbWeight=8 PerfScore 82.00
+G_M6409_IG29:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
        mov      eax, bword ptr [ebp-0x4C]
        ; byrRegs +[eax]
        push     edi
        push     eax
        ; byr arg push 1
-       ; GC ptr vars -{V04 V59}
+       ; GC ptr vars -{V59}
        call     <unknown method>
        ; gcrRegs +[eax]
        ; byrRegs -[eax]
@@ -587,9 +554,9 @@ G_M6409_IG34:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000
        vmovdqu  xmmword ptr [ebp-0x34], xmm0
        vmovdqu  xmmword ptr [ebp-0x2C], xmm0
        test     edx, edx
...
  
+12 (+1.80%) : 24525.dasm - System.IO.Tests.WriteTests:WriteLineSpanWritesExpectedData(int,int,int,ubyte):this (Tier0-FullOpts)
@@ -154,7 +154,7 @@ G_M28690_IG03:        ; bbWeight=1, gcVars=0000000000040100 {V05 V11}, gcrefRegs
        mov      edx, gword ptr [ecx+0x24]
        ; gcrRegs +[edx]
        test     dword ptr [edx+0x1C], 0xD1FFAB1E
-       je       G_M28690_IG28
+       je       G_M28690_IG27
        mov      byte  ptr [ecx+0x30], bl
        test     bl, bl
        je       SHORT G_M28690_IG05
@@ -207,9 +207,9 @@ G_M28690_IG08:        ; bbWeight=1, gcrefRegs=00000008 {ebx}, byrefRegs=00000000
        ; byrRegs -[edx]
        mov      bword ptr [ebp-0x54], 0xD1FFAB1E
        test     esi, esi
-       jl       G_M28690_IG24
+       jl       G_M28690_IG22
                      ;; size=26 bbWeight=1 PerfScore 4.75
-G_M28690_IG09:        ; bbWeight=1.00, gcVars=0000000001040040 {V05 V06 V66}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M28690_IG09:        ; bbWeight=1.00, gcVars=0000000001040040 {V05 V06 V66}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars +{V24 V66}
        mov      edx, esi
        mov      ecx, 0xD1FFAB1E      ; ushort[]
@@ -239,24 +239,24 @@ G_M28690_IG09:        ; bbWeight=1.00, gcVars=0000000001040040 {V05 V06 V66}, gc
        mov      bword ptr [ebp-0x50], eax
        ; GC ptr vars +{V56}
        test     ebx, ebx
-       jle      SHORT G_M28690_IG15
-                       ;; size=52 bbWeight=1.00 PerfScore 18.00
-G_M28690_IG10:        ; bbWeight=4, gcVars=0000000000040050 {V05 V06 V56}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       jle      G_M28690_IG20
+                       ;; size=56 bbWeight=1.00 PerfScore 18.00
+G_M28690_IG10:        ; bbWeight=4, gcVars=0000000000040050 {V05 V06 V56}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; byrRegs -[eax]
        ; GC ptr vars -{V31}
        cmp      ebx, edi
-       jg       SHORT G_M28690_IG16
-                       ;; size=4 bbWeight=4 PerfScore 5.00
+       jg       G_M28690_IG21
+                       ;; size=8 bbWeight=4 PerfScore 5.00
 G_M28690_IG11:        ; bbWeight=1.47, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      edx, ebx
                        ;; size=2 bbWeight=1.47 PerfScore 0.37
-G_M28690_IG12:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M28690_IG12:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        cmp      edx, ebx
        ja       G_M28690_IG23
        mov      dword ptr [ebp-0x24], edx
        test     edx, edx
-       jge      SHORT G_M28690_IG14
-                       ;; size=15 bbWeight=4 PerfScore 14.00
+       jge      G_M28690_IG19
+                       ;; size=19 bbWeight=4 PerfScore 14.00
 G_M28690_IG13:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
@@ -264,25 +264,15 @@ G_M28690_IG13:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-       jmp      G_M28690_IG25
-                       ;; size=21 bbWeight=2 PerfScore 11.00
-G_M28690_IG14:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, 0xD1FFAB1E
+       ; gcrRegs +[ecx]
+       mov      edx, 0xD1FFAB1E
+       ; gcrRegs +[edx]
+       call     [<unknown method>]
+       ; gcrRegs -[ecx edx]
        mov      dword ptr [ebp+0x10], edi
-       jmp      SHORT G_M28690_IG17
-                       ;; size=5 bbWeight=2 PerfScore 6.00
-G_M28690_IG15:        ; bbWeight=0.50, gcVars=0000000000040040 {V05 V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V56}
-       mov      dword ptr [ebp+0x10], edi
-       jmp      SHORT G_M28690_IG20
-                       ;; size=5 bbWeight=0.50 PerfScore 1.50
-G_M28690_IG16:        ; bbWeight=0.53, gcVars=0000000000040050 {V05 V06 V56}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V04 V56}
-       mov      dword ptr [ebp+0x10], edi
-       mov      edx, edi
-       mov      edi, dword ptr [ebp+0x10]
-       jmp      SHORT G_M28690_IG12
-                       ;; size=10 bbWeight=0.53 PerfScore 2.25
-G_M28690_IG17:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+                     ;; size=35 bbWeight=2 PerfScore 16.00
+G_M28690_IG14:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      eax, bword ptr [ebp-0x50]
        ; byrRegs +[eax]
        mov      ecx, eax
@@ -299,13 +289,13 @@ G_M28690_IG17:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; byrRegs -[eax]
        mov      edi, bword ptr [ebp-0x50]
        ; byrRegs +[edi]
-       mov      eax, dword ptr [ebp-0x24]
-       lea      edi, bword ptr [edi+2*eax]
-       sub      ebx, eax
-       jns      SHORT G_M28690_IG19
+       mov      ecx, dword ptr [ebp-0x24]
+       lea      edi, bword ptr [edi+2*ecx]
+       sub      ebx, ecx
+       jns      SHORT G_M28690_IG16
                         ;; size=34 bbWeight=4 PerfScore 49.00
-G_M28690_IG18:        ; bbWeight=2, gcVars=0000000000040040 {V05 V06}, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, gcvars, byref
-       ; GC ptr vars -{V04 V56}
+G_M28690_IG15:        ; bbWeight=2, gcVars=0000000000040040 {V05 V06}, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, gcvars, byref
+       ; GC ptr vars -{V56}
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
@@ -313,13 +303,13 @@ G_M28690_IG18:        ; bbWeight=2, gcVars=0000000000040040 {V05 V06}, gcrefRegs
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=16 bbWeight=2 PerfScore 7.00
-G_M28690_IG19:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
+G_M28690_IG16:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
        test     ebx, ebx
        mov      bword ptr [ebp-0x50], edi
        ; GC ptr vars +{V56}
-       jg       SHORT G_M28690_IG21
+       jg       SHORT G_M28690_IG18
                       ;; size=7 bbWeight=4 PerfScore 9.00
-G_M28690_IG20:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M28690_IG17:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[edi]
        ; GC ptr vars -{V56}
        mov      ecx, gword ptr [ebp-0x38]
@@ -327,7 +317,7 @@ G_M28690_IG20:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        mov      edx, gword ptr [ecx+0x24]
        ; gcrRegs +[edx]
        test     dword ptr [edx+0x1C], 0xD1FFAB1E
-       je       SHORT G_M28690_IG22
+       je       G_M28690_IG24
        push     1
        mov      edx, 1
        ; gcrRegs -[edx]
@@ -365,23 +355,31 @@ G_M28690_IG20:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; GC ptr vars -{V55}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M28690_IG26
-                       ;; size=96 bbWeight=1 PerfScore 59.25
-G_M28690_IG21:        ; bbWeight=2, gcVars=0000000000040050 {V05 V06 V56}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       jmp      SHORT G_M28690_IG25
+                       ;; size=100 bbWeight=1 PerfScore 59.25
+G_M28690_IG18:        ; bbWeight=2, gcVars=0000000000040050 {V05 V06 V56}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars +{V04 V56}
        mov      edi, dword ptr [ebp+0x10]
        jmp      G_M28690_IG10
                        ;; size=8 bbWeight=2 PerfScore 6.00
+G_M28690_IG19:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       mov      dword ptr [ebp+0x10], edi
+       jmp      G_M28690_IG14
+                       ;; size=8 bbWeight=2 PerfScore 6.00
+G_M28690_IG20:        ; bbWeight=0.50, gcVars=0000000000040040 {V05 V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V04 V56}
+       mov      dword ptr [ebp+0x10], edi
+       jmp      SHORT G_M28690_IG17
+                       ;; size=5 bbWeight=0.50 PerfScore 1.50
+G_M28690_IG21:        ; bbWeight=0.53, gcVars=0000000000040050 {V05 V06 V56}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars +{V04 V56}
+       mov      dword ptr [ebp+0x10], edi
+       mov      edx, edi
+       mov      edi, dword ptr [ebp+0x10]
+       jmp      G_M28690_IG12
+                       ;; size=13 bbWeight=0.53 PerfScore 2.25
 G_M28690_IG22:        ; bbWeight=0, gcVars=0000000000040040 {V05 V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars -{V04 V56}
-       call     [System.IO.StreamWriter:ThrowAsyncIOInProgress()]
-       int3     
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M28690_IG23:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
-       int3     
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M28690_IG24:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, 381
        mov      edx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
@@ -393,19 +391,15 @@ G_M28690_IG24:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; gcrRegs -[eax edx]
        int3     
                        ;; size=26 bbWeight=0 PerfScore 0.00
-G_M28690_IG25:        ; bbWeight=2, gcVars=0000000000040050 {V05 V06 V56}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; GC ptr vars +{V04 V56}
-       mov      ecx, 0xD1FFAB1E
-       ; gcrRegs +[ecx]
-       mov      edx, 0xD1FFAB1E
-       ; gcrRegs +[edx]
-       call     [<unknown method>]
-       ; gcrRegs -[ecx edx]
-       mov      dword ptr [ebp+0x10], edi
-       jmp      G_M28690_IG17
-                       ;; size=24 bbWeight=2 PerfScore 13.00
-G_M28690_IG26:        ; bbWeight=1, gcVars=0000000000040040 {V05 V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V04 V56}
+G_M28690_IG23:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       call     [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
+       int3     
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M28690_IG24:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       call     [System.IO.StreamWriter:ThrowAsyncIOInProgress()]
+       int3     
+                       ;; size=7 bbWeight=0 PerfScore 0.00
+G_M28690_IG25:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x38]
        ; gcrRegs +[ecx]
        mov      edx, 1
@@ -416,9 +410,9 @@ G_M28690_IG26:        ; bbWeight=1, gcVars=0000000000040040 {V05 V06}, gcrefRegs
        ; GC ptr vars -{V06}
        call     <unknown method>
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M28690_IG29
+       jmp      SHORT G_M28690_IG28
                       ;; size=24 bbWeight=1 PerfScore 8.25
-G_M28690_IG27:        ; bbWeight=0, gcVars=0000000000040040 {V05 V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M28690_IG26:        ; bbWeight=0, gcVars=0000000000040040 {V05 V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars +{V06}
        mov      ecx, gword ptr [ebp-0x38]
        ; gcrRegs +[ecx]
@@ -433,11 +427,11 @@ G_M28690_IG27:        ; bbWeight=0, gcVars=0000000000040040 {V05 V06}, gcrefRegs
        pop      eax
        jmp      eax
                        ;; size=25 bbWeight=0 PerfScore 0.00
-G_M28690_IG28:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M28690_IG27:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.IO.StreamWriter:ThrowAsyncIOInProgress()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M28690_IG29:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M28690_IG28:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x34]
        ; gcrRegs +[ecx]
        mov      byte  ptr [ecx+0x1F], 0
@@ -447,9 +441,9 @@ G_M28690_IG29:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; GC ptr vars -{V05}
        call     <unknown method>
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M28690_IG31
+       jmp      SHORT G_M28690_IG30
                       ;; size=25 bbWeight=1 PerfScore 7.25
-G_M28690_IG30:        ; bbWeight=0, gcVars=0000000000040000 {V05}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M28690_IG29:        ; bbWeight=0, gcVars=0000000000040000 {V05}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars +{V05}
        mov      ecx, gword ptr [ebp-0x34]
        ; gcrRegs +[ecx]
@@ -463,7 +457,7 @@ G_M28690_IG30:        ; bbWeight=0, gcVars=0000000000040000 {V05}, gcrefRegs=000
        pop      eax
        jmp      eax
                        ;; size=26 bbWeight=0 PerfScore 0.00
-G_M28690_IG31:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M28690_IG30:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
...
  
  
librariestestsnotieredcompilation.run.windows.x86.Release.mch
-22 (-7.86%) : 154295.dasm - System.IO.Packaging.PackagePart:Close():this (FullOpts)
@@ -8,34 +8,33 @@
 ; 8 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] ( 14, 10   )     ref  ->  [ebp-0x28]  this class-hnd EH-live single-def <System.IO.Packaging.PackagePart>
+;  V00 this         [V00,T06] ( 14, 10   )     ref  ->  [ebp-0x28]  this class-hnd EH-live single-def <System.IO.Packaging.PackagePart>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.IO.Stream]>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.IO.Stream>
-;  V03 tmp0         [V03,T09] (  2,  2   )     ref  ->  esi         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V03 tmp0         [V03,T10] (  2,  2   )     ref  ->  esi         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.IO.Stream]>
 ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.IO.FileStream>
-;  V06 tmp3         [V06,T04] (  4, 10.24)     ref  ->  [ebp-0x2C]  class-hnd spill-single-def "dup spill" <System.IO.Strategies.FileStreamStrategy>
+;  V06 tmp3         [V06,T05] (  4, 10.24)     ref  ->  [ebp-0x2C]  class-hnd spill-single-def "dup spill" <System.IO.Strategies.FileStreamStrategy>
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref   
-;* V08 tmp5         [V08,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V08 tmp5         [V08,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V09 tmp6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V10 tmp7         [V10,T07] (  6, 40.67)     ref  ->  edx         class-hnd single-def "Inlining Arg" <<unknown class>>
-;  V11 tmp8         [V11,T13] (  3,  8.34)     int  ->  eax         single-def "Inline stloc first use temp"
-;  V12 tmp9         [V12,T02] (  5, 12.51)     ref  ->  esi         single-def "field V01._list (fldOffset=0x0)" P-INDEP
-;  V13 tmp10        [V13,T03] (  6,  9.33)     ref  ->  [ebp-0x30]  spill-single-def "field V01._current (fldOffset=0x4)" P-INDEP
+;  V10 tmp7         [V10,T08] (  6, 40.67)     ref  ->  edx         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V11 tmp8         [V11,T14] (  3,  8.34)     int  ->  eax         single-def "Inline stloc first use temp"
+;  V12 tmp9         [V12,T04] (  4, 11.84)     ref  ->  esi         single-def "field V01._list (fldOffset=0x0)" P-INDEP
+;  V13 tmp10        [V13,T02] (  6,  9.33)     ref  ->  [ebp-0x30]  spill-single-def "field V01._current (fldOffset=0x4)" P-INDEP
 ;  V14 tmp11        [V14,T00] (  6, 17.82)     int  ->  ebx         "field V01._index (fldOffset=0x8)" P-INDEP
-;  V15 tmp12        [V15,T08] (  3,  5.17)     int  ->  [ebp-0x24]  spill-single-def "field V01._version (fldOffset=0xc)" P-INDEP
-;  V16 tmp13        [V16,T10] (  3,  1.50)     ref  ->  esi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V15 tmp12        [V15,T09] (  2,  4.50)     int  ->  [ebp-0x24]  spill-single-def "field V01._version (fldOffset=0xc)" P-INDEP
+;  V16 tmp13        [V16,T11] (  3,  1.50)     ref  ->  esi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
 ;* V17 tmp14        [V17    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._current (fldOffset=0x4)" P-INDEP
-;* V18 tmp15        [V18,T15] (  0,  0   )     int  ->  zero-ref    single-def "field V04._index (fldOffset=0x8)" P-INDEP
-;  V19 tmp16        [V19,T14] (  2,  1   )     int  ->  edi         single-def "field V04._version (fldOffset=0xc)" P-INDEP
+;* V18 tmp15        [V18,T16] (  0,  0   )     int  ->  zero-ref    single-def "field V04._index (fldOffset=0x8)" P-INDEP
+;  V19 tmp16        [V19,T15] (  2,  1   )     int  ->  edi         single-def "field V04._version (fldOffset=0xc)" P-INDEP
 ;  V20 tmp17        [V20,T01] (  3, 19.97)     ref  ->  edx         "arr expr"
-;  V21 tmp18        [V21,T12] (  2,  1.34)     ref  ->  edx         single-def "argument with side effect"
+;  V21 tmp18        [V21,T13] (  2,  1.34)     ref  ->  edx         single-def "argument with side effect"
 ;  V22 EHSlots      [V22    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V23 cse0         [V23,T11] (  3,  1.50)     ref  ->  esi         "CSE - conservative"
-;  TEMP_02                                     ref  ->  [ebp-0x34]
-;  TEMP_01                                     int  ->  [ebp-0x38]
+;  V23 cse0         [V23,T03] (  2,  8.01)     int  ->  edx         "CSE - moderate"
+;  V24 cse1         [V24,T12] (  3,  1.50)     ref  ->  esi         "CSE - conservative"
 ;
-; Lcl frame size = 44
+; Lcl frame size = 36
 
 G_M35060_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -43,34 +42,35 @@ G_M35060_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 44
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [ebp-0x34], ymm4
+       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-0x28], ecx
        ; GC ptr vars +{V00}
-                      ;; size=26 bbWeight=1 PerfScore 9.08
-G_M35060_IG02:        ; bbWeight=1, gcVars=00000020 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
+                        ;; size=26 bbWeight=1 PerfScore 9.75
+G_M35060_IG02:        ; bbWeight=1, gcVars=00000040 {V00}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[ecx]
        cmp      byte  ptr [ecx+0x1C], 0
-       jne      G_M35060_IG23
+       jne      G_M35060_IG22
                       ;; size=10 bbWeight=1 PerfScore 4.00
 G_M35060_IG03:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        mov      esi, gword ptr [ecx+0x10]
        ; gcrRegs +[esi]
        test     esi, esi
-       je       G_M35060_IG17
+       je       G_M35060_IG16
        cmp      byte  ptr [ecx+0x1D], 0
-       jne      G_M35060_IG15
+       jne      SHORT G_M35060_IG14
        mov      edi, dword ptr [esi+0x0C]
        xor      ebx, ebx
        mov      dword ptr [ebp-0x24], edi
        jmp      SHORT G_M35060_IG09
-                      ;; size=31 bbWeight=0.50 PerfScore 6.25
-G_M35060_IG04:        ; bbWeight=2, gcVars=00000028 {V00 V13}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+                       ;; size=27 bbWeight=0.50 PerfScore 6.25
+G_M35060_IG04:        ; bbWeight=2, gcVars=00000044 {V00 V13}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[ecx] +[eax]
-       ; GC ptr vars +{V03 V13}
+       ; GC ptr vars +{V13}
        cmp      dword ptr [eax], 0xD1FFAB1E
        jne      SHORT G_M35060_IG08
                        ;; size=8 bbWeight=2 PerfScore 8.00
@@ -83,23 +83,19 @@ G_M35060_IG05:        ; bbWeight=1.28, gcrefRegs=00000041 {eax esi}, byrefRegs=0
        je       SHORT G_M35060_IG07
        mov      ecx, edx
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x34], ecx
        mov      edx, 1
        ; gcrRegs -[edx]
-       mov      ecx, gword ptr [ebp-0x2C]
-       mov      ecx, dword ptr [ecx]
-       ; gcrRegs -[ecx]
-       mov      ecx, dword ptr [ecx+0x34]
-       mov      dword ptr [ebp-0x38], ecx
-       mov      ecx, gword ptr [ebp-0x34]
-       ; gcrRegs +[ecx]
-       mov      edi, dword ptr [ebp-0x38]
-       ; GC ptr vars -{V03 V06}
+       mov      edi, gword ptr [ebp-0x2C]
+       ; gcrRegs +[edi]
+       mov      edi, dword ptr [edi]
+       ; gcrRegs -[edi]
+       mov      edi, dword ptr [edi+0x34]
+       ; GC ptr vars -{V06}
        call     [edi+0x10]<unknown method>
        ; gcrRegs -[eax ecx]
        mov      eax, gword ptr [ebp-0x30]
        ; gcrRegs +[eax]
-                      ;; size=43 bbWeight=1.28 PerfScore 22.72
+                      ;; size=31 bbWeight=1.28 PerfScore 17.60
 G_M35060_IG06:        ; bbWeight=1.28, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, eax
        ; gcrRegs +[ecx]
@@ -109,8 +105,8 @@ G_M35060_IG06:        ; bbWeight=1.28, gcrefRegs=00000041 {eax esi}, byrefRegs=0
        mov      edi, dword ptr [ebp-0x24]
        jmp      SHORT G_M35060_IG09
                        ;; size=12 bbWeight=1.28 PerfScore 5.44
-G_M35060_IG07:        ; bbWeight=0.64, gcVars=00000028 {V00 V13}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V03 V13}
+G_M35060_IG07:        ; bbWeight=0.64, gcVars=00000044 {V00 V13}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V13}
        mov      eax, gword ptr [ebp-0x30]
        ; gcrRegs +[eax]
        jmp      SHORT G_M35060_IG06
@@ -121,19 +117,20 @@ G_M35060_IG08:        ; bbWeight=0.72, gcrefRegs=00000041 {eax esi}, byrefRegs=0
        mov      eax, dword ptr [eax]
        ; gcrRegs -[eax]
        mov      eax, dword ptr [eax+0x34]
-       ; GC ptr vars -{V03 V13}
+       ; GC ptr vars -{V13}
        call     [eax+0x0C]System.IO.Stream:Close():this
        ; gcrRegs -[ecx]
        mov      edi, dword ptr [ebp-0x24]
                        ;; size=13 bbWeight=0.72 PerfScore 5.94
 G_M35060_IG09:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        cmp      edi, dword ptr [esi+0x0C]
-       jne      SHORT G_M35060_IG14
+       jne      SHORT G_M35060_IG13
                         ;; size=5 bbWeight=4 PerfScore 16.00
 G_M35060_IG10:        ; bbWeight=4.01, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ebx, dword ptr [esi+0x08]
-       jae      SHORT G_M35060_IG15
-                       ;; size=5 bbWeight=4.01 PerfScore 16.02
+       mov      edx, dword ptr [esi+0x08]
+       cmp      ebx, edx
+       jae      SHORT G_M35060_IG14
+                       ;; size=7 bbWeight=4.01 PerfScore 13.02
 G_M35060_IG11:        ; bbWeight=3.33, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
@@ -155,14 +152,7 @@ G_M35060_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M35060_IG14:        ; bbWeight=0.67, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[esi]
-       mov      edi, dword ptr [ebp-0x24]
-       cmp      edi, dword ptr [esi+0x0C]
-       jne      SHORT G_M35060_IG13
-                       ;; size=8 bbWeight=0.67 PerfScore 3.35
-G_M35060_IG15:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[esi]
+G_M35060_IG14:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x28]
        ; gcrRegs +[ecx]
        mov      edx, gword ptr [ecx+0x10]
@@ -172,9 +162,9 @@ G_M35060_IG15:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        xor      esi, esi
        mov      dword ptr [edx+0x08], esi
        test     eax, eax
-       jle      SHORT G_M35060_IG17
+       jle      SHORT G_M35060_IG16
                      ;; size=21 bbWeight=4 PerfScore 42.00
-G_M35060_IG16:        ; bbWeight=0.34, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
+G_M35060_IG15:        ; bbWeight=0.34, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
        mov      edx, gword ptr [edx+0x04]
        push     eax
@@ -185,23 +175,23 @@ G_M35060_IG16:        ; bbWeight=0.34, gcrefRegs=00000004 {edx}, byrefRegs=00000
        call     [<unknown method>]
        ; gcrRegs -[ecx]
                        ;; size=14 bbWeight=0.34 PerfScore 2.18
-G_M35060_IG17:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M35060_IG16:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        xor      eax, eax
        ; gcrRegs +[eax]
        mov      ecx, gword ptr [ebp-0x28]
        ; gcrRegs +[ecx]
        mov      gword ptr [ecx+0x10], eax
                        ;; size=8 bbWeight=0.50 PerfScore 1.12
-G_M35060_IG18:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+G_M35060_IG17:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        mov      gword ptr [ecx+0x14], eax
                        ;; size=3 bbWeight=0.50 PerfScore 0.50
-G_M35060_IG19:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+G_M35060_IG18:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        mov      gword ptr [ecx+0x08], eax
        mov      byte  ptr [ecx+0x1C], 1
-       jmp      SHORT G_M35060_IG23
+       jmp      SHORT G_M35060_IG22
                       ;; size=9 bbWeight=0.50 PerfScore 2.00
-G_M35060_IG20:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M35060_IG19:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
        xor      eax, eax
        ; gcrRegs +[eax]
@@ -209,17 +199,17 @@ G_M35060_IG20:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; gcrRegs +[ecx]
        mov      gword ptr [ecx+0x10], eax
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M35060_IG21:        ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+G_M35060_IG20:        ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        mov      gword ptr [ecx+0x14], eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M35060_IG22:        ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+G_M35060_IG21:        ; bbWeight=0, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
        mov      gword ptr [ecx+0x08], eax
        mov      byte  ptr [ecx+0x1C], 1
        pop      eax
        jmp      eax
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M35060_IG23:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
+G_M35060_IG22:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
        ; gcrRegs -[ecx]
        ; GC ptr vars -{V00}
        lea      esp, [ebp-0x0C]
@@ -230,9 +220,9 @@ G_M35060_IG23:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 280, prolog size 26, PerfScore 187.49, instruction count 101, allocated bytes for code 280 (MethodHash=c698770b) for method System.IO.Packaging.PackagePart:Close():this (FullOpts)
+; Total bytes of code 258, prolog size 26, PerfScore 176.68, instruction count 96, allocated bytes for code 258 (MethodHash=c698770b) for method System.IO.Packaging.PackagePart:Close():this (FullOpts)
...
  
-10 (-4.03%) : 177769.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
@@ -9,31 +9,32 @@
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct ( 4) zero-ref    single-def <System.Net.Http.Headers.HeaderDescriptor>
-;  V01 arg1         [V01,T03] (  8, 12.83)     ref  ->  esi         class-hnd single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
-;  V02 loc0         [V02,T15] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V01 arg1         [V01,T04] (  8, 12.83)     ref  ->  esi         class-hnd single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V02 loc0         [V02,T16] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
 ;  V03 loc1         [V03    ] (  6,  5   )   ubyte  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V04 loc2         [V04,T12] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
+;  V04 loc2         [V04,T13] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V07 loc5         [V07,T10] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
-;  V08 tmp0         [V08,T11] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
+;  V07 loc5         [V07,T11] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
+;  V08 tmp0         [V08,T12] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
 ;* V09 tmp1         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.String>
-;  V10 tmp2         [V10,T07] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
+;  V10 tmp2         [V10,T08] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
 ;* V11 tmp3         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
-;* V12 tmp4         [V12,T05] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V12 tmp4         [V12,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V13 tmp5         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V14 tmp6         [V14,T08] (  2,  3.83)     ref  ->  edi         single-def "field V00._descriptor (fldOffset=0x0)" P-INDEP
-;  V15 tmp7         [V15,T02] (  5, 12.51)     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
-;  V16 tmp8         [V16,T04] (  2,  6.66)     ref  ->  edx         "field V05._current (fldOffset=0x4)" P-INDEP
+;  V14 tmp6         [V14,T09] (  2,  3.83)     ref  ->  edi         single-def "field V00._descriptor (fldOffset=0x0)" P-INDEP
+;  V15 tmp7         [V15,T03] (  4, 11.84)     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
+;  V16 tmp8         [V16,T05] (  2,  6.66)     ref  ->  edx         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V17 tmp9         [V17,T00] (  6, 17.82)     int  ->  [ebp-0x28]  "field V05._index (fldOffset=0x8)" P-INDEP
-;  V18 tmp10        [V18,T06] (  3,  5.17)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
-;  V19 tmp11        [V19,T13] (  3,  1.50)     ref  ->  ebx         single-def "field V11._list (fldOffset=0x0)" P-INDEP
+;  V18 tmp10        [V18,T07] (  2,  4.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
+;  V19 tmp11        [V19,T14] (  3,  1.50)     ref  ->  ebx         single-def "field V11._list (fldOffset=0x0)" P-INDEP
 ;* V20 tmp12        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._current (fldOffset=0x4)" P-INDEP
-;* V21 tmp13        [V21,T16] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
-;  V22 tmp14        [V22,T14] (  2,  1   )     int  ->  eax         "field V11._version (fldOffset=0xc)" P-INDEP
+;* V21 tmp13        [V21,T17] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
+;  V22 tmp14        [V22,T15] (  2,  1   )     int  ->  eax         "field V11._version (fldOffset=0xc)" P-INDEP
 ;  V23 tmp15        [V23,T01] (  3, 19.97)     ref  ->  edx         "arr expr"
 ;  V24 EHSlots      [V24    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V25 cse0         [V25,T09] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
+;  V25 cse0         [V25,T02] (  2,  8.01)     int  ->  edx         "CSE - aggressive"
+;  V26 cse1         [V26,T10] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 36
 
@@ -57,7 +58,7 @@ G_M53769_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        xor      edx, edx
        mov      dword ptr [ebp-0x24], edx
                        ;; size=8 bbWeight=1 PerfScore 2.25
-G_M53769_IG03:        ; bbWeight=1, gcVars=00008000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M53769_IG03:        ; bbWeight=1, gcVars=00010000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      byte  ptr [ebp-0x24], 0
        jne      SHORT G_M53769_IG10
        lea      edx, [ebp-0x24]
@@ -77,12 +78,12 @@ G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M53769_IG05:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M53769_IG05:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ebx, gword ptr [esi+0x04]
        ; gcrRegs +[ebx]
        test     ebx, ebx
-       je       G_M53769_IG16
-                       ;; size=11 bbWeight=1 PerfScore 3.25
+       je       SHORT G_M53769_IG15
+                       ;; size=7 bbWeight=1 PerfScore 3.25
 G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -90,7 +91,7 @@ G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[edx] +[eax]
        test     eax, eax
-       je       SHORT G_M53769_IG15
+       je       SHORT G_M53769_IG14
        mov      ebx, eax
        mov      eax, dword ptr [ebx+0x0C]
        ; gcrRegs -[eax]
@@ -99,17 +100,18 @@ G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
                        ;; size=26 bbWeight=0.50 PerfScore 3.12
 G_M53769_IG07:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        cmp      eax, dword ptr [ebx+0x0C]
-       jne      SHORT G_M53769_IG11
+       jne      SHORT G_M53769_IG13
                         ;; size=5 bbWeight=4 PerfScore 16.00
 G_M53769_IG08:        ; bbWeight=4.01, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ecx, dword ptr [ebx+0x08]
-       jae      SHORT G_M53769_IG12
-                       ;; size=5 bbWeight=4.01 PerfScore 16.02
+       mov      edx, dword ptr [ebx+0x08]
+       cmp      ecx, edx
+       jae      SHORT G_M53769_IG11
+                       ;; size=7 bbWeight=4.01 PerfScore 13.02
 G_M53769_IG09:        ; bbWeight=3.33, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [ebx+0x04]
        ; gcrRegs +[edx]
        cmp      ecx, dword ptr [edx+0x04]
-       jae      SHORT G_M53769_IG13
+       jae      SHORT G_M53769_IG12
        mov      edx, gword ptr [edx+4*ecx+0x08]
        inc      ecx
        mov      dword ptr [ebp-0x28], ecx
@@ -127,28 +129,22 @@ G_M53769_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [System.Threading.Monitor:ThrowLockTakenException()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M53769_IG11:        ; bbWeight=0.67, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[ebx esi]
-       mov      eax, dword ptr [ebp-0x2C]
-       cmp      eax, dword ptr [ebx+0x0C]
-       jne      SHORT G_M53769_IG14
-                       ;; size=8 bbWeight=0.67 PerfScore 3.35
-G_M53769_IG12:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ebx]
+G_M53769_IG11:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[esi]
        xor      ecx, ecx
        ; gcrRegs +[ecx]
        mov      gword ptr [esi+0x04], ecx
-       jmp      SHORT G_M53769_IG16
+       jmp      SHORT G_M53769_IG15
                         ;; size=7 bbWeight=4 PerfScore 13.00
-G_M53769_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx esi]
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M53769_IG14:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M53769_IG15:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG14:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ebx esi edi]
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -160,36 +156,36 @@ G_M53769_IG15:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        mov      ecx, esi
        call     [System.Net.Http.Headers.HttpHeaders:ParseSingleRawHeaderValue(System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo,System.Net.Http.Headers.HeaderDescriptor,System.String)]
        ; gcrRegs -[ecx edx ebx edi]
-       jmp      SHORT G_M53769_IG12
+       jmp      SHORT G_M53769_IG11
                       ;; size=24 bbWeight=0.50 PerfScore 5.00
-G_M53769_IG16:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG15:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG20
+       je       SHORT G_M53769_IG19
                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M53769_IG17:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG16:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V02}
        call     <unknown method>
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M53769_IG20
+       jmp      SHORT G_M53769_IG19
                       ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M53769_IG18:        ; bbWeight=0, gcVars=00008000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V02 V15}
+G_M53769_IG17:        ; bbWeight=0, gcVars=00010000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V02 V16}
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG19
+       je       SHORT G_M53769_IG18
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V02 V15}
+       ; GC ptr vars -{V02 V16}
        call     <unknown method>
        ; gcrRegs -[ecx]
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M53769_IG19:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG18:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M53769_IG20:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M53769_IG19:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -198,9 +194,9 @@ G_M53769_IG20:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
 
-; Total bytes of code 248, prolog size 14, PerfScore 145.51, instruction count 88, allocated bytes for code 248 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
+; Total bytes of code 238, prolog size 14, PerfScore 139.15, instruction count 86, allocated bytes for code 238 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
 ; ============================================================
 
 *************** EH table for System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo)
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M53769_IG03..G_M53769_IG16) handled by [G_M53769_IG18..G_M53769_IG20) (fault)
+EH#0: try [G_M53769_IG03..G_M53769_IG15) handled by [G_M53769_IG17..G_M53769_IG19) (fault)
  
-10 (-4.03%) : 32562.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
@@ -9,31 +9,32 @@
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct ( 4) zero-ref    single-def <System.Net.Http.Headers.HeaderDescriptor>
-;  V01 arg1         [V01,T03] (  8, 12.83)     ref  ->  esi         class-hnd single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
-;  V02 loc0         [V02,T15] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V01 arg1         [V01,T04] (  8, 12.83)     ref  ->  esi         class-hnd single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V02 loc0         [V02,T16] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
 ;  V03 loc1         [V03    ] (  6,  5   )   ubyte  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V04 loc2         [V04,T12] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
+;  V04 loc2         [V04,T13] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V07 loc5         [V07,T10] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
-;  V08 tmp0         [V08,T11] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
+;  V07 loc5         [V07,T11] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
+;  V08 tmp0         [V08,T12] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
 ;* V09 tmp1         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.String>
-;  V10 tmp2         [V10,T07] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
+;  V10 tmp2         [V10,T08] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
 ;* V11 tmp3         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
-;* V12 tmp4         [V12,T05] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V12 tmp4         [V12,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V13 tmp5         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V14 tmp6         [V14,T08] (  2,  3.83)     ref  ->  edi         single-def "field V00._descriptor (fldOffset=0x0)" P-INDEP
-;  V15 tmp7         [V15,T02] (  5, 12.51)     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
-;  V16 tmp8         [V16,T04] (  2,  6.66)     ref  ->  edx         "field V05._current (fldOffset=0x4)" P-INDEP
+;  V14 tmp6         [V14,T09] (  2,  3.83)     ref  ->  edi         single-def "field V00._descriptor (fldOffset=0x0)" P-INDEP
+;  V15 tmp7         [V15,T03] (  4, 11.84)     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
+;  V16 tmp8         [V16,T05] (  2,  6.66)     ref  ->  edx         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V17 tmp9         [V17,T00] (  6, 17.82)     int  ->  [ebp-0x28]  "field V05._index (fldOffset=0x8)" P-INDEP
-;  V18 tmp10        [V18,T06] (  3,  5.17)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
-;  V19 tmp11        [V19,T13] (  3,  1.50)     ref  ->  ebx         single-def "field V11._list (fldOffset=0x0)" P-INDEP
+;  V18 tmp10        [V18,T07] (  2,  4.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
+;  V19 tmp11        [V19,T14] (  3,  1.50)     ref  ->  ebx         single-def "field V11._list (fldOffset=0x0)" P-INDEP
 ;* V20 tmp12        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V11._current (fldOffset=0x4)" P-INDEP
-;* V21 tmp13        [V21,T16] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
-;  V22 tmp14        [V22,T14] (  2,  1   )     int  ->  eax         "field V11._version (fldOffset=0xc)" P-INDEP
+;* V21 tmp13        [V21,T17] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
+;  V22 tmp14        [V22,T15] (  2,  1   )     int  ->  eax         "field V11._version (fldOffset=0xc)" P-INDEP
 ;  V23 tmp15        [V23,T01] (  3, 19.97)     ref  ->  edx         "arr expr"
 ;  V24 EHSlots      [V24    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V25 cse0         [V25,T09] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
+;  V25 cse0         [V25,T02] (  2,  8.01)     int  ->  edx         "CSE - aggressive"
+;  V26 cse1         [V26,T10] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 36
 
@@ -57,7 +58,7 @@ G_M53769_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        xor      edx, edx
        mov      dword ptr [ebp-0x24], edx
                        ;; size=8 bbWeight=1 PerfScore 2.25
-G_M53769_IG03:        ; bbWeight=1, gcVars=00008000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M53769_IG03:        ; bbWeight=1, gcVars=00010000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      byte  ptr [ebp-0x24], 0
        jne      SHORT G_M53769_IG10
        lea      edx, [ebp-0x24]
@@ -77,12 +78,12 @@ G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
                        ;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M53769_IG05:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M53769_IG05:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ebx, gword ptr [esi+0x04]
        ; gcrRegs +[ebx]
        test     ebx, ebx
-       je       G_M53769_IG16
-                       ;; size=11 bbWeight=1 PerfScore 3.25
+       je       SHORT G_M53769_IG15
+                       ;; size=7 bbWeight=1 PerfScore 3.25
 G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -90,7 +91,7 @@ G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[edx] +[eax]
        test     eax, eax
-       je       SHORT G_M53769_IG15
+       je       SHORT G_M53769_IG14
        mov      ebx, eax
        mov      eax, dword ptr [ebx+0x0C]
        ; gcrRegs -[eax]
@@ -99,17 +100,18 @@ G_M53769_IG06:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
                        ;; size=26 bbWeight=0.50 PerfScore 3.12
 G_M53769_IG07:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        cmp      eax, dword ptr [ebx+0x0C]
-       jne      SHORT G_M53769_IG11
+       jne      SHORT G_M53769_IG13
                         ;; size=5 bbWeight=4 PerfScore 16.00
 G_M53769_IG08:        ; bbWeight=4.01, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ecx, dword ptr [ebx+0x08]
-       jae      SHORT G_M53769_IG12
-                       ;; size=5 bbWeight=4.01 PerfScore 16.02
+       mov      edx, dword ptr [ebx+0x08]
+       cmp      ecx, edx
+       jae      SHORT G_M53769_IG11
+                       ;; size=7 bbWeight=4.01 PerfScore 13.02
 G_M53769_IG09:        ; bbWeight=3.33, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [ebx+0x04]
        ; gcrRegs +[edx]
        cmp      ecx, dword ptr [edx+0x04]
-       jae      SHORT G_M53769_IG13
+       jae      SHORT G_M53769_IG12
        mov      edx, gword ptr [edx+4*ecx+0x08]
        inc      ecx
        mov      dword ptr [ebp-0x28], ecx
@@ -127,28 +129,22 @@ G_M53769_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [System.Threading.Monitor:ThrowLockTakenException()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M53769_IG11:        ; bbWeight=0.67, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[ebx esi]
-       mov      eax, dword ptr [ebp-0x2C]
-       cmp      eax, dword ptr [ebx+0x0C]
-       jne      SHORT G_M53769_IG14
-                       ;; size=8 bbWeight=0.67 PerfScore 3.35
-G_M53769_IG12:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ebx]
+G_M53769_IG11:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[esi]
        xor      ecx, ecx
        ; gcrRegs +[ecx]
        mov      gword ptr [esi+0x04], ecx
-       jmp      SHORT G_M53769_IG16
+       jmp      SHORT G_M53769_IG15
                         ;; size=7 bbWeight=4 PerfScore 13.00
-G_M53769_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG12:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx esi]
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M53769_IG14:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M53769_IG15:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG14:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ebx esi edi]
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -160,36 +156,36 @@ G_M53769_IG15:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        mov      ecx, esi
        call     [System.Net.Http.Headers.HttpHeaders:ParseSingleRawHeaderValue(System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo,System.Net.Http.Headers.HeaderDescriptor,System.String)]
        ; gcrRegs -[ecx edx ebx edi]
-       jmp      SHORT G_M53769_IG12
+       jmp      SHORT G_M53769_IG11
                       ;; size=24 bbWeight=0.50 PerfScore 5.00
-G_M53769_IG16:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG15:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG20
+       je       SHORT G_M53769_IG19
                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M53769_IG17:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG16:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V02}
        call     <unknown method>
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M53769_IG20
+       jmp      SHORT G_M53769_IG19
                       ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M53769_IG18:        ; bbWeight=0, gcVars=00008000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V02 V15}
+G_M53769_IG17:        ; bbWeight=0, gcVars=00010000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V02 V16}
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG19
+       je       SHORT G_M53769_IG18
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V02 V15}
+       ; GC ptr vars -{V02 V16}
        call     <unknown method>
        ; gcrRegs -[ecx]
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M53769_IG19:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG18:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M53769_IG20:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M53769_IG19:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -198,9 +194,9 @@ G_M53769_IG20:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
 
-; Total bytes of code 248, prolog size 14, PerfScore 145.51, instruction count 88, allocated bytes for code 248 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
+; Total bytes of code 238, prolog size 14, PerfScore 139.15, instruction count 86, allocated bytes for code 238 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
 ; ============================================================
 
 *************** EH table for System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo)
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M53769_IG03..G_M53769_IG16) handled by [G_M53769_IG18..G_M53769_IG20) (fault)
+EH#0: try [G_M53769_IG03..G_M53769_IG15) handled by [G_M53769_IG17..G_M53769_IG19) (fault)
  
+32 (+3.41%) : 247903.dasm - System.Tests.DecimalTests:BigInteger_Round() (FullOpts)
@@ -93,10 +93,10 @@
 ;* V82 tmp74        [V82    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x4)" P-INDEP
 ;  V83 tmp75        [V83    ] (  3, 48   )     ref  ->  [ebp-0x94]  do-not-enreg[X] addr-exposed "field V33._bits (fldOffset=0x0)" P-DEP
 ;  V84 tmp76        [V84    ] (  3, 48   )     int  ->  [ebp-0x90]  do-not-enreg[X] addr-exposed "field V33._sign (fldOffset=0x4)" P-DEP
-;  V85 tmp77        [V85,T37] (  3, 16   )   byref  ->  edi         "field V35._reference (fldOffset=0x0)" P-INDEP
-;  V86 tmp78        [V86,T41] (  3, 16   )     int  ->  [ebp-0xB0]  "field V35._length (fldOffset=0x4)" P-INDEP
-;  V87 tmp79        [V87,T38] (  3, 16   )   byref  ->  registers   "field V38._reference (fldOffset=0x0)" P-INDEP
-;  V88 tmp80        [V88,T42] (  3, 16   )     int  ->  registers   "field V38._length (fldOffset=0x4)" P-INDEP
+;  V85 tmp77        [V85,T37] (  3, 20.33)   byref  ->  edi         "field V35._reference (fldOffset=0x0)" P-INDEP
+;  V86 tmp78        [V86,T39] (  3, 20.33)     int  ->  [ebp-0xB0]  "field V35._length (fldOffset=0x4)" P-INDEP
+;  V87 tmp79        [V87,T41] (  3, 16   )   byref  ->  [ebp-0xD0]  "field V38._reference (fldOffset=0x0)" P-INDEP
+;  V88 tmp80        [V88,T43] (  3, 16   )     int  ->  ecx         "field V38._length (fldOffset=0x4)" P-INDEP
 ;  V89 tmp81        [V89    ] (  3, 24   )     ref  ->  [ebp-0x9C]  do-not-enreg[X] addr-exposed "field V40._bits (fldOffset=0x0)" P-DEP
 ;  V90 tmp82        [V90    ] (  3, 24   )     int  ->  [ebp-0x98]  do-not-enreg[X] addr-exposed "field V40._sign (fldOffset=0x4)" P-DEP
 ;  V91 tmp83        [V91,T25] (  4, 24.67)     ref  ->  ebx         "field V41._bits (fldOffset=0x0)" P-INDEP
@@ -109,10 +109,10 @@
 ;* V98 tmp90        [V98    ] (  0,  0   )     int  ->  zero-ref    "field V44._length (fldOffset=0x4)" P-INDEP
 ;  V99 tmp91        [V99    ] (  3, 48   )     ref  ->  [ebp-0xA4]  do-not-enreg[X] addr-exposed "field V46._bits (fldOffset=0x0)" P-DEP
 ;  V100 tmp92       [V100    ] (  3, 48   )     int  ->  [ebp-0xA0]  do-not-enreg[X] addr-exposed "field V46._sign (fldOffset=0x4)" P-DEP
-;  V101 tmp93       [V101,T39] (  3, 16   )   byref  ->  edi         "field V48._reference (fldOffset=0x0)" P-INDEP
-;  V102 tmp94       [V102,T43] (  3, 16   )     int  ->  [ebp-0xB4]  "field V48._length (fldOffset=0x4)" P-INDEP
-;  V103 tmp95       [V103,T40] (  3, 16   )   byref  ->  registers   "field V51._reference (fldOffset=0x0)" P-INDEP
-;  V104 tmp96       [V104,T44] (  3, 16   )     int  ->  registers   "field V51._length (fldOffset=0x4)" P-INDEP
+;  V101 tmp93       [V101,T38] (  3, 20.33)   byref  ->  edi         "field V48._reference (fldOffset=0x0)" P-INDEP
+;  V102 tmp94       [V102,T40] (  3, 20.33)     int  ->  [ebp-0xB4]  "field V48._length (fldOffset=0x4)" P-INDEP
+;  V103 tmp95       [V103,T42] (  3, 16   )   byref  ->  [ebp-0xD4]  "field V51._reference (fldOffset=0x0)" P-INDEP
+;  V104 tmp96       [V104,T44] (  3, 16   )     int  ->  ecx         "field V51._length (fldOffset=0x4)" P-INDEP
 ;  V105 tmp97       [V105,T22] (  3, 28   )   ubyte  ->  [ebp-0xB8]  spill-single-def "V04.[000..001)"
 ;  V106 tmp98       [V106,T19] (  2, 32   )   ubyte  ->  ebx         "V11.[000..001)"
 ;  V107 tmp99       [V107,T17] (  2, 32   )     ref  ->  eax         "V11.[004..008)"
@@ -130,7 +130,7 @@
 ;  V119 tmp111      [V119,T06] (  3, 48   )     ref  ->  edx         "arr expr"
 ;  V120 tmp112      [V120,T07] (  3, 48   )   byref  ->  edx         "BlockOp address local"
 ;  V121 tmp113      [V121,T48] (  2,  0   )     ref  ->  edi         "argument with side effect"
-;  V122 tmp114      [V122,T49] (  2,  0   )     ref  ->  [ebp-0xD0]  spill-single-def "argument with side effect"
+;  V122 tmp114      [V122,T49] (  2,  0   )     ref  ->  [ebp-0xD8]  spill-single-def "argument with side effect"
 ;  V123 cse0        [V123,T09] (  3, 48   )     int  ->  eax         "CSE - moderate"
 ;  V124 rat0        [V124    ] (  1, 16   )    long  ->  [ebp-0xC0]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
 ;  V125 rat1        [V125,T33] (  2, 24   )     int  ->  eax         "field V124.lo (fldOffset=0x0)" P-INDEP
@@ -139,7 +139,7 @@
 ;  V128 rat4        [V128,T35] (  2, 24   )     int  ->  eax         "field V127.lo (fldOffset=0x0)" P-INDEP
 ;  V129 rat5        [V129,T36] (  2, 24   )     int  ->  edx         "field V127.hi (fldOffset=0x4)" P-INDEP
 ;
-; Lcl frame size = 196
+; Lcl frame size = 204
 
 G_M36344_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -147,7 +147,7 @@ G_M36344_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 196
+       sub      esp, 204
        vzeroupper 
        vxorps   xmm4, xmm4, xmm4
        vmovdqu32 zmmword ptr [ebp-0xA4], zmm4
@@ -170,7 +170,7 @@ G_M36344_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; gcrRegs -[eax]
        xor      esi, esi
        cmp      dword ptr [ebx+0x04], 0
-       jle      G_M36344_IG27
+       jle      G_M36344_IG28
                       ;; size=33 bbWeight=1 PerfScore 9.50
 G_M36344_IG03:        ; bbWeight=4, gcVars=0000200000000000 {V00}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref
        mov      ecx, esi
@@ -180,7 +180,7 @@ G_M36344_IG03:        ; bbWeight=4, gcVars=0000200000000000 {V00}, gcrefRegs=000
        mov      ecx, gword ptr [ebp-0x10]
        ; gcrRegs +[ecx]
        cmp      esi, dword ptr [ecx+0x04]
-       jae      G_M36344_IG28
+       jae      G_M36344_IG29
        mov      ecx, gword ptr [ebp-0x10]
        mov      dword ptr [ebp-0x14], esi
        lea      edx, [esi+2*esi]
@@ -247,7 +247,7 @@ G_M36344_IG07:        ; bbWeight=16, gcrefRegs=00000080 {edi}, byrefRegs=0000000
        shr      eax, 16
        movzx    eax, al
        cmp      ecx, eax
-       jne      G_M36344_IG29
+       jne      G_M36344_IG30
        mov      ecx, dword ptr [ebp-0x50]
        mov      edx, dword ptr [ebp-0x4C]
        mov      edi, dword ptr [ebp-0x48]
@@ -277,7 +277,7 @@ G_M36344_IG07:        ; bbWeight=16, gcrefRegs=00000080 {edi}, byrefRegs=0000000
        movzx    ecx, byte  ptr [ebp-0x40]
        sub      ecx, ebx
        test     ecx, ecx
-       jle      G_M36344_IG16
+       jle      G_M36344_IG19
                      ;; size=158 bbWeight=16 PerfScore 688.00
 G_M36344_IG08:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ebx, gword ptr [ebp-0x78]
@@ -286,7 +286,7 @@ G_M36344_IG08:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        mov      edx, gword ptr [D1FFAB1EH]      ; static handle
        ; gcrRegs +[edx]
        cmp      ecx, dword ptr [edx+0x04]
-       jae      G_M36344_IG28
+       jae      G_M36344_IG29
        lea      edx, bword ptr [edx+8*ecx+0x08]
        ; gcrRegs -[edx]
        ; byrRegs +[edx]
@@ -295,7 +295,7 @@ G_M36344_IG08:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        mov      edx, dword ptr [edx+0x04]
        ; byrRegs -[edx]
        test     ebx, ebx
-       jne      SHORT G_M36344_IG10
+       jne      SHORT G_M36344_IG12
        test     ecx, ecx
        jne      SHORT G_M36344_IG09
        xor      ecx, ecx
@@ -314,52 +314,75 @@ G_M36344_IG08:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; byrRegs +[esi]
        movsd    
        movsd    
-       jmp      SHORT G_M36344_IG15
-                       ;; size=84 bbWeight=8 PerfScore 250.00
-G_M36344_IG09:        ; bbWeight=3.67, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       jmp      G_M36344_IG18
+                       ;; size=87 bbWeight=8 PerfScore 250.00
+G_M36344_IG09:        ; bbWeight=8.00, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[ecx]
        ; byrRegs -[esi edi]
        xor      edi, edi
        ; byrRegs +[edi]
        xor      ebx, ebx
+                     ;; size=4 bbWeight=8.00 PerfScore 4.00
+G_M36344_IG10:        ; bbWeight=8.00, gcrefRegs=00000002 {ecx}, byrefRegs=00000080 {edi}, byref, isz
+       test     ecx, ecx
+       jne      SHORT G_M36344_IG16
+                       ;; size=4 bbWeight=8.00 PerfScore 10.00
+G_M36344_IG11:        ; bbWeight=3.67, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
+       ; gcrRegs -[ecx]
+       xor      ecx, ecx
+       ; byrRegs +[ecx]
+       mov      bword ptr [ebp-0xD0], ecx
+       ; GC ptr vars +{V87}
+       xor      ecx, ecx
+       ; byrRegs -[ecx]
        mov      dword ptr [ebp-0xB0], ebx
-       jmp      SHORT G_M36344_IG11
-                       ;; size=12 bbWeight=3.67 PerfScore 12.83
-G_M36344_IG10:        ; bbWeight=4.33, gcrefRegs=0000000A {ecx ebx}, byrefRegs=00000000 {}, byref
-       ; gcrRegs +[ebx]
-       ; byrRegs -[edi]
+       mov      ebx, bword ptr [ebp-0xD0]
+       ; byrRegs +[ebx]
+       jmp      SHORT G_M36344_IG17
+                       ;; size=24 bbWeight=3.67 PerfScore 20.17
+G_M36344_IG12:        ; bbWeight=4.33, gcrefRegs=0000000A {ecx ebx}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[ecx ebx]
+       ; byrRegs -[ebx edi]
+       ; GC ptr vars -{V87}
        lea      edi, bword ptr [ebx+0x08]
        ; byrRegs +[edi]
        mov      ebx, dword ptr [ebx+0x04]
        ; gcrRegs -[ebx]
        mov      dword ptr [ebp-0xB0], ebx
-                        ;; size=12 bbWeight=4.33 PerfScore 15.17
-G_M36344_IG11:        ; bbWeight=8.00, gcrefRegs=00000002 {ecx}, byrefRegs=00000080 {edi}, byref, isz
-       test     ecx, ecx
-       jne      SHORT G_M36344_IG13
-                       ;; size=4 bbWeight=8.00 PerfScore 10.00
-G_M36344_IG12:        ; bbWeight=3.67, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
+       jmp      SHORT G_M36344_IG10
+                       ;; size=14 bbWeight=4.33 PerfScore 23.83
+G_M36344_IG13:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
-       xor      ecx, ecx
-       ; byrRegs +[ecx]
-       xor      ebx, ebx
-       mov      esi, ecx
-       ; byrRegs +[esi]
-       mov      ecx, ebx
-       ; byrRegs -[ecx]
-       mov      ebx, esi
-       ; byrRegs +[ebx]
-       jmp      SHORT G_M36344_IG14
-                       ;; size=12 bbWeight=3.67 PerfScore 11.92
-G_M36344_IG13:        ; bbWeight=4.33, gcrefRegs=00000002 {ecx}, byrefRegs=00000080 {edi}, byref
+       ; byrRegs -[edi]
+       push     dword ptr [ebp-0x74]
+       push     gword ptr [ebp-0x78]
+       ; gcr arg push 1
+       lea      ecx, [ebp-0x3C]
+       call     [<unknown method>]
+       ; gcr arg pop 1
+                       ;; size=15 bbWeight=8 PerfScore 44.00
+G_M36344_IG14:        ; bbWeight=16, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       test     eax, eax
+       jne      G_M36344_IG30
+       mov      esi, dword ptr [ebp-0x34]
+       inc      esi
+       cmp      esi, 28
+       mov      eax, dword ptr [ebp-0xB8]
+       jle      G_M36344_IG04
+                       ;; size=27 bbWeight=16 PerfScore 76.00
+G_M36344_IG15:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       jmp      G_M36344_IG27
+                       ;; size=5 bbWeight=4 PerfScore 8.00
+G_M36344_IG16:        ; bbWeight=4.33, gcrefRegs=00000002 {ecx}, byrefRegs=00000080 {edi}, byref
        ; gcrRegs +[ecx]
-       ; byrRegs -[ebx esi]
+       ; byrRegs +[edi]
+       mov      dword ptr [ebp-0xB0], ebx
        lea      ebx, bword ptr [ecx+0x08]
        ; byrRegs +[ebx]
        mov      ecx, dword ptr [ecx+0x04]
        ; gcrRegs -[ecx]
-                      ;; size=6 bbWeight=4.33 PerfScore 10.83
-G_M36344_IG14:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000088 {ebx edi}, byref
+                       ;; size=12 bbWeight=4.33 PerfScore 15.17
+G_M36344_IG17:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000088 {ebx edi}, byref
        push     dword ptr [ebp-0xB0]
        push     edi
        ; byr arg push 1
@@ -373,18 +396,18 @@ G_M36344_IG14:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000088 {e
        ; byrRegs -[ebx edi]
        ; gcr arg pop 2
                        ;; size=24 bbWeight=8 PerfScore 70.00
-G_M36344_IG15:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M36344_IG18:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        push     dword ptr [ebp-0x88]
        push     gword ptr [ebp-0x8C]
        ; gcr arg push 1
        lea      ecx, [ebp-0x3C]
        call     [<unknown method>]
        ; gcr arg pop 1
-       jmp      G_M36344_IG25
-                       ;; size=26 bbWeight=8 PerfScore 60.00
-G_M36344_IG16:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M36344_IG14
+                       ;; size=23 bbWeight=8 PerfScore 60.00
+G_M36344_IG19:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        test     ecx, ecx
-       jge      G_M36344_IG24
+       jge      SHORT G_M36344_IG13
        mov      ebx, gword ptr [ebp-0x3C]
        ; gcrRegs +[ebx]
        mov      eax, dword ptr [ebp-0x38]
@@ -393,7 +416,7 @@ G_M36344_IG16:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        mov      edi, ecx
        neg      edi
        cmp      edi, dword ptr [edx+0x04]
-       jae      G_M36344_IG28
+       jae      G_M36344_IG29
        neg      ecx
        lea      edx, bword ptr [edx+8*ecx+0x08]
        ; gcrRegs -[edx]
@@ -403,9 +426,9 @@ G_M36344_IG16:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
...
  
+20 (+4.30%) : 44648.dasm - Microsoft.Extensions.Caching.Memory.MemoryCache:Sum():System.ValueTuple`2[long,long]:this (FullOpts)
@@ -8,9 +8,9 @@
 ; 4 inlinees with PGO data; 11 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T14] (  5,  5   )     ref  ->  esi         this class-hnd single-def <Microsoft.Extensions.Caching.Memory.MemoryCache>
-;  V01 RetBuf       [V01,T15] (  4,  4   )   byref  ->  [ebp-0x5C]  single-def
-;  V02 loc0         [V02,T32] (  4,  1.50)     ref  ->  [ebp-0x60]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V00 this         [V00,T15] (  5,  5   )     ref  ->  esi         this class-hnd single-def <Microsoft.Extensions.Caching.Memory.MemoryCache>
+;  V01 RetBuf       [V01,T16] (  4,  4   )   byref  ->  [ebp-0x60]  single-def
+;  V02 loc0         [V02,T33] (  4,  1.50)     ref  ->  [ebp-0x64]  class-hnd EH-live spill-single-def <<unknown class>>
 ;  V03 loc1         [V03    ] (  5,  4   )   ubyte  ->  [ebp-0x24]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;* V04 loc2         [V04    ] (  0,  0   )    long  ->  zero-ref   
 ;* V05 loc3         [V05    ] (  0,  0   )    long  ->  zero-ref   
@@ -19,57 +19,58 @@
 ;* V08 loc6         [V08    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
 ;* V09 loc7         [V09    ] (  0,  0   )  struct (16) zero-ref    <System.ValueTuple`2[long,long]>
 ;* V10 loc8         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[long,long]>
-;  V11 tmp1         [V11,T28] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
-;  V12 tmp2         [V12,T27] (  2,  4   )     ref  ->  esi         class-hnd single-def "Inlining Arg" <<unknown class>>
+;  V11 tmp1         [V11,T29] (  2,  4   )   ubyte  ->  ecx         "Inlining Arg"
+;  V12 tmp2         [V12,T28] (  2,  4   )     ref  ->  esi         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V13 tmp3         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.WeakReference`1[Microsoft.Extensions.Caching.Memory.MemoryCache+Stats]]>
 ;* V14 tmp4         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V15 tmp5         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
-;  V16 tmp6         [V16,T12] (  5,  8   )     ref  ->  [ebp-0x64]  class-hnd "Inline return value spill temp" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
-;  V17 tmp7         [V17,T06] (  5, 10.66)     int  ->  eax         "Inline stloc first use temp"
+;  V16 tmp6         [V16,T13] (  5,  8   )     ref  ->  [ebp-0x68]  class-hnd "Inline return value spill temp" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
+;  V17 tmp7         [V17,T07] (  5, 10.66)     int  ->  ebx         "Inline stloc first use temp"
 ;* V18 tmp8         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
-;  V19 tmp9         [V19,T26] (  3,  4   )     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
+;  V19 tmp9         [V19,T27] (  3,  4   )     ref  ->  ebx         class-hnd "Inline stloc first use temp" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
 ;* V20 tmp10        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
 ;* V21 tmp11        [V21    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.Extensions.Caching.Memory.MemoryCache+Stats>
-;  V22 tmp12        [V22,T35] (  3,  0   )     ref  ->  [ebp-0x68]  class-hnd spill-single-def "updating class info" <System.ComAwareWeakReference>
+;  V22 tmp12        [V22,T36] (  3,  0   )     ref  ->  ebx         class-hnd "updating class info" <System.ComAwareWeakReference>
 ;* V23 tmp13        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp14        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V25 tmp15        [V25,T36] (  2,  0   )     ref  ->  eax         class-hnd "dup spill" <System.Object>
-;  V26 tmp16        [V26,T34] (  4,  0   )     ref  ->  eax        
-;  V27 tmp17        [V27,T04] (  3, 12   )   byref  ->  eax         "Inlining Arg"
-;  V28 tmp18        [V28,T05] (  3, 12   )   byref  ->  edx         "Inlining Arg"
-;* V29 tmp19        [V29,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V25 tmp15        [V25,T37] (  2,  0   )     ref  ->  eax         class-hnd "dup spill" <System.Object>
+;  V26 tmp16        [V26,T35] (  4,  0   )     ref  ->  eax        
+;  V27 tmp17        [V27,T05] (  3, 12   )   byref  ->  ebx         "Inlining Arg"
+;  V28 tmp18        [V28,T06] (  3, 12   )   byref  ->  ecx         "Inlining Arg"
+;* V29 tmp19        [V29,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V30 tmp20        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp21        [V31,T01] (  5, 17.01)     ref  ->  esi         single-def "field V06._list (fldOffset=0x0)" P-INDEP
-;  V32 tmp22        [V32,T03] (  3,  8.66)     ref  ->  [ebp-0x6C]  spill-single-def "field V06._current (fldOffset=0x4)" P-INDEP
+;  V31 tmp21        [V31,T02] (  4, 16.34)     ref  ->  [ebp-0x6C]  spill-single-def "field V06._list (fldOffset=0x0)" P-INDEP
+;  V32 tmp22        [V32,T03] (  3,  8.66)     ref  ->  [ebp-0x70]  spill-single-def "field V06._current (fldOffset=0x4)" P-INDEP
 ;  V33 tmp23        [V33,T00] (  6, 18.32)     int  ->  edi         "field V06._index (fldOffset=0x8)" P-INDEP
-;  V34 tmp24        [V34,T07] (  3,  9.67)     int  ->  ebx         single-def "field V06._version (fldOffset=0xc)" P-INDEP
+;  V34 tmp24        [V34,T12] (  2,  9   )     int  ->  [ebp-0x28]  spill-single-def "field V06._version (fldOffset=0xc)" P-INDEP
 ;* V35 tmp25        [V35    ] (  0,  0   )    long  ->  zero-ref    single-def "field V09.Item1 (fldOffset=0x0)" P-INDEP
 ;* V36 tmp26        [V36    ] (  0,  0   )    long  ->  zero-ref    single-def "field V09.Item2 (fldOffset=0x8)" P-INDEP
-;  V37 tmp27        [V37,T20] (  3,  6   )    long  ->  [ebp-0x2C]  do-not-enreg[F] single-def "field V10.Item1 (fldOffset=0x0)" P-INDEP
-;  V38 tmp28        [V38,T21] (  3,  6   )    long  ->  [ebp-0x34]  do-not-enreg[F] single-def "field V10.Item2 (fldOffset=0x8)" P-INDEP
-;  V39 tmp29        [V39,T29] (  3,  3   )     ref  ->  [ebp-0x70]  spill-single-def "field V13._list (fldOffset=0x0)" P-INDEP
+;  V37 tmp27        [V37,T21] (  3,  6   )    long  ->  [ebp-0x30]  do-not-enreg[F] single-def "field V10.Item1 (fldOffset=0x0)" P-INDEP
+;  V38 tmp28        [V38,T22] (  3,  6   )    long  ->  [ebp-0x38]  do-not-enreg[F] single-def "field V10.Item2 (fldOffset=0x8)" P-INDEP
+;  V39 tmp29        [V39,T30] (  3,  3   )     ref  ->  [ebp-0x74]  spill-single-def "field V13._list (fldOffset=0x0)" P-INDEP
 ;* V40 tmp30        [V40    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V13._current (fldOffset=0x4)" P-INDEP
-;* V41 tmp31        [V41,T33] (  0,  0   )     int  ->  zero-ref    single-def "field V13._index (fldOffset=0x8)" P-INDEP
-;  V42 tmp32        [V42,T31] (  2,  2   )     int  ->  [ebp-0x38]  spill-single-def "field V13._version (fldOffset=0xc)" P-INDEP
-;  V43 tmp33        [V43,T02] (  3, 19.97)     ref  ->  eax         "arr expr"
+;* V41 tmp31        [V41,T34] (  0,  0   )     int  ->  zero-ref    single-def "field V13._index (fldOffset=0x8)" P-INDEP
+;  V42 tmp32        [V42,T32] (  2,  2   )     int  ->  [ebp-0x3C]  spill-single-def "field V13._version (fldOffset=0xc)" P-INDEP
+;  V43 tmp33        [V43,T01] (  3, 19.97)     ref  ->  ebx         "arr expr"
 ;  V44 EHSlots      [V44    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V45 cse0         [V45,T30] (  3,  3   )     ref  ->  ecx         "CSE - conservative"
-;  V46 rat0         [V46,T08] (  4,  9   )     int  ->  [ebp-0x3C]  "field V04.lo (fldOffset=0x0)" P-INDEP
-;  V47 rat1         [V47,T09] (  4,  9   )     int  ->  [ebp-0x40]  "field V04.hi (fldOffset=0x4)" P-INDEP
-;  V48 rat2         [V48,T10] (  4,  9   )     int  ->  [ebp-0x44]  "field V05.lo (fldOffset=0x0)" P-INDEP
-;  V49 rat3         [V49,T11] (  4,  9   )     int  ->  [ebp-0x48]  "field V05.hi (fldOffset=0x4)" P-INDEP
-;  V50 rat4         [V50,T16] (  3,  6   )   byref  ->  eax         "ReplaceWithLclVar is creating a new local variable"
-;  V51 rat5         [V51,T17] (  3,  6   )   byref  ->  ecx         "ReplaceWithLclVar is creating a new local variable"
-;  V52 rat6         [V52    ] (  1,  4   )    long  ->  [ebp-0x50]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
-;  V53 rat7         [V53,T22] (  2,  6   )     int  ->  eax         "field V52.lo (fldOffset=0x0)" P-INDEP
-;  V54 rat8         [V54,T23] (  2,  6   )     int  ->  edx         "field V52.hi (fldOffset=0x4)" P-INDEP
-;  V55 rat9         [V55    ] (  1,  4   )    long  ->  [ebp-0x58]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
-;  V56 rat10        [V56,T24] (  2,  6   )     int  ->  eax         "field V55.lo (fldOffset=0x0)" P-INDEP
-;  V57 rat11        [V57,T25] (  2,  6   )     int  ->  edx         "field V55.hi (fldOffset=0x4)" P-INDEP
-;  V58 rat12        [V58,T18] (  3,  6   )   byref  ->  eax         "ReplaceWithLclVar is creating a new local variable"
-;  V59 rat13        [V59,T19] (  3,  6   )   byref  ->  edi         "ReplaceWithLclVar is creating a new local variable"
+;  V45 cse0         [V45,T04] (  2,  8.01)     int  ->  ebx         "CSE - moderate"
+;  V46 cse1         [V46,T31] (  3,  3   )     ref  ->  ecx         "CSE - conservative"
+;  V47 rat0         [V47,T08] (  4,  9   )     int  ->  [ebp-0x40]  "field V04.lo (fldOffset=0x0)" P-INDEP
+;  V48 rat1         [V48,T09] (  4,  9   )     int  ->  [ebp-0x44]  "field V04.hi (fldOffset=0x4)" P-INDEP
+;  V49 rat2         [V49,T10] (  4,  9   )     int  ->  [ebp-0x48]  "field V05.lo (fldOffset=0x0)" P-INDEP
+;  V50 rat3         [V50,T11] (  4,  9   )     int  ->  [ebp-0x4C]  "field V05.hi (fldOffset=0x4)" P-INDEP
+;  V51 rat4         [V51,T17] (  3,  6   )   byref  ->  eax         "ReplaceWithLclVar is creating a new local variable"
+;  V52 rat5         [V52,T18] (  3,  6   )   byref  ->  ecx         "ReplaceWithLclVar is creating a new local variable"
+;  V53 rat6         [V53    ] (  1,  4   )    long  ->  [ebp-0x54]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
+;  V54 rat7         [V54,T23] (  2,  6   )     int  ->  eax         "field V53.lo (fldOffset=0x0)" P-INDEP
+;  V55 rat8         [V55,T24] (  2,  6   )     int  ->  edx         "field V53.hi (fldOffset=0x4)" P-INDEP
+;  V56 rat9         [V56    ] (  1,  4   )    long  ->  [ebp-0x5C]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
+;  V57 rat10        [V57,T25] (  2,  6   )     int  ->  eax         "field V56.lo (fldOffset=0x0)" P-INDEP
+;  V58 rat11        [V58,T26] (  2,  6   )     int  ->  edx         "field V56.hi (fldOffset=0x4)" P-INDEP
+;  V59 rat12        [V59,T19] (  3,  6   )   byref  ->  eax         "ReplaceWithLclVar is creating a new local variable"
+;  V60 rat13        [V60,T20] (  3,  6   )   byref  ->  edi         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 100
+; Lcl frame size = 104
 
 G_M42359_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -77,23 +78,23 @@ G_M42359_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 100
+       sub      esp, 104
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  xmmword ptr [ebp-0x24], xmm4
        xor      eax, eax
        mov      dword ptr [ebp-0x14], eax
-       mov      bword ptr [ebp-0x5C], edx
+       mov      bword ptr [ebp-0x60], edx
        ; GC ptr vars +{V01}
        mov      esi, ecx
        ; gcrRegs +[esi]
                        ;; size=28 bbWeight=1 PerfScore 9.33
-G_M42359_IG02:        ; bbWeight=1, gcVars=0000000000008000 {V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M42359_IG02:        ; bbWeight=1, gcVars=0000000000010000 {V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
        mov      ecx, gword ptr [esi+0x0C]
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x60], ecx
+       mov      gword ptr [ebp-0x64], ecx
        ; GC ptr vars +{V02}
                        ;; size=6 bbWeight=1 PerfScore 3.00
-G_M42359_IG03:        ; bbWeight=1, gcVars=0000000100008000 {V01 V02}, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M42359_IG03:        ; bbWeight=1, gcVars=0000000200010000 {V01 V02}, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      byte  ptr [ebp-0x24], 0
        jne      G_M42359_IG13
        lea      edx, [ebp-0x24]
@@ -119,224 +120,223 @@ G_M42359_IG05:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      ebx, dword ptr [eax]
        mov      eax, dword ptr [eax+0x04]
        ; byrRegs -[eax]
-       mov      dword ptr [ebp-0x3C], ebx
-       mov      dword ptr [ebp-0x40], eax
+       mov      dword ptr [ebp-0x40], ebx
+       mov      dword ptr [ebp-0x44], eax
        add      ecx, 12
        ; gcrRegs -[ecx]
        ; byrRegs +[ecx]
        mov      edx, dword ptr [ecx]
        mov      ecx, dword ptr [ecx+0x04]
        ; byrRegs -[ecx]
-       mov      dword ptr [ebp-0x44], edx
-       mov      dword ptr [ebp-0x48], ecx
+       mov      dword ptr [ebp-0x48], edx
+       mov      dword ptr [ebp-0x4C], ecx
        mov      esi, gword ptr [esi+0x0C]
-       mov      gword ptr [ebp-0x70], esi
+       mov      gword ptr [ebp-0x74], esi
        ; GC ptr vars +{V39}
        mov      esi, dword ptr [esi+0x0C]
        ; gcrRegs -[esi]
-       mov      dword ptr [ebp-0x38], esi
-       mov      esi, gword ptr [ebp-0x70]
+       mov      dword ptr [ebp-0x3C], esi
+       mov      esi, gword ptr [ebp-0x74]
        ; gcrRegs +[esi]
+       mov      gword ptr [ebp-0x6C], esi
+       ; GC ptr vars +{V31}
        xor      edi, edi
-       mov      ebx, dword ptr [ebp-0x38]
-                       ;; size=51 bbWeight=1 PerfScore 23.00
-G_M42359_IG06:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       mov      ebx, dword ptr [ebp-0x3C]
+       mov      dword ptr [ebp-0x28], ebx
+                       ;; size=57 bbWeight=1 PerfScore 25.00
+G_M42359_IG06:        ; bbWeight=8, gcVars=0000000200010004 {V01 V02 V31}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars -{V39}
        cmp      ebx, dword ptr [esi+0x0C]
-       jne      G_M42359_IG16
+       jne      G_M42359_IG18
                         ;; size=9 bbWeight=8 PerfScore 32.00
 G_M42359_IG07:        ; bbWeight=4.01, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       cmp      edi, dword ptr [esi+0x08]
+       mov      ebx, dword ptr [esi+0x08]
+       cmp      edi, ebx
+       jae      G_M42359_IG16
+                       ;; size=11 bbWeight=4.01 PerfScore 13.02
+G_M42359_IG08:        ; bbWeight=3.33, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       mov      ebx, gword ptr [esi+0x04]
+       ; gcrRegs +[ebx]
+       cmp      edi, dword ptr [ebx+0x04]
        jae      G_M42359_IG17
-                       ;; size=9 bbWeight=4.01 PerfScore 16.02
-G_M42359_IG08:        ; bbWeight=3.33, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, gword ptr [esi+0x04]
-       ; gcrRegs +[eax]
-       cmp      edi, dword ptr [eax+0x04]
-       jae      G_M42359_IG18
-       mov      eax, gword ptr [eax+4*edi+0x08]
-       mov      gword ptr [ebp-0x6C], eax
+       mov      ebx, gword ptr [ebx+4*edi+0x08]
+       mov      gword ptr [ebp-0x70], ebx
        ; GC ptr vars +{V32}
        inc      edi
-       mov      eax, dword ptr [eax+0x04]
-       ; gcrRegs -[eax]
-       and      eax, -2
-       je       SHORT G_M42359_IG12
-                       ;; size=28 bbWeight=3.33 PerfScore 41.61
-G_M42359_IG09:        ; bbWeight=2, gcVars=0000000100008008 {V01 V02 V32}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
-       test     al, 2
+       mov      ebx, dword ptr [ebx+0x04]
+       ; gcrRegs -[ebx]
+       and      ebx, -2
+       je       G_M42359_IG12
+                       ;; size=32 bbWeight=3.33 PerfScore 41.61
+G_M42359_IG09:        ; bbWeight=2, gcVars=000000020001000C {V01 V02 V31 V32}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+       test     bl, 2
        jne      G_M42359_IG14
-       mov      ecx, eax
+       mov      ecx, ebx
        call     <unknown method>
        ; gcrRegs +[eax]
-                      ;; size=15 bbWeight=2 PerfScore 5.00
-G_M42359_IG10:        ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref
-       mov      ecx, eax
-       ; gcrRegs +[ecx]
-                       ;; size=2 bbWeight=2 PerfScore 0.50
-G_M42359_IG11:        ; bbWeight=2, gcVars=0000000100008000 {V01 V02}, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      ebx, eax
+       ; gcrRegs +[ebx]
+                       ;; size=18 bbWeight=2 PerfScore 5.50
+G_M42359_IG10:        ; bbWeight=2, gcVars=0000000200010004 {V01 V02 V31}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
        ; GC ptr vars -{V32}
-       test     ecx, ecx
-       mov      gword ptr [ebp-0x64], ecx
+       test     ebx, ebx
+       mov      gword ptr [ebp-0x68], ebx
        ; GC ptr vars +{V16}
-       je       SHORT G_M42359_IG06
-       mov      eax, gword ptr [ebp-0x64]
-       ; gcrRegs +[eax]
-       add      eax, 4
-       ; gcrRegs -[eax]
-       ; byrRegs +[eax]
-       test     eax, eax
-       je       G_M42359_IG20
+       je       SHORT G_M42359_IG11
+       mov      ebx, gword ptr [ebp-0x68]
...
  
+29 (+4.90%) : 250530.dasm - System.Security.Cryptography.XmlKeyHelper:WriteCryptoBinary(System.String,System.ReadOnlySpan`1[ubyte],System.Text.StringBuilder) (FullOpts)
@@ -106,7 +106,7 @@ G_M40104_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
        cmp      dword ptr [edx+0x04], ecx
-       jbe      G_M40104_IG21
+       jbe      G_M40104_IG34
                         ;; size=18 bbWeight=1 PerfScore 9.00
 G_M40104_IG03:        ; bbWeight=0.47, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
        mov      word  ptr [edx+2*ecx+0x08], 60
@@ -137,7 +137,7 @@ G_M40104_IG06:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=000000C0 {esi
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
        cmp      dword ptr [edx+0x04], ecx
-       jbe      G_M40104_IG25
+       jbe      G_M40104_IG35
                         ;; size=15 bbWeight=1 PerfScore 8.00
 G_M40104_IG07:        ; bbWeight=0.47, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
        mov      word  ptr [edx+2*ecx+0x08], 62
@@ -163,11 +163,11 @@ G_M40104_IG09:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        mov      bword ptr [ebp-0x2C], ecx
        ; GC ptr vars +{V48}
        test     ebx, ebx
-       jle      G_M40104_IG26
+       jle      G_M40104_IG32
                      ;; size=32 bbWeight=1 PerfScore 8.50
 G_M40104_IG10:        ; bbWeight=4, gcVars=00000080 {V48}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
        cmp      edx, 192
-       jl       G_M40104_IG20
+       jl       G_M40104_IG33
                      ;; size=12 bbWeight=4 PerfScore 5.00
 G_M40104_IG11:        ; bbWeight=1.47, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        mov      gword ptr [ebp-0x24], edi
@@ -231,49 +231,23 @@ G_M40104_IG17:        ; bbWeight=4.00, gcrefRegs=00000040 {esi}, byrefRegs=00000
                        ;; size=17 bbWeight=4.00 PerfScore 13.00
 G_M40104_IG18:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        test     eax, eax
-       jge      SHORT G_M40104_IG23
+       jge      SHORT G_M40104_IG20
                      ;; size=4 bbWeight=4 PerfScore 5.00
-G_M40104_IG19:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M40104_IG19:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-       jmp      SHORT G_M40104_IG22
-                       ;; size=18 bbWeight=2 PerfScore 11.00
-G_M40104_IG20:        ; bbWeight=0.53, gcVars=00000080 {V48}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs +[edi]
-       ; GC ptr vars -{V00}
-       mov      gword ptr [ebp-0x24], edi
-       ; GC ptr vars +{V00}
-       mov      dword ptr [ebp-0x18], edx
-       mov      edi, edx
-       ; gcrRegs -[edi]
-       mov      edx, dword ptr [ebp-0x18]
-       jmp      G_M40104_IG12
-                       ;; size=16 bbWeight=0.53 PerfScore 2.78
-G_M40104_IG21:        ; bbWeight=0.03, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs +[edi]
-       ; GC ptr vars -{V00 V48}
-       mov      ecx, esi
-       ; gcrRegs +[ecx]
-       mov      edx, 60
-       call     [<unknown method>]
-       ; gcrRegs -[ecx]
-       jmp      G_M40104_IG04
-                       ;; size=18 bbWeight=0.03 PerfScore 0.19
-G_M40104_IG22:        ; bbWeight=2, gcVars=00000480 {V00 V48}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[edi]
-       ; GC ptr vars +{V00 V48}
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-                      ;; size=16 bbWeight=2 PerfScore 7.00
-G_M40104_IG23:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+                       ;; size=32 bbWeight=2 PerfScore 14.00
+G_M40104_IG20:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        push     dword ptr [ebp-0x20]
        mov      ecx, esi
        ; gcrRegs +[ecx]
@@ -289,51 +263,41 @@ G_M40104_IG23:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      edi, eax
        test     edx, edx
        mov      eax, edi
-       mov      edi, gword ptr [ebp-0x24]
-       ; gcrRegs +[edi]
-       jg       G_M40104_IG10
-                       ;; size=39 bbWeight=4 PerfScore 46.00
-G_M40104_IG24:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V00 V48}
-       jmp      SHORT G_M40104_IG26
-                       ;; size=2 bbWeight=1 PerfScore 2.00
-G_M40104_IG25:        ; bbWeight=0.03, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
-       mov      ecx, esi
-       ; gcrRegs +[ecx]
-       mov      edx, 62
-       call     [<unknown method>]
-       ; gcrRegs -[ecx]
-       jmp      G_M40104_IG08
-                       ;; size=18 bbWeight=0.03 PerfScore 0.19
-G_M40104_IG26:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       jg       SHORT G_M40104_IG31
+                       ;; size=32 bbWeight=4 PerfScore 42.00
+G_M40104_IG21:        ; bbWeight=1, gcVars=00000400 {V00}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars -{V48}
        mov      ecx, dword ptr [esi+0x0C]
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
        cmp      dword ptr [edx+0x04], ecx
-       jbe      SHORT G_M40104_IG36
-                       ;; size=11 bbWeight=1 PerfScore 8.00
-G_M40104_IG27:        ; bbWeight=0.47, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
+       jbe      G_M40104_IG36
+                       ;; size=15 bbWeight=1 PerfScore 8.00
+G_M40104_IG22:        ; bbWeight=0.47, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
        mov      word  ptr [edx+2*ecx+0x08], 60
        inc      dword ptr [esi+0x0C]
                        ;; size=10 bbWeight=0.47 PerfScore 1.86
-G_M40104_IG28:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40104_IG23:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edx]
        mov      ecx, dword ptr [esi+0x0C]
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
        cmp      dword ptr [edx+0x04], ecx
-       jbe      SHORT G_M40104_IG37
-                       ;; size=11 bbWeight=1 PerfScore 8.00
-G_M40104_IG29:        ; bbWeight=0.47, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
+       jbe      G_M40104_IG37
+                       ;; size=15 bbWeight=1 PerfScore 8.00
+G_M40104_IG24:        ; bbWeight=0.47, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
        mov      word  ptr [edx+2*ecx+0x08], 47
        inc      dword ptr [esi+0x0C]
                        ;; size=10 bbWeight=0.47 PerfScore 1.86
-G_M40104_IG30:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M40104_IG25:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edx]
+       mov      edi, gword ptr [ebp-0x24]
+       ; gcrRegs +[edi]
        test     edi, edi
-       je       SHORT G_M40104_IG32
-                       ;; size=4 bbWeight=1 PerfScore 1.25
-G_M40104_IG31:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       je       SHORT G_M40104_IG27
+                       ;; size=7 bbWeight=1 PerfScore 2.25
+G_M40104_IG26:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars -{V00}
        push     dword ptr [edi+0x04]
        lea      edx, bword ptr [edi+0x08]
        ; byrRegs +[edx]
@@ -343,24 +307,24 @@ G_M40104_IG31:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        ; gcrRegs -[ecx edi]
        ; byrRegs -[edx]
                        ;; size=14 bbWeight=0.50 PerfScore 2.87
-G_M40104_IG32:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M40104_IG27:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      ecx, dword ptr [esi+0x0C]
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
        cmp      dword ptr [edx+0x04], ecx
-       jbe      SHORT G_M40104_IG38
-                       ;; size=11 bbWeight=1 PerfScore 8.00
-G_M40104_IG33:        ; bbWeight=0.47, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
+       jbe      G_M40104_IG38
+                       ;; size=15 bbWeight=1 PerfScore 8.00
+G_M40104_IG28:        ; bbWeight=0.47, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
        mov      word  ptr [edx+2*ecx+0x08], 62
        inc      dword ptr [esi+0x0C]
                        ;; size=10 bbWeight=0.47 PerfScore 1.86
-G_M40104_IG34:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M40104_IG29:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edx esi]
        cmp      dword ptr [ebp-0x34], 0xD1FFAB1E
-       je       SHORT G_M40104_IG35
+       je       SHORT G_M40104_IG30
        call     CORINFO_HELP_FAIL_FAST
                        ;; size=14 bbWeight=1 PerfScore 4.00
-G_M40104_IG35:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M40104_IG30:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -368,32 +332,74 @@ G_M40104_IG35:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        pop      ebp
        ret      8
                        ;; size=10 bbWeight=1 PerfScore 4.50
-G_M40104_IG36:        ; bbWeight=0.03, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[esi edi]
+G_M40104_IG31:        ; bbWeight=2, gcVars=00000480 {V00 V48}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs +[esi]
+       ; GC ptr vars +{V00 V48}
+       mov      edi, gword ptr [ebp-0x24]
+       ; gcrRegs +[edi]
+       jmp      G_M40104_IG10
+                       ;; size=8 bbWeight=2 PerfScore 6.00
+G_M40104_IG32:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars -{V00 V48}
+       mov      gword ptr [ebp-0x24], edi
+       ; GC ptr vars +{V00}
+       jmp      G_M40104_IG21
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M40104_IG33:        ; bbWeight=0.53, gcVars=00000080 {V48}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars -{V00} +{V48}
+       mov      gword ptr [ebp-0x24], edi
+       ; GC ptr vars +{V00}
+       mov      dword ptr [ebp-0x18], edx
+       mov      edi, edx
+       ; gcrRegs -[edi]
+       mov      edx, dword ptr [ebp-0x18]
+       jmp      G_M40104_IG12
+                       ;; size=16 bbWeight=0.53 PerfScore 2.78
+G_M40104_IG34:        ; bbWeight=0.03, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs +[edi]
+       ; GC ptr vars -{V00 V48}
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      edx, 60
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M40104_IG28
-                       ;; size=15 bbWeight=0.03 PerfScore 0.19
-G_M40104_IG37:        ; bbWeight=0.03, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       jmp      G_M40104_IG04
+                       ;; size=18 bbWeight=0.03 PerfScore 0.19
+G_M40104_IG35:        ; bbWeight=0.03, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       mov      edx, 62
+       call     [<unknown method>]
+       ; gcrRegs -[ecx]
+       jmp      G_M40104_IG08
+                       ;; size=18 bbWeight=0.03 PerfScore 0.19
+G_M40104_IG36:        ; bbWeight=0.03, gcVars=00000400 {V00}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[edi]
+       ; GC ptr vars +{V00}
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       mov      edx, 60
+       call     [<unknown method>]
+       ; gcrRegs -[ecx]
+       jmp      G_M40104_IG23
+                       ;; size=18 bbWeight=0.03 PerfScore 0.19
+G_M40104_IG37:        ; bbWeight=0.03, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      ecx, esi
...
  
  
realworld.run.windows.x86.checked.mch
-26 (-3.81%) : 15706.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:BuildLength(System.ReadOnlySpan`1[int]):this (FullOpts)
@@ -8,58 +8,58 @@
 ; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T23] (  6,  6   )     ref  ->  [ebp-0x50]  this class-hnd single-def <SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree>
-;  V01 arg1         [V01,T42] (  2,  2   )  struct ( 8) [ebp+0x08]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[int]>
-;  V02 loc0         [V02,T21] (  3, 11   )     int  ->  [ebp-0x24]  spill-single-def
-;  V03 loc1         [V03,T08] (  5, 45   )   byref  ->  [ebp-0x54]  spill-single-def
-;  V04 loc2         [V04,T06] (  8, 83   )   byref  ->  [ebp-0x58]  spill-single-def
-;  V05 loc3         [V05,T17] (  8, 18.50)     int  ->  [ebp-0x28]  spill-single-def
-;  V06 loc4         [V06,T34] (  4,  4   )     int  ->  [ebp-0x2C]  spill-single-def
-;  V07 loc5         [V07,T31] (  2,  5   )     int  ->  [ebp-0x30]  spill-single-def
-;  V08 loc6         [V08,T04] (  9,110   )     int  ->  esi        
+;  V00 this         [V00,T21] (  6,  6   )     ref  ->  [ebp-0x4C]  this class-hnd single-def <SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree>
+;  V01 arg1         [V01,T41] (  2,  2   )  struct ( 8) [ebp+0x08]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[int]>
+;  V02 loc0         [V02,T18] (  3, 11   )     int  ->  [ebp-0x24]  spill-single-def
+;  V03 loc1         [V03,T08] (  5, 45   )   byref  ->  [ebp-0x50]  spill-single-def
+;  V04 loc2         [V04,T06] (  8, 76   )   byref  ->  [ebp-0x54]  spill-single-def
+;  V05 loc3         [V05,T20] (  8,  8   )     int  ->  [ebp-0x28]  spill-single-def
+;  V06 loc4         [V06,T31] (  4,  4   )     int  ->  [ebp-0x2C]  spill-single-def
+;  V07 loc5         [V07,T43] (  2,  1.50)     int  ->  [ebp-0x30]  spill-single-def
+;  V08 loc6         [V08,T04] (  9,103   )     int  ->  esi        
 ;  V09 loc7         [V09,T02] ( 10,188.50)     int  ->  edx        
-;  V10 loc8         [V10,T11] (  3, 36   )     int  ->  registers  
-;  V11 loc9         [V11,T38] (  5,  2   )     ref  ->  [ebp-0x5C]  class-hnd EH-live spill-single-def <<unknown class>>
-;  V12 loc10        [V12,T20] (  6, 11   )   byref  ->  [ebp-0x60]  spill-single-def
+;  V10 loc8         [V10,T11] (  3, 32.50)     int  ->  registers  
+;  V11 loc9         [V11,T37] (  5,  2   )     ref  ->  [ebp-0x58]  class-hnd EH-live spill-single-def <<unknown class>>
+;  V12 loc10        [V12,T17] (  6, 11   )   byref  ->  [ebp-0x5C]  spill-single-def
 ;  V13 loc11        [V13    ] (  4,  3   )  struct (12) [ebp-0x3C]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Memory`1[int]>
-;  V14 loc12        [V14,T13] ( 12, 30   )     int  ->  edi        
-;  V15 loc13        [V15,T22] (  5, 10   )     int  ->  [ebp-0x40] 
+;  V14 loc12        [V14,T12] ( 12, 30   )     int  ->  edi        
+;  V15 loc13        [V15,T19] (  5, 10   )     int  ->  ecx        
 ;* V16 loc14        [V16    ] (  0,  0   )     int  ->  zero-ref   
 ;* V17 loc15        [V17    ] (  0,  0   )     int  ->  zero-ref   
-;  V18 loc16        [V18,T12] (  7, 32   )     int  ->  ebx        
+;  V18 loc16        [V18,T13] (  7, 25   )     int  ->  ebx        
 ;  V19 loc17        [V19,T09] (  5, 40   )     int  ->  eax        
 ;  V20 loc18        [V20,T10] (  3, 40   )     int  ->  esi        
 ;* V21 tmp0         [V21    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[int]>
-;  V22 tmp1         [V22,T28] (  3,  6   )     ref  ->  edi         single-def "LDVIRTFTN this pointer"
-;  V23 tmp2         [V23,T36] (  2,  4   )     int  ->  eax         "VirtualCall through function pointer"
+;  V22 tmp1         [V22,T26] (  3,  6   )     ref  ->  edi         single-def "LDVIRTFTN this pointer"
+;  V23 tmp2         [V23,T33] (  2,  4   )     int  ->  eax         "VirtualCall through function pointer"
 ;* V24 tmp3         [V24    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[int]>
-;  V25 tmp4         [V25,T16] (  3, 24   )     int  ->  ecx         "Span.get_Item index"
-;  V26 tmp5         [V26,T19] (  3, 12   )   byref  ->  ecx         "dup spill"
-;  V27 tmp6         [V27,T25] (  2,  8   )   byref  ->  [ebp-0x64]  spill-single-def "impSpillLclRefs"
-;  V28 tmp7         [V28,T26] (  2,  8   )   byref  ->  ecx         "impSpillLclRefs"
-;  V29 tmp8         [V29,T18] (  2, 16   )     int  ->  edx         "dup spill"
+;  V25 tmp4         [V25,T14] (  3, 24   )     int  ->  ecx         "Span.get_Item index"
+;  V26 tmp5         [V26,T16] (  3, 12   )   byref  ->  ecx         "dup spill"
+;  V27 tmp6         [V27,T23] (  2,  8   )   byref  ->  [ebp-0x60]  spill-single-def "impSpillLclRefs"
+;  V28 tmp7         [V28,T24] (  2,  8   )   byref  ->  ebx         "impSpillLclRefs"
+;  V29 tmp8         [V29,T15] (  2, 16   )     int  ->  edx         "dup spill"
 ;  V30 tmp9         [V30,T00] (  3,192   )   byref  ->  ecx         "dup spill"
 ;  V31 tmp10        [V31,T03] (  2,128   )     int  ->  edx         "dup spill"
 ;  V32 tmp11        [V32,T01] (  3,192   )   byref  ->  ecx         "dup spill"
-;  V33 tmp12        [V33,T14] (  3, 24   )   byref  ->  eax         single-def "dup spill"
-;  V34 tmp13        [V34,T15] (  3, 24   )   byref  ->  edx         single-def "dup spill"
+;  V33 tmp12        [V33,T34] (  3,  3   )   byref  ->  eax         single-def "dup spill"
+;  V34 tmp13        [V34,T35] (  3,  3   )   byref  ->  edx         single-def "dup spill"
 ;  V35 tmp14        [V35,T05] (  3, 96   )     int  ->  esi         "impSpillLclRefs"
 ;* V36 tmp15        [V36    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[int]>
-;  V37 tmp16        [V37,T27] (  4,  6   )     ref  ->  ecx         class-hnd single-def "Inlining Arg" <int[]>
+;  V37 tmp16        [V37,T25] (  4,  6   )     ref  ->  ecx         class-hnd single-def "Inlining Arg" <int[]>
 ;* V38 tmp17        [V38    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V39 tmp18        [V39    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
 ;* V40 tmp19        [V40    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.Span`1[int]>
-;  V41 tmp20        [V41,T33] (  6,  4   )   byref  ->  registers   "Inline stloc first use temp"
-;  V42 tmp21        [V42,T32] (  7,  4.50)     int  ->  registers   "Inline stloc first use temp"
-;  V43 tmp22        [V43,T30] (  9,  5.50)     ref  ->  [ebp-0x68]  class-hnd spill-single-def "Inline stloc first use temp" <System.Object>
+;  V41 tmp20        [V41,T30] (  6,  4   )   byref  ->  registers   "Inline stloc first use temp"
+;  V42 tmp21        [V42,T29] (  7,  4.50)     int  ->  registers   "Inline stloc first use temp"
+;  V43 tmp22        [V43,T28] (  9,  5.50)     ref  ->  [ebp-0x64]  class-hnd spill-single-def "Inline stloc first use temp" <System.Object>
 ;* V44 tmp23        [V44    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V45 tmp24        [V45    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <<unknown class>>
-;  V46 tmp25        [V46    ] (  3,  1.50)  struct ( 8) [ebp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.Span`1[int]>
-;  V47 tmp26        [V47,T39] (  4,  2   )     int  ->  ecx         single-def "Inline stloc first use temp"
-;  V48 tmp27        [V48,T43] (  3,  1.50)     int  ->  edi         single-def "Inline stloc first use temp"
+;  V46 tmp25        [V46    ] (  3,  1.50)  struct ( 8) [ebp-0x44]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <System.Span`1[int]>
+;  V47 tmp26        [V47,T38] (  4,  2   )     int  ->  ecx         single-def "Inline stloc first use temp"
+;  V48 tmp27        [V48,T42] (  3,  1.50)     int  ->  edi         single-def "Inline stloc first use temp"
 ;* V49 tmp28        [V49    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <int[]>
 ;* V50 tmp29        [V50    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <int[]>
-;  V51 tmp30        [V51,T41] (  2,  2   )   byref  ->  edx         single-def "Inlining Arg"
+;  V51 tmp30        [V51,T40] (  2,  2   )   byref  ->  edx         single-def "Inlining Arg"
 ;* V52 tmp31        [V52    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V53 tmp32        [V53    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V54 tmp33        [V54    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[int]>
@@ -75,7 +75,7 @@
 ;* V64 tmp43        [V64    ] (  0,  0   )     int  ->  zero-ref    "field V24._length (fldOffset=0x4)" P-INDEP
 ;* V65 tmp44        [V65    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V36._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp45        [V66    ] (  0,  0   )     int  ->  zero-ref    single-def "field V36._length (fldOffset=0x4)" P-INDEP
-;  V67 tmp46        [V67,T40] (  3,  2   )   byref  ->  registers   "field V38._reference (fldOffset=0x0)" P-INDEP
+;  V67 tmp46        [V67,T39] (  3,  2   )   byref  ->  registers   "field V38._reference (fldOffset=0x0)" P-INDEP
 ;* V68 tmp47        [V68    ] (  0,  0   )     int  ->  zero-ref    "field V38._length (fldOffset=0x4)" P-INDEP
 ;* V69 tmp48        [V69    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V39._reference (fldOffset=0x0)" P-INDEP
 ;* V70 tmp49        [V70    ] (  0,  0   )     int  ->  zero-ref    "field V39._length (fldOffset=0x4)" P-INDEP
@@ -83,21 +83,21 @@
 ;* V72 tmp51        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x4)" P-INDEP
 ;* V73 tmp52        [V73    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V74 tmp53        [V74    ] (  0,  0   )     int  ->  zero-ref    single-def "field V44._length (fldOffset=0x4)" P-INDEP
-;  V75 tmp54        [V75    ] (  2,  1   )   byref  ->  [ebp-0x48]  do-not-enreg[X] addr-exposed "field V46._reference (fldOffset=0x0)" P-DEP
-;  V76 tmp55        [V76    ] (  2,  1   )     int  ->  [ebp-0x44]  do-not-enreg[X] addr-exposed "field V46._length (fldOffset=0x4)" P-DEP
+;  V75 tmp54        [V75    ] (  2,  1   )   byref  ->  [ebp-0x44]  do-not-enreg[X] addr-exposed "field V46._reference (fldOffset=0x0)" P-DEP
+;  V76 tmp55        [V76    ] (  2,  1   )     int  ->  [ebp-0x40]  do-not-enreg[X] addr-exposed "field V46._length (fldOffset=0x4)" P-DEP
 ;  V77 tmp56        [V77,T44] (  2,  1   )   byref  ->  eax         single-def "field V54._reference (fldOffset=0x0)" P-INDEP
 ;* V78 tmp57        [V78    ] (  0,  0   )     int  ->  zero-ref    "field V54._length (fldOffset=0x4)" P-INDEP
 ;* V79 tmp58        [V79    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V57._reference (fldOffset=0x0)" P-INDEP
 ;* V80 tmp59        [V80    ] (  0,  0   )     int  ->  zero-ref    "field V57._length (fldOffset=0x4)" P-INDEP
-;  V81 tmp60        [V81,T24] (  5,  8   )   byref  ->  [ebp-0x6C]  spill-single-def "V01.[000..004)"
-;  V82 tmp61        [V82,T29] (  3,  6   )     int  ->  [ebp-0x4C]  spill-single-def "V01.[004..008)"
-;  V83 tmp62        [V83,T35] (  2,  4   )     ref  ->  edi         single-def "argument with side effect"
+;  V81 tmp60        [V81,T22] (  5,  8   )   byref  ->  [ebp-0x68]  spill-single-def "V01.[000..004)"
+;  V82 tmp61        [V82,T27] (  3,  6   )     int  ->  [ebp-0x48]  spill-single-def "V01.[004..008)"
+;  V83 tmp62        [V83,T32] (  2,  4   )     ref  ->  edi         single-def "argument with side effect"
 ;  V84 EHSlots      [V84    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V85 cse0         [V85,T37] (  3,  3   )     ref  ->  [ebp-0x70]  spill-single-def "CSE - conservative"
+;  V85 cse0         [V85,T36] (  3,  3   )     ref  ->  [ebp-0x6C]  spill-single-def "CSE - conservative"
 ;  V86 cse1         [V86,T07] (  4, 49   )     int  ->  eax         "CSE - moderate"
-;  TEMP_01                                     int  ->  [ebp-0x74]
+;  TEMP_01                                     int  ->  [ebp-0x70]
 ;
-; Lcl frame size = 104
+; Lcl frame size = 100
 
 G_M27110_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -105,35 +105,34 @@ G_M27110_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 104
+       sub      esp, 100
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [ebp-0x48], ymm4
-       vmovdqu  xmmword ptr [ebp-0x28], xmm4
+       vmovdqu  ymmword ptr [ebp-0x44], ymm4
+       vmovdqu  xmmword ptr [ebp-0x24], xmm4
        xor      eax, eax
-       mov      dword ptr [ebp-0x18], eax
        mov      dword ptr [ebp-0x14], eax
        mov      esi, ecx
        ; gcrRegs +[esi]
-                      ;; size=33 bbWeight=1 PerfScore 11.33
+                     ;; size=30 bbWeight=1 PerfScore 10.33
 G_M27110_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edi, bword ptr [ebp+0x08]
        ; byrRegs +[edi]
-       mov      bword ptr [ebp-0x6C], edi
+       mov      bword ptr [ebp-0x68], edi
        ; GC ptr vars +{V81}
        mov      ebx, dword ptr [ebp+0x0C]
-       mov      dword ptr [ebp-0x4C], ebx
+       mov      dword ptr [ebp-0x48], ebx
        mov      eax, dword ptr [esi+0x30]
        mov      dword ptr [ebp-0x24], eax
-       mov      bword ptr [ebp-0x54], edi
+       mov      bword ptr [ebp-0x50], edi
        ; GC ptr vars +{V03}
        mov      ecx, gword ptr [esi+0x04]
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x70], ecx
+       mov      gword ptr [ebp-0x6C], ecx
        ; GC ptr vars +{V85}
        test     ecx, ecx
        jne      SHORT G_M27110_IG04
                        ;; size=31 bbWeight=1 PerfScore 12.25
-G_M27110_IG03:        ; bbWeight=0.50, gcVars=0000002001000100 {V03 V81 V85}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M27110_IG03:        ; bbWeight=0.50, gcVars=0000001000400100 {V03 V81 V85}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[ecx]
        ; byrRegs -[edi]
        xor      ecx, ecx
@@ -152,13 +151,13 @@ G_M27110_IG04:        ; bbWeight=0.50, gcrefRegs=00000042 {ecx esi}, byrefRegs=0
                        ;; size=8 bbWeight=0.50 PerfScore 1.38
 G_M27110_IG05:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000002 {ecx}, byref
        ; byrRegs -[ebx]
-       mov      bword ptr [ebp-0x58], ecx
+       mov      bword ptr [ebp-0x54], ecx
        ; GC ptr vars +{V04}
-       mov      gword ptr [ebp-0x50], esi
+       mov      gword ptr [ebp-0x4C], esi
        ; GC ptr vars +{V00}
        mov      ebx, dword ptr [esi+0x1C]
        mov      dword ptr [ebp-0x28], ebx
-       mov      esi, dword ptr [ebp-0x4C]
+       mov      esi, dword ptr [ebp-0x48]
        ; gcrRegs -[esi]
        sar      esi, 1
        mov      dword ptr [ebp-0x2C], esi
@@ -166,7 +165,7 @@ G_M27110_IG05:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000002
        sar      esi, 1
        mov      dword ptr [ebp-0x30], esi
        xor      esi, esi
-       mov      edi, gword ptr [ebp-0x70]
+       mov      edi, gword ptr [ebp-0x6C]
        ; gcrRegs +[edi]
        push     ebx
        mov      ecx, edi
@@ -176,7 +175,7 @@ G_M27110_IG05:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000002
        ; GC ptr vars -{V85}
        call     [<unknown method>]
        ; gcrRegs -[ecx edi]
-       mov      edi, gword ptr [ebp-0x50]
+       mov      edi, gword ptr [ebp-0x4C]
        ; gcrRegs +[edi]
        mov      edi, gword ptr [edi+0x08]
        push     0xD1FFAB1E
@@ -192,10 +191,10 @@ G_M27110_IG05:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000002
        mov      edx, dword ptr [ebp-0x2C]
        call     eax
        ; gcrRegs -[ecx edi] +[eax]
-       mov      gword ptr [ebp-0x5C], eax
+       mov      gword ptr [ebp-0x58], eax
        ; GC ptr vars +{V11}
                        ;; size=77 bbWeight=1 PerfScore 26.75
-G_M27110_IG06:        ; bbWeight=1, gcVars=0000004001000140 {V03 V04 V11 V81}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref
+G_M27110_IG06:        ; bbWeight=1, gcVars=0000002000400140 {V03 V04 V11 V81}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref
        lea      edx, [ebp-0x3C]
        mov      ecx, eax
        ; gcrRegs +[ecx]
@@ -206,12 +205,12 @@ G_M27110_IG06:        ; bbWeight=1, gcVars=0000004001000140 {V03 V04 V11 V81}, g
        xor      eax, eax
        mov      ecx, gword ptr [ebp-0x3C]
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x68], ecx
+       mov      gword ptr [ebp-0x64], ecx
        ; GC ptr vars +{V43}
        test     ecx, ecx
        je       G_M27110_IG12
                        ;; size=29 bbWeight=1 PerfScore 7.50
-G_M27110_IG07:        ; bbWeight=0.50, gcVars=0000004041000140 {V03 V04 V11 V43 V81}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M27110_IG07:        ; bbWeight=0.50, gcVars=0000002010400140 {V03 V04 V11 V43 V81}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; byrRegs -[edi]
        mov      edx, dword ptr [ecx]
        test     dword ptr [edx], 0xD1FFAB1E
@@ -232,7 +231,7 @@ G_M27110_IG07:        ; bbWeight=0.50, gcVars=0000004041000140 {V03 V04 V11 V43
        ; gcrRegs -[eax ecx edx]
                        ;; size=42 bbWeight=0.50 PerfScore 6.12
 G_M27110_IG08:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       mov      edi, gword ptr [ebp-0x68]
+       mov      edi, gword ptr [ebp-0x64]
        ; gcrRegs +[edi]
        lea      edx, bword ptr [edi+0x08]
        ; byrRegs +[edx]
@@ -261,38 +260,38 @@ G_M27110_IG09:        ; bbWeight=0.50, gcrefRegs=00000002 {ecx}, byrefRegs=00000
        ; gcrRegs -[eax ecx edx]
                        ;; size=32 bbWeight=0.50 PerfScore 3.12
...
  
-7 (-3.00%) : 19042.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
@@ -10,30 +10,31 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct ( 4) zero-ref    single-def <System.Net.Http.Headers.HeaderDescriptor>
 ;  V01 arg1         [V01,T03] (  8, 13.50)     ref  ->  esi         class-hnd single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
-;  V02 loc0         [V02,T15] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V02 loc0         [V02,T16] (  3,  0.50)     ref  ->  [ebp-0x30]  class-hnd exact EH-live spill-single-def <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
 ;  V03 loc1         [V03    ] (  6,  5   )   ubyte  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V04 loc2         [V04,T12] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
+;  V04 loc2         [V04,T13] (  3,  1.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
 ;* V05 loc3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.String]>
 ;* V06 loc4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V07 loc5         [V07,T10] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
-;  V08 tmp0         [V08,T11] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
+;  V07 loc5         [V07,T11] (  5,  2.50)     ref  ->  edx         class-hnd exact <System.String>
+;  V08 tmp0         [V08,T12] (  2,  2   )     ref  ->  edx         single-def "CASTCLASS eval op1"
 ;* V09 tmp1         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.String>
 ;* V10 tmp2         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.String]>
-;* V11 tmp3         [V11,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V11 tmp3         [V11,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V12 tmp4         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V13 tmp5         [V13,T08] (  2,  4.50)     ref  ->  edi         single-def "field V00._descriptor (fldOffset=0x0)" P-INDEP
 ;  V14 tmp6         [V14,T02] (  4, 12.50)     ref  ->  ebx         single-def "field V05._list (fldOffset=0x0)" P-INDEP
 ;  V15 tmp7         [V15,T04] (  2,  8   )     ref  ->  edx         "field V05._current (fldOffset=0x4)" P-INDEP
 ;  V16 tmp8         [V16,T00] (  6, 20.50)     int  ->  [ebp-0x28]  "field V05._index (fldOffset=0x8)" P-INDEP
-;  V17 tmp9         [V17,T06] (  3,  8.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
-;  V18 tmp10        [V18,T13] (  3,  1.50)     ref  ->  ebx         single-def "field V10._list (fldOffset=0x0)" P-INDEP
+;  V17 tmp9         [V17,T09] (  2,  4.50)     int  ->  [ebp-0x2C]  spill-single-def "field V05._version (fldOffset=0xc)" P-INDEP
+;  V18 tmp10        [V18,T14] (  3,  1.50)     ref  ->  ebx         single-def "field V10._list (fldOffset=0x0)" P-INDEP
 ;* V19 tmp11        [V19    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V10._current (fldOffset=0x4)" P-INDEP
-;* V20 tmp12        [V20,T16] (  0,  0   )     int  ->  zero-ref    "field V10._index (fldOffset=0x8)" P-INDEP
-;  V21 tmp13        [V21,T14] (  2,  1   )     int  ->  eax         "field V10._version (fldOffset=0xc)" P-INDEP
+;* V20 tmp12        [V20,T17] (  0,  0   )     int  ->  zero-ref    "field V10._index (fldOffset=0x8)" P-INDEP
+;  V21 tmp13        [V21,T15] (  2,  1   )     int  ->  eax         "field V10._version (fldOffset=0xc)" P-INDEP
 ;  V22 tmp14        [V22,T01] (  3, 24   )     ref  ->  edx         "arr expr"
 ;  V23 EHSlots      [V23    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V24 cse0         [V24,T05] (  3, 12   )     int  ->  edx         "CSE - aggressive"
-;  V25 cse1         [V25,T09] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
+;  V24 cse0         [V24,T07] (  2,  8   )     int  ->  edx         "CSE - aggressive"
+;  V25 cse1         [V25,T05] (  2,  8   )     int  ->  edx         "CSE - aggressive"
+;  V26 cse2         [V26,T10] (  4,  3   )     ref  ->  ebx         "CSE - moderate"
 ;
 ; Lcl frame size = 36
 
@@ -57,7 +58,7 @@ G_M53769_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        xor      edx, edx
        mov      dword ptr [ebp-0x24], edx
                        ;; size=8 bbWeight=1 PerfScore 2.25
-G_M53769_IG03:        ; bbWeight=1, gcVars=00008000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M53769_IG03:        ; bbWeight=1, gcVars=00010000 {V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      byte  ptr [ebp-0x24], 0
        jne      SHORT G_M53769_IG06
        lea      edx, [ebp-0x24]
@@ -70,8 +71,8 @@ G_M53769_IG03:        ; bbWeight=1, gcVars=00008000 {V02}, gcrefRegs=000000C0 {e
        mov      ebx, gword ptr [esi+0x04]
        ; gcrRegs +[ebx]
        test     ebx, ebx
-       je       G_M53769_IG12
-                       ;; size=37 bbWeight=1 PerfScore 12.00
+       je       SHORT G_M53769_IG11
+                       ;; size=33 bbWeight=1 PerfScore 12.00
 G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -79,7 +80,7 @@ G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[edx] +[eax]
        test     eax, eax
-       je       SHORT G_M53769_IG11
+       je       SHORT G_M53769_IG10
        mov      ebx, eax
        mov      eax, dword ptr [ebx+0x0C]
        ; gcrRegs -[eax]
@@ -89,13 +90,14 @@ G_M53769_IG04:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
 G_M53769_IG05:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [ebx+0x0C]
        cmp      eax, edx
-       jne      SHORT G_M53769_IG07
-       cmp      ecx, dword ptr [ebx+0x08]
-       jae      SHORT G_M53769_IG08
+       jne      SHORT G_M53769_IG09
+       mov      edx, dword ptr [ebx+0x08]
+       cmp      ecx, edx
+       jae      SHORT G_M53769_IG07
        mov      edx, gword ptr [ebx+0x04]
        ; gcrRegs +[edx]
        cmp      ecx, dword ptr [edx+0x04]
-       jae      SHORT G_M53769_IG09
+       jae      SHORT G_M53769_IG08
        mov      edx, gword ptr [edx+4*ecx+0x08]
        inc      ecx
        mov      dword ptr [ebp-0x28], ecx
@@ -107,7 +109,7 @@ G_M53769_IG05:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
        mov      eax, dword ptr [ebp-0x2C]
        mov      ecx, dword ptr [ebp-0x28]
        jmp      SHORT G_M53769_IG05
-                      ;; size=45 bbWeight=4 PerfScore 99.00
+                     ;; size=47 bbWeight=4 PerfScore 96.00
 G_M53769_IG06:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ebx esi edi]
        call     [System.Threading.Monitor:ThrowLockTakenException()]
@@ -115,24 +117,20 @@ G_M53769_IG06:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=7 bbWeight=0 PerfScore 0.00
 G_M53769_IG07:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi]
-       cmp      dword ptr [ebp-0x2C], edx
-       jne      SHORT G_M53769_IG10
-                       ;; size=5 bbWeight=4 PerfScore 12.00
-G_M53769_IG08:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        xor      ecx, ecx
        ; gcrRegs +[ecx]
        mov      gword ptr [esi+0x04], ecx
-       jmp      SHORT G_M53769_IG12
+       jmp      SHORT G_M53769_IG11
                         ;; size=7 bbWeight=4 PerfScore 13.00
-G_M53769_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx esi]
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M53769_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG09:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M53769_IG11:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG10:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ebx esi edi]
        mov      edx, ebx
        ; gcrRegs +[edx]
@@ -144,36 +142,36 @@ G_M53769_IG11:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        mov      ecx, esi
        call     [System.Net.Http.Headers.HttpHeaders:ParseSingleRawHeaderValue(System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo,System.Net.Http.Headers.HeaderDescriptor,System.String)]
        ; gcrRegs -[ecx edx ebx edi]
-       jmp      SHORT G_M53769_IG08
+       jmp      SHORT G_M53769_IG07
                       ;; size=24 bbWeight=0.50 PerfScore 5.00
-G_M53769_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG11:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG16
+       je       SHORT G_M53769_IG15
                       ;; size=6 bbWeight=1 PerfScore 3.00
-G_M53769_IG13:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M53769_IG12:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V02}
        call     <unknown method>
        ; gcrRegs -[ecx]
-       jmp      SHORT G_M53769_IG16
+       jmp      SHORT G_M53769_IG15
                       ;; size=10 bbWeight=0.50 PerfScore 2.00
-G_M53769_IG14:        ; bbWeight=0, gcVars=00008000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V02 V15}
+G_M53769_IG13:        ; bbWeight=0, gcVars=00010000 {V02}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V02 V16}
        cmp      byte  ptr [ebp-0x24], 0
-       je       SHORT G_M53769_IG15
+       je       SHORT G_M53769_IG14
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V02 V15}
+       ; GC ptr vars -{V02 V16}
        call     <unknown method>
        ; gcrRegs -[ecx]
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M53769_IG15:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M53769_IG14:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        pop      eax
        jmp      eax
                        ;; size=3 bbWeight=0 PerfScore 0.00
-G_M53769_IG16:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M53769_IG15:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -182,9 +180,9 @@ G_M53769_IG16:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
 
-; Total bytes of code 233, prolog size 14, PerfScore 162.88, instruction count 84, allocated bytes for code 233 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
+; Total bytes of code 226, prolog size 14, PerfScore 147.88, instruction count 83, allocated bytes for code 226 (MethodHash=4a3e2df6) for method System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
 ; ============================================================
 
 *************** EH table for System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo)
 1 EH table entries, 1 total EH entries reported to VM
-EH#0: try [G_M53769_IG03..G_M53769_IG12) handled by [G_M53769_IG14..G_M53769_IG16) (fault)
+EH#0: try [G_M53769_IG03..G_M53769_IG11) handled by [G_M53769_IG13..G_M53769_IG15) (fault)
  
-11 (-2.32%) : 18357.dasm - System.Net.Http.Headers.HttpHeaders:RemoveParsedValue(System.Net.Http.Headers.HeaderDescriptor,System.Object):ubyte:this (FullOpts)
@@ -8,45 +8,46 @@
 ; 0 inlinees with PGO data; 7 single block inlinees; 7 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T11] (  4,  3.50)     ref  ->  [ebp-0x34]  this class-hnd single-def <System.Net.Http.Headers.HttpHeaders>
+;  V00 this         [V00,T12] (  4,  3.50)     ref  ->  [ebp-0x34]  this class-hnd single-def <System.Net.Http.Headers.HttpHeaders>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op single-def <System.Net.Http.Headers.HeaderDescriptor>
 ;  V02 arg2         [V02,T05] (  8,  9.50)     ref  ->  esi         class-hnd single-def <System.Object>
 ;  V03 loc0         [V03    ] (  5,  3   )     ref  ->  [ebp-0x24]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
-;  V04 loc1         [V04,T13] (  6,  3   )     ref  ->  [ebp-0x38]  class-hnd single-def <System.Object>
-;  V05 loc2         [V05,T16] (  4,  2   )   ubyte  ->  [ebp-0x28] 
-;  V06 loc3         [V06,T10] (  5,  5.50)     ref  ->  [ebp-0x3C]  class-hnd spill-single-def <System.Collections.IEqualityComparer>
+;  V04 loc1         [V04,T14] (  6,  3   )     ref  ->  [ebp-0x38]  class-hnd single-def <System.Object>
+;  V05 loc2         [V05,T17] (  4,  2   )   ubyte  ->  [ebp-0x28] 
+;  V06 loc3         [V06,T11] (  5,  5.50)     ref  ->  [ebp-0x3C]  class-hnd spill-single-def <System.Collections.IEqualityComparer>
 ;  V07 loc4         [V07,T02] ( 10, 15.50)     ref  ->  [ebp-0x40]  class-hnd spill-single-def <<unknown class>>
 ;* V08 loc5         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Object]>
 ;* V09 loc6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Object>
 ;* V10 loc7         [V10    ] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V11 tmp0         [V11,T06] (  3, 10   )     ref  ->  edx         class-hnd "spilling QMark2" <<unknown class>>
-;* V12 tmp1         [V12,T22] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
-;  V13 tmp2         [V13,T15] (  4,  2   )     ref  ->  ecx         class-hnd "Inline return value spill temp" <System.Net.Http.Headers.HttpHeaderParser>
+;* V12 tmp1         [V12,T23] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <<unknown class>>
+;  V13 tmp2         [V13,T16] (  4,  2   )     ref  ->  ecx         class-hnd "Inline return value spill temp" <System.Net.Http.Headers.HttpHeaderParser>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def "CASTCLASS eval op1"
-;  V15 tmp4         [V15,T09] (  7,  5.50)     ref  ->  ecx         class-hnd "spilling QMark2" <System.Net.Http.Headers.KnownHeader>
+;  V15 tmp4         [V15,T10] (  7,  5.50)     ref  ->  ecx         class-hnd "spilling QMark2" <System.Net.Http.Headers.KnownHeader>
 ;* V16 tmp5         [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V17 tmp6         [V17,T19] (  3,  1.50)   ubyte  ->  eax         "Inline return value spill temp"
+;  V17 tmp6         [V17,T20] (  3,  1.50)   ubyte  ->  eax         "Inline return value spill temp"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Object]>
-;  V19 tmp8         [V19,T08] (  3,  6   )   ubyte  ->  eax         "Inline return value spill temp"
-;  V20 tmp9         [V20,T20] (  3,  1.50)   ubyte  ->  ebx         "Inline return value spill temp"
-;  V21 tmp10        [V21,T21] (  3,  1.50)     int  ->  eax         "Inline stloc first use temp"
+;  V19 tmp8         [V19,T09] (  3,  6   )   ubyte  ->  eax         "Inline return value spill temp"
+;  V20 tmp9         [V20,T21] (  3,  1.50)   ubyte  ->  ebx         "Inline return value spill temp"
+;  V21 tmp10        [V21,T22] (  3,  1.50)     int  ->  eax         "Inline stloc first use temp"
 ;* V22 tmp11        [V22,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <<unknown class>>
-;* V24 tmp13        [V24,T26] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V25 tmp14        [V25,T14] (  3,  3   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
-;  V26 tmp15        [V26,T17] (  3,  2   )     ref  ->  [ebp+0x08]  single-def "field V01._descriptor (fldOffset=0x0)" P-INDEP
-;* V27 tmp16        [V27,T25] (  0,  0   )     ref  ->  zero-ref    single-def "field V08._list (fldOffset=0x0)" P-INDEP
+;* V24 tmp13        [V24,T27] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V25 tmp14        [V25,T15] (  3,  3   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo>
+;  V26 tmp15        [V26,T18] (  3,  2   )     ref  ->  [ebp+0x08]  single-def "field V01._descriptor (fldOffset=0x0)" P-INDEP
+;* V27 tmp16        [V27,T26] (  0,  0   )     ref  ->  zero-ref    single-def "field V08._list (fldOffset=0x0)" P-INDEP
 ;  V28 tmp17        [V28,T03] (  5, 10.50)     ref  ->  registers   "field V08._current (fldOffset=0x4)" P-INDEP
 ;  V29 tmp18        [V29,T00] (  6, 20.50)     int  ->  [ebp-0x2C]  "field V08._index (fldOffset=0x8)" P-INDEP
-;  V30 tmp19        [V30,T12] (  2,  4.50)     int  ->  [ebp-0x30]  spill-single-def "field V08._version (fldOffset=0xc)" P-INDEP
-;  V31 tmp20        [V31,T23] (  2,  1   )     ref  ->  ecx         single-def "field V18._list (fldOffset=0x0)" P-INDEP
+;  V30 tmp19        [V30,T13] (  2,  4.50)     int  ->  [ebp-0x30]  spill-single-def "field V08._version (fldOffset=0xc)" P-INDEP
+;  V31 tmp20        [V31,T24] (  2,  1   )     ref  ->  ecx         single-def "field V18._list (fldOffset=0x0)" P-INDEP
 ;* V32 tmp21        [V32    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V18._current (fldOffset=0x4)" P-INDEP
-;* V33 tmp22        [V33,T27] (  0,  0   )     int  ->  zero-ref    "field V18._index (fldOffset=0x8)" P-INDEP
-;  V34 tmp23        [V34,T24] (  2,  1   )     int  ->  edx         "field V18._version (fldOffset=0xc)" P-INDEP
+;* V33 tmp22        [V33,T28] (  0,  0   )     int  ->  zero-ref    "field V18._index (fldOffset=0x8)" P-INDEP
+;  V34 tmp23        [V34,T25] (  2,  1   )     int  ->  edx         "field V18._version (fldOffset=0xc)" P-INDEP
 ;  V35 tmp24        [V35,T01] (  3, 24   )     ref  ->  edi         "arr expr"
-;  V36 tmp25        [V36,T18] (  2,  2   )     ref  ->  ecx         "argument with side effect"
+;  V36 tmp25        [V36,T19] (  2,  2   )     ref  ->  ecx         "argument with side effect"
 ;  V37 EHSlots      [V37    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V38 cse0         [V38,T04] (  2,  8   )     int  ->  edi         "CSE - moderate"
+;  V38 cse0         [V38,T08] (  2,  8   )     int  ->  edi         "CSE - moderate"
+;  V39 cse1         [V39,T04] (  2,  8   )     int  ->  edi         "CSE - moderate"
 ;
 ; Lcl frame size = 52
 
@@ -106,9 +107,9 @@ G_M29806_IG05:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      4
                        ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M29806_IG06:        ; bbWeight=0.50, gcVars=00002000 {V04}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M29806_IG06:        ; bbWeight=0.50, gcVars=00004000 {V04}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[ebx esi edi]
-       ; GC ptr vars +{V04 V13}
+       ; GC ptr vars +{V04}
        xor      eax, eax
        mov      dword ptr [ebp-0x28], eax
        mov      gword ptr [ebp+0x08], ebx
@@ -146,7 +147,6 @@ G_M29806_IG10:        ; bbWeight=0.50, gcrefRegs=000000C2 {ecx esi edi}, byrefRe
        mov      edx, gword ptr [ebp-0x38]
        ; gcrRegs +[edx]
        mov      ecx, 0xD1FFAB1E      ; <unknown class>
-       ; GC ptr vars -{V13}
        call     CORINFO_HELP_ISINSTANCEOFCLASS
        ; gcrRegs -[edx]
        mov      gword ptr [ebp-0x40], eax
@@ -172,7 +172,7 @@ G_M29806_IG10:        ; bbWeight=0.50, gcrefRegs=000000C2 {ecx esi edi}, byrefRe
                        ;; size=61 bbWeight=0.50 PerfScore 12.75
 G_M29806_IG11:        ; bbWeight=0.25, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
        mov      ebx, dword ptr [ebp-0x28]
-       jmp      G_M29806_IG28
+       jmp      G_M29806_IG27
                         ;; size=8 bbWeight=0.25 PerfScore 0.75
 G_M29806_IG12:        ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[eax esi]
@@ -189,29 +189,31 @@ G_M29806_IG12:        ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRe
 G_M29806_IG13:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
        test     eax, eax
        mov      ebx, dword ptr [ebp-0x28]
-       je       G_M29806_IG28
+       je       G_M29806_IG27
        mov      ecx, gword ptr [ebp-0x24]
        ; gcrRegs +[ecx]
        xor      edx, edx
        ; gcrRegs +[edx]
        mov      gword ptr [ecx+0x08], edx
        mov      ebx, 1
-       jmp      G_M29806_IG28
+       jmp      G_M29806_IG27
                        ;; size=29 bbWeight=0.50 PerfScore 3.38
-G_M29806_IG14:        ; bbWeight=0.50, gcVars=00000404 {V06 V07}, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M29806_IG14:        ; bbWeight=0.50, gcVars=00000804 {V06 V07}, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[ecx edx] +[eax ebx esi]
-       ; GC ptr vars +{V02 V06 V07}
+       ; GC ptr vars +{V02 V06 V07 V11}
        mov      ecx, eax
        ; gcrRegs +[ecx]
        mov      edx, dword ptr [ecx+0x0C]
        xor      ecx, ecx
        ; gcrRegs -[ecx]
        mov      dword ptr [ebp-0x30], edx
-       jmp      SHORT G_M29806_IG22
-                       ;; size=12 bbWeight=0.50 PerfScore 2.75
-G_M29806_IG15:        ; bbWeight=2, gcVars=00000C04 {V00 V06 V07}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      gword ptr [ebp-0x34], edi
+       ; GC ptr vars +{V00}
+       jmp      SHORT G_M29806_IG21
+                       ;; size=15 bbWeight=0.50 PerfScore 3.25
+G_M29806_IG15:        ; bbWeight=2, gcVars=00001804 {V00 V06 V07}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
-       ; GC ptr vars -{V02} +{V00 V11}
+       ; GC ptr vars -{V02 V11}
        mov      edx, edi
        ; gcrRegs +[edx]
        test     edx, edx
@@ -242,12 +244,10 @@ G_M29806_IG18:        ; bbWeight=0.50, gcrefRegs=00000048 {ebx esi}, byrefRegs=0
        ; gcrRegs +[eax]
        mov      ecx, dword ptr [ebp-0x2C]
        mov      edx, dword ptr [ebp-0x30]
-       mov      edi, gword ptr [ebp-0x34]
-       ; gcrRegs +[edi]
-       jmp      SHORT G_M29806_IG22
-                       ;; size=14 bbWeight=0.50 PerfScore 3.00
+       jmp      SHORT G_M29806_IG21
+                       ;; size=11 bbWeight=0.50 PerfScore 2.50
 G_M29806_IG19:        ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[eax]
+       ; gcrRegs -[eax] +[edi]
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      edx, edi
@@ -260,52 +260,42 @@ G_M29806_IG19:        ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
                        ;; size=12 bbWeight=2 PerfScore 15.00
 G_M29806_IG20:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        test     eax, eax
-       jne      SHORT G_M29806_IG24
-                       ;; size=4 bbWeight=2 PerfScore 2.50
-G_M29806_IG21:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[edi]
        mov      eax, gword ptr [ebp-0x40]
        ; gcrRegs +[eax]
        mov      ecx, dword ptr [ebp-0x2C]
        mov      edx, dword ptr [ebp-0x30]
        mov      ebx, gword ptr [ebp-0x3C]
        ; gcrRegs +[ebx]
-       mov      edi, gword ptr [ebp-0x34]
-       ; gcrRegs +[edi]
-                       ;; size=15 bbWeight=1 PerfScore 5.00
-G_M29806_IG22:        ; bbWeight=4, gcVars=00000404 {V06 V07}, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V00 V11}
-       cmp      edx, dword ptr [eax+0x0C]
-       jne      G_M29806_IG32
-       mov      gword ptr [ebp-0x34], edi
-       ; GC ptr vars +{V00}
-       mov      edi, dword ptr [eax+0x08]
+       jne      SHORT G_M29806_IG23
+                       ;; size=16 bbWeight=2 PerfScore 10.50
+G_M29806_IG21:        ; bbWeight=4, gcrefRegs=00000049 {eax ebx esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edi]
+       mov      edi, dword ptr [eax+0x0C]
+       cmp      edx, edi
+       jne      G_M29806_IG31
+       mov      edi, dword ptr [eax+0x08]
        cmp      ecx, edi
-       jae      SHORT G_M29806_IG23
+       jae      SHORT G_M29806_IG22
        mov      edi, gword ptr [eax+0x04]
        ; gcrRegs +[edi]
        cmp      ecx, dword ptr [edi+0x04]
-       jae      G_M29806_IG31
+       jae      SHORT G_M29806_IG30
        mov      edi, gword ptr [edi+4*ecx+0x08]
        inc      ecx
        mov      dword ptr [ebp-0x2C], ecx
        jmp      SHORT G_M29806_IG15
-                      ;; size=41 bbWeight=4 PerfScore 78.00
-G_M29806_IG23:        ; bbWeight=2, gcVars=00000804 {V00 V07}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
+                       ;; size=36 bbWeight=4 PerfScore 71.00
+G_M29806_IG22:        ; bbWeight=2, gcVars=00001004 {V00 V07}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[ebx esi edi]
        ; GC ptr vars -{V06}
        mov      ebx, dword ptr [ebp-0x28]
        mov      edi, gword ptr [ebp-0x34]
        ; gcrRegs +[edi]
-       jmp      SHORT G_M29806_IG27
+       jmp      SHORT G_M29806_IG26
                       ;; size=8 bbWeight=2 PerfScore 8.00
-G_M29806_IG24:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[eax]
+G_M29806_IG23:        ; bbWeight=0.50, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref, isz
        mov      esi, edi
        ; gcrRegs +[esi]
-       mov      eax, gword ptr [ebp-0x40]
-       ; gcrRegs +[eax]
        mov      edi, gword ptr [ebp-0x34]
        mov      ecx, gword ptr [eax+0x04]
        ; gcrRegs +[ecx]
@@ -318,39 +308,39 @@ G_M29806_IG24:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000
        call     [<unknown method>]
        ; gcrRegs -[eax ecx edx esi]
        test     eax, eax
-       jl       SHORT G_M29806_IG25
+       jl       SHORT G_M29806_IG24
        mov      ecx, gword ptr [ebp-0x40]
        ; gcrRegs +[ecx]
        mov      edx, eax
        call     [System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this]
        ; gcrRegs -[ecx]
        mov      ebx, 1
-       jmp      SHORT G_M29806_IG26
-                       ;; size=51 bbWeight=0.50 PerfScore 9.62
-G_M29806_IG25:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+       jmp      SHORT G_M29806_IG25
+                       ;; size=48 bbWeight=0.50 PerfScore 9.12
+G_M29806_IG24:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
        xor      ebx, ebx
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M29806_IG26:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+G_M29806_IG25:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
        mov      eax, gword ptr [ebp-0x40]
        ; gcrRegs +[eax]
                        ;; size=3 bbWeight=0.50 PerfScore 0.50
-G_M29806_IG27:        ; bbWeight=0.50, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref, isz
+G_M29806_IG26:        ; bbWeight=0.50, gcrefRegs=00000081 {eax edi}, byrefRegs=00000000 {}, byref, isz
        cmp      dword ptr [eax+0x08], 0
-       jne      SHORT G_M29806_IG28
+       jne      SHORT G_M29806_IG27
        mov      ecx, gword ptr [ebp-0x24]
...
  
+3 (+1.99%) : 37334.dasm - System.Management.Automation.PSModuleInfo:AddModuleToList(System.Management.Automation.PSModuleInfo,System.Collections.Generic.List`1[System.Management.Automation.PSModuleInfo]) (FullOpts)
@@ -8,29 +8,30 @@
 ; 0 inlinees with PGO data; 6 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T11] (  5,  5   )     ref  ->  edi         class-hnd single-def <System.Management.Automation.PSModuleInfo>
-;  V01 arg1         [V01,T00] ( 11, 32   )     ref  ->  esi         class-hnd single-def <System.Collections.Generic.List`1[System.Management.Automation.PSModuleInfo]>
+;  V00 arg0         [V00,T12] (  5,  5   )     ref  ->  edi         class-hnd single-def <System.Management.Automation.PSModuleInfo>
+;  V01 arg1         [V01,T00] ( 10, 28   )     ref  ->  esi         class-hnd single-def <System.Collections.Generic.List`1[System.Management.Automation.PSModuleInfo]>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Management.Automation.PSModuleInfo]>
 ;* V03 tmp0         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Management.Automation.PSModuleInfo]>
 ;* V05 tmp2         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
-;* V06 tmp3         [V06,T10] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V06 tmp3         [V06,T11] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Management.Automation.PSModuleInfo]>
-;  V08 tmp5         [V08,T07] (  3,  8.50)     ref  ->  edx         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V09 tmp6         [V09,T05] (  4,  9   )     int  ->  eax         single-def "Inline stloc first use temp"
-;* V10 tmp7         [V10,T14] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._list (fldOffset=0x0)" P-INDEP
-;  V11 tmp8         [V11,T04] (  2,  6   )     ref  ->  edx         "field V02._current (fldOffset=0x4)" P-INDEP
+;  V08 tmp5         [V08,T08] (  3,  8.50)     ref  ->  ecx         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V09 tmp6         [V09,T06] (  4,  9   )     int  ->  edx         single-def "Inline stloc first use temp"
+;* V10 tmp7         [V10,T15] (  0,  0   )     ref  ->  zero-ref    single-def "field V02._list (fldOffset=0x0)" P-INDEP
+;  V11 tmp8         [V11,T05] (  2,  6   )     ref  ->  edx         "field V02._current (fldOffset=0x4)" P-INDEP
 ;  V12 tmp9         [V12,T01] (  6, 21   )     int  ->  [ebp-0x24]  "field V02._index (fldOffset=0x8)" P-INDEP
-;  V13 tmp10        [V13,T06] (  2,  9   )     int  ->  ebx         single-def "field V02._version (fldOffset=0xc)" P-INDEP
-;  V14 tmp11        [V14,T12] (  2,  2   )     ref  ->  ecx         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V13 tmp10        [V13,T07] (  2,  9   )     int  ->  ebx         single-def "field V02._version (fldOffset=0xc)" P-INDEP
+;  V14 tmp11        [V14,T13] (  2,  2   )     ref  ->  ecx         single-def "field V04._list (fldOffset=0x0)" P-INDEP
 ;* V15 tmp12        [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._current (fldOffset=0x4)" P-INDEP
-;* V16 tmp13        [V16,T15] (  0,  0   )     int  ->  zero-ref    single-def "field V04._index (fldOffset=0x8)" P-INDEP
-;  V17 tmp14        [V17,T13] (  2,  2   )     int  ->  ebx         single-def "field V04._version (fldOffset=0xc)" P-INDEP
+;* V16 tmp13        [V16,T16] (  0,  0   )     int  ->  zero-ref    single-def "field V04._index (fldOffset=0x8)" P-INDEP
+;  V17 tmp14        [V17,T14] (  2,  2   )     int  ->  ebx         single-def "field V04._version (fldOffset=0xc)" P-INDEP
 ;  V18 tmp15        [V18,T02] (  3, 24   )     ref  ->  edx         "arr expr"
-;  V19 tmp16        [V19,T08] (  2,  8   )     ref  ->  edx         "argument with side effect"
-;  V20 tmp17        [V20,T09] (  2,  8   )     ref  ->  eax         "argument with side effect"
+;  V19 tmp16        [V19,T09] (  2,  8   )     ref  ->  edx         "argument with side effect"
+;  V20 tmp17        [V20,T10] (  2,  8   )     ref  ->  eax         "argument with side effect"
 ;  V21 EHSlots      [V21    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V22 cse0         [V22,T03] (  3, 12   )     int  ->  eax         "CSE - moderate"
+;  V22 cse0         [V22,T04] (  3, 12   )     int  ->  edx         "CSE - moderate"
+;  V23 cse1         [V23,T03] (  3, 20   )     int  ->  eax         "CSE - aggressive"
 ;
 ; Lcl frame size = 24
 
@@ -76,12 +77,13 @@ G_M24725_IG03:        ; bbWeight=2, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=
        jne      SHORT G_M24725_IG09
                        ;; size=27 bbWeight=2 PerfScore 27.50
 G_M24725_IG04:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ebx, dword ptr [esi+0x0C]
+       mov      eax, dword ptr [esi+0x0C]
+       cmp      ebx, eax
        jne      SHORT G_M24725_IG11
-                      ;; size=5 bbWeight=8 PerfScore 32.00
+                      ;; size=7 bbWeight=8 PerfScore 26.00
 G_M24725_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, dword ptr [esi+0x08]
-       cmp      ecx, eax
+       mov      edx, dword ptr [esi+0x08]
+       cmp      ecx, edx
        jae      SHORT G_M24725_IG06
        mov      edx, gword ptr [esi+0x04]
        ; gcrRegs +[edx]
@@ -94,20 +96,20 @@ G_M24725_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
                        ;; size=25 bbWeight=4 PerfScore 58.00
 G_M24725_IG06:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edx]
-       inc      dword ptr [esi+0x0C]
-       mov      edx, gword ptr [esi+0x04]
-       ; gcrRegs +[edx]
-       cmp      dword ptr [edx+0x04], eax
+       inc      eax
+       mov      dword ptr [esi+0x0C], eax
+       mov      ecx, gword ptr [esi+0x04]
+       ; gcrRegs +[ecx]
+       cmp      dword ptr [ecx+0x04], edx
        jbe      SHORT G_M24725_IG08
-                     ;; size=11 bbWeight=4 PerfScore 36.00
-G_M24725_IG07:        ; bbWeight=0.50, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref, isz
-       lea      ecx, [eax+0x01]
-       mov      dword ptr [esi+0x08], ecx
-       lea      edx, bword ptr [edx+4*eax+0x08]
-       ; gcrRegs -[edx]
+                      ;; size=12 bbWeight=4 PerfScore 29.00
+G_M24725_IG07:        ; bbWeight=0.50, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref, isz
+       lea      eax, [edx+0x01]
+       mov      dword ptr [esi+0x08], eax
+       lea      edx, bword ptr [ecx+4*edx+0x08]
        ; byrRegs +[edx]
        call     CORINFO_HELP_ASSIGN_REF_EDI
-       ; gcrRegs -[esi edi]
+       ; gcrRegs -[ecx esi edi]
        ; byrRegs -[edx]
        jmp      SHORT G_M24725_IG09
                        ;; size=17 bbWeight=0.50 PerfScore 2.75
@@ -136,6 +138,6 @@ G_M24725_IG11:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 151, prolog size 23, PerfScore 175.25, instruction count 60, allocated bytes for code 151 (MethodHash=b52a9f6a) for method System.Management.Automation.PSModuleInfo:AddModuleToList(System.Management.Automation.PSModuleInfo,System.Collections.Generic.List`1[System.Management.Automation.PSModuleInfo]) (FullOpts)
+; Total bytes of code 154, prolog size 23, PerfScore 162.25, instruction count 62, allocated bytes for code 154 (MethodHash=b52a9f6a) for method System.Management.Automation.PSModuleInfo:AddModuleToList(System.Management.Automation.PSModuleInfo,System.Collections.Generic.List`1[System.Management.Automation.PSModuleInfo]) (FullOpts)
 ; ============================================================
 
  
+12 (+2.00%) : 35171.dasm - System.Management.Automation.SessionStateInternal:GetProvider(System.Management.Automation.PSSnapinQualifiedName):System.Collections.ObjectModel.Collection`1[System.Management.Automation.ProviderInfo]:this (FullOpts)
@@ -8,57 +8,57 @@
 ; 0 inlinees with PGO data; 27 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T17] (  5,  4   )     ref  ->  edi         this class-hnd single-def <System.Management.Automation.SessionStateInternal>
+;  V00 this         [V00,T19] (  5,  4   )     ref  ->  edi         this class-hnd single-def <System.Management.Automation.SessionStateInternal>
 ;  V01 arg1         [V01,T06] ( 10, 10   )     ref  ->  esi         class-hnd single-def <System.Management.Automation.PSSnapinQualifiedName>
 ;  V02 loc0         [V02,T05] (  8, 17   )     ref  ->  ebx         class-hnd exact single-def <System.Collections.ObjectModel.Collection`1[System.Management.Automation.ProviderInfo]>
-;  V03 loc1         [V03,T29] (  4,  2   )     ref  ->  edi         ld-addr-op class-hnd <System.Collections.Generic.List`1[System.Management.Automation.ProviderInfo]>
+;  V03 loc1         [V03,T31] (  4,  2   )     ref  ->  edi         ld-addr-op class-hnd <System.Collections.Generic.List`1[System.Management.Automation.ProviderInfo]>
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Management.Automation.ProviderInfo]>
 ;* V05 loc3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Management.Automation.ProviderInfo>
-;  V06 loc4         [V06,T24] (  2,  4   )     ref  ->  [ebp-0x2C]  class-hnd spill-single-def <System.Management.Automation.ProviderInfo>
-;  V07 tmp0         [V07,T18] (  3,  6   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <System.Collections.ObjectModel.Collection`1[System.Management.Automation.ProviderInfo]>
-;  V08 tmp1         [V08,T19] (  3,  6   )     ref  ->  eax         class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Management.Automation.ProviderInfo]]>
+;  V06 loc4         [V06,T26] (  2,  4   )     ref  ->  [ebp-0x2C]  class-hnd spill-single-def <System.Management.Automation.ProviderInfo>
+;  V07 tmp0         [V07,T20] (  3,  6   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <System.Collections.ObjectModel.Collection`1[System.Management.Automation.ProviderInfo]>
+;  V08 tmp1         [V08,T21] (  3,  6   )     ref  ->  eax         class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Management.Automation.ProviderInfo]]>
 ;* V09 tmp2         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
 ;* V10 tmp3         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
 ;* V11 tmp4         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
-;  V12 tmp5         [V12,T28] (  3,  3   )     ref  ->  eax         class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Management.Automation.ProviderInfo]]>
-;  V13 tmp6         [V13,T44] (  2,  0   )     ref  ->  esi         class-hnd exact single-def "non-inline candidate call" <System.String>
-;  V14 tmp7         [V14,T45] (  2,  0   )     ref  ->  edi         class-hnd exact single-def "impAppendStmt" <System.String>
-;  V15 tmp8         [V15,T42] (  3,  0   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V16 tmp9         [V16,T46] (  2,  0   )     ref  ->  esi         class-hnd exact single-def "impAppendStmt" <System.String>
-;  V17 tmp10        [V17,T43] (  3,  0   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V18 tmp11        [V18,T20] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Management.Automation.ProviderInfo]>
-;* V19 tmp12        [V19,T35] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V20 tmp13        [V20,T25] (  2,  4   )     ref  ->  edx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V21 tmp14        [V21,T30] (  3,  2.50)   byref  ->  eax         single-def "Inline stloc first use temp"
-;* V22 tmp15        [V22,T38] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V23 tmp16        [V23,T31] (  2,  2   )     ref  ->  edx         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V24 tmp17        [V24,T32] (  3,  1.50)   byref  ->  eax         single-def "Inline stloc first use temp"
-;* V25 tmp18        [V25,T39] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V26 tmp19        [V26,T23] (  3,  5   )     ref  ->  edx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V12 tmp5         [V12,T30] (  3,  3   )     ref  ->  eax         class-hnd single-def "impAppendStmt" <System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Management.Automation.ProviderInfo]]>
+;  V13 tmp6         [V13,T46] (  2,  0   )     ref  ->  esi         class-hnd exact single-def "non-inline candidate call" <System.String>
+;  V14 tmp7         [V14,T47] (  2,  0   )     ref  ->  edi         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V15 tmp8         [V15,T44] (  3,  0   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V16 tmp9         [V16,T48] (  2,  0   )     ref  ->  esi         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V17 tmp10        [V17,T45] (  3,  0   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V18 tmp11        [V18,T22] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Management.Automation.ProviderInfo]>
+;* V19 tmp12        [V19,T37] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V20 tmp13        [V20,T27] (  2,  4   )     ref  ->  edx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V21 tmp14        [V21,T32] (  3,  2.50)   byref  ->  eax         single-def "Inline stloc first use temp"
+;* V22 tmp15        [V22,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V23 tmp16        [V23,T33] (  2,  2   )     ref  ->  edx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V24 tmp17        [V24,T34] (  3,  1.50)   byref  ->  eax         single-def "Inline stloc first use temp"
+;* V25 tmp18        [V25,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V26 tmp19        [V26,T25] (  3,  5   )     ref  ->  edx         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V27 tmp20        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Management.Automation.ProviderInfo]>
 ;* V28 tmp21        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Management.Automation.ProviderInfo]>
-;  V29 tmp22        [V29,T21] (  3,  6   )     ref  ->  [ebp-0x30]  class-hnd "Inline stloc first use temp" <System.String>
+;  V29 tmp22        [V29,T23] (  3,  6   )     ref  ->  [ebp-0x30]  class-hnd "Inline stloc first use temp" <System.String>
 ;* V30 tmp23        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Management.Automation.PSSnapInInfo>
-;  V31 tmp24        [V31,T26] (  2,  4   )     int  ->  edx         "Inline stloc first use temp"
+;  V31 tmp24        [V31,T28] (  2,  4   )     int  ->  edx         "Inline stloc first use temp"
 ;* V32 tmp25        [V32,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V33 tmp26        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Management.Automation.ProviderInfo]>
 ;* V34 tmp27        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Management.Automation.ProviderInfo]>
 ;* V35 tmp28        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Management.Automation.ProviderInfo]>
-;  V36 tmp29        [V36,T27] (  2,  4   )     int  ->  edx         "Inline stloc first use temp"
+;  V36 tmp29        [V36,T29] (  2,  4   )     int  ->  edx         "Inline stloc first use temp"
 ;* V37 tmp30        [V37,T16] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V38 tmp31        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Collections.Generic.List`1[System.Management.Automation.ProviderInfo]>
 ;  V39 tmp32        [V39,T01] (  8, 25   )     ref  ->  edi         "field V04._list (fldOffset=0x0)" P-INDEP
 ;  V40 tmp33        [V40,T02] (  6, 16   )     ref  ->  [ebp-0x34]  "field V04._current (fldOffset=0x4)" P-INDEP
 ;  V41 tmp34        [V41,T00] ( 12, 41   )     int  ->  [ebp-0x24]  "field V04._index (fldOffset=0x8)" P-INDEP
 ;  V42 tmp35        [V42,T09] (  4,  9   )     int  ->  [ebp-0x28]  "field V04._version (fldOffset=0xc)" P-INDEP
-;  V43 tmp36        [V43,T33] (  3,  1.50)     ref  ->  edi         single-def "field V28._list (fldOffset=0x0)" P-INDEP
+;  V43 tmp36        [V43,T35] (  3,  1.50)     ref  ->  edi         single-def "field V28._list (fldOffset=0x0)" P-INDEP
 ;* V44 tmp37        [V44    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V28._current (fldOffset=0x4)" P-INDEP
-;* V45 tmp38        [V45,T40] (  0,  0   )     int  ->  zero-ref    single-def "field V28._index (fldOffset=0x8)" P-INDEP
-;  V46 tmp39        [V46,T36] (  2,  1   )     int  ->  eax         single-def "field V28._version (fldOffset=0xc)" P-INDEP
-;  V47 tmp40        [V47,T34] (  3,  1.50)     ref  ->  edi         single-def "field V35._list (fldOffset=0x0)" P-INDEP
+;* V45 tmp38        [V45,T42] (  0,  0   )     int  ->  zero-ref    single-def "field V28._index (fldOffset=0x8)" P-INDEP
+;  V46 tmp39        [V46,T38] (  2,  1   )     int  ->  eax         single-def "field V28._version (fldOffset=0xc)" P-INDEP
+;  V47 tmp40        [V47,T36] (  3,  1.50)     ref  ->  edi         single-def "field V35._list (fldOffset=0x0)" P-INDEP
 ;* V48 tmp41        [V48    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V35._current (fldOffset=0x4)" P-INDEP
-;* V49 tmp42        [V49,T41] (  0,  0   )     int  ->  zero-ref    single-def "field V35._index (fldOffset=0x8)" P-INDEP
-;  V50 tmp43        [V50,T37] (  2,  1   )     int  ->  eax         single-def "field V35._version (fldOffset=0xc)" P-INDEP
+;* V49 tmp42        [V49,T43] (  0,  0   )     int  ->  zero-ref    single-def "field V35._index (fldOffset=0x8)" P-INDEP
+;  V50 tmp43        [V50,T39] (  2,  1   )     int  ->  eax         single-def "field V35._version (fldOffset=0xc)" P-INDEP
 ;  V51 tmp44        [V51,T03] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V52 tmp45        [V52,T10] (  2,  8   )     ref  ->  eax         "argument with side effect"
 ;  V53 tmp46        [V53,T11] (  2,  8   )     ref  ->  ecx         "argument with side effect"
@@ -66,11 +66,13 @@
 ;  V55 tmp48        [V55,T13] (  2,  8   )     ref  ->  ecx         "argument with side effect"
 ;  V56 tmp49        [V56,T04] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V57 tmp50        [V57,T14] (  2,  8   )     ref  ->  ecx         "argument with side effect"
-;  V58 tmp51        [V58,T47] (  2,  0   )     ref  ->  ebx         single-def "argument with side effect"
+;  V58 tmp51        [V58,T49] (  2,  0   )     ref  ->  ebx         single-def "argument with side effect"
 ;  V59 EHSlots      [V59    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V60 cse0         [V60,T07] (  2,  8   )     int  ->  ecx         "CSE - moderate"
-;  V61 cse1         [V61,T08] (  2,  8   )     int  ->  ecx         "CSE - moderate"
-;  V62 cse2         [V62,T22] (  3,  6   )     ref  ->  eax         "CSE - conservative"
+;  V60 cse0         [V60,T17] (  2,  8   )     int  ->  ecx         "CSE - moderate"
+;  V61 cse1         [V61,T07] (  2,  8   )     int  ->  ecx         "CSE - moderate"
+;  V62 cse2         [V62,T18] (  2,  8   )     int  ->  ecx         "CSE - moderate"
+;  V63 cse3         [V63,T08] (  2,  8   )     int  ->  ecx         "CSE - moderate"
+;  V64 cse4         [V64,T24] (  3,  6   )     ref  ->  eax         "CSE - conservative"
 ;
 ; Lcl frame size = 40
 
@@ -182,7 +184,7 @@ G_M50722_IG07:        ; bbWeight=2, gcrefRegs=000000CA {ecx ebx esi edi}, byrefR
        mov      eax, gword ptr [eax+0x04]
        mov      gword ptr [ebp-0x30], eax
                        ;; size=21 bbWeight=2 PerfScore 17.00
-G_M50722_IG08:        ; bbWeight=2, gcVars=0000000000200004 {V29 V40}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M50722_IG08:        ; bbWeight=2, gcVars=0000000000800004 {V29 V40}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax ecx]
        mov      eax, gword ptr [esi+0x08]
        ; gcrRegs +[eax]
@@ -231,22 +233,23 @@ G_M50722_IG09:        ; bbWeight=2, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
        mov      eax, dword ptr [ebp-0x28]
        mov      edx, dword ptr [ebp-0x24]
                        ;; size=46 bbWeight=2 PerfScore 39.00
-G_M50722_IG10:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M50722_IG10:        ; bbWeight=4, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+       mov      ecx, dword ptr [edi+0x0C]
        mov      dword ptr [ebp-0x28], eax
-       cmp      eax, dword ptr [edi+0x0C]
+       cmp      eax, ecx
        jne      G_M50722_IG21
        mov      ecx, dword ptr [edi+0x08]
        cmp      edx, ecx
-       jae      SHORT G_M50722_IG15
+       jae      G_M50722_IG15
        mov      ecx, gword ptr [edi+0x04]
        ; gcrRegs +[ecx]
        cmp      edx, dword ptr [ecx+0x04]
-       jae      SHORT G_M50722_IG17
+       jae      G_M50722_IG17
        mov      ecx, gword ptr [ecx+4*edx+0x08]
        inc      edx
        mov      dword ptr [ebp-0x24], edx
        jmp      G_M50722_IG07
-                        ;; size=40 bbWeight=4 PerfScore 78.00
+                     ;; size=50 bbWeight=4 PerfScore 75.00
 G_M50722_IG11:        ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[ecx]
        mov      eax, dword ptr [ebp-0x28]
@@ -284,8 +287,9 @@ G_M50722_IG13:        ; bbWeight=2, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=
        mov      eax, dword ptr [ebp-0x28]
                        ;; size=46 bbWeight=2 PerfScore 39.00
 G_M50722_IG14:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, dword ptr [edi+0x0C]
        mov      dword ptr [ebp-0x28], eax
-       cmp      eax, dword ptr [edi+0x0C]
+       cmp      eax, ecx
        jne      G_M50722_IG21
        mov      ecx, dword ptr [edi+0x08]
        cmp      esi, ecx
@@ -299,7 +303,7 @@ G_M50722_IG14:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
        ; gcrRegs +[edx]
        inc      esi
        jmp      SHORT G_M50722_IG13
-                      ;; size=36 bbWeight=4 PerfScore 75.00
+                     ;; size=38 bbWeight=4 PerfScore 72.00
 G_M50722_IG15:        ; bbWeight=4, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx edx edi]
        mov      eax, ebx
@@ -388,6 +392,6 @@ G_M50722_IG21:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 600, prolog size 23, PerfScore 358.00, instruction count 185, allocated bytes for code 600 (MethodHash=b95339dd) for method System.Management.Automation.SessionStateInternal:GetProvider(System.Management.Automation.PSSnapinQualifiedName):System.Collections.ObjectModel.Collection`1[System.Management.Automation.ProviderInfo]:this (FullOpts)
+; Total bytes of code 612, prolog size 23, PerfScore 352.00, instruction count 187, allocated bytes for code 612 (MethodHash=b95339dd) for method System.Management.Automation.SessionStateInternal:GetProvider(System.Management.Automation.PSSnapinQualifiedName):System.Collections.ObjectModel.Collection`1[System.Management.Automation.ProviderInfo]:this (FullOpts)
 ; ============================================================
 
  
+2 (+2.22%) : 34103.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (FullOpts)
@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  3,  4   )     ref  ->  esi         this class-hnd single-def <System.Linq.Expressions.Compiler.LambdaCompiler>
-;  V01 arg1         [V01,T07] (  4,  3.50)     ref  ->  edx         class-hnd single-def <System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
+;  V00 this         [V00,T07] (  3,  4   )     ref  ->  esi         this class-hnd single-def <System.Linq.Expressions.Compiler.LambdaCompiler>
+;  V01 arg1         [V01,T08] (  4,  3.50)     ref  ->  edx         class-hnd single-def <System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack>
 ;* V04 tmp0         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]>
@@ -18,14 +18,15 @@
 ;  V07 tmp3         [V07,T02] (  4, 12.50)     ref  ->  edi         single-def "field V02._list (fldOffset=0x0)" P-INDEP
 ;  V08 tmp4         [V08,T03] (  3,  8   )     ref  ->  eax         "field V02._current (fldOffset=0x4)" P-INDEP
 ;  V09 tmp5         [V09,T00] (  6, 20.50)     int  ->  [ebp-0x24]  "field V02._index (fldOffset=0x8)" P-INDEP
-;  V10 tmp6         [V10,T08] (  2,  4.50)     int  ->  ebx         "field V02._version (fldOffset=0xc)" P-INDEP
-;  V11 tmp7         [V11,T09] (  3,  1.50)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
+;  V10 tmp6         [V10,T09] (  2,  4.50)     int  ->  ebx         "field V02._version (fldOffset=0xc)" P-INDEP
+;  V11 tmp7         [V11,T10] (  3,  1.50)     ref  ->  edi         single-def "field V04._list (fldOffset=0x0)" P-INDEP
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._current (fldOffset=0x4)" P-INDEP
-;* V13 tmp9         [V13,T11] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
-;  V14 tmp10        [V14,T10] (  2,  1   )     int  ->  ebx         "field V04._version (fldOffset=0xc)" P-INDEP
+;* V13 tmp9         [V13,T12] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
+;  V14 tmp10        [V14,T11] (  2,  1   )     int  ->  ebx         "field V04._version (fldOffset=0xc)" P-INDEP
 ;  V15 tmp11        [V15,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V16 EHSlots      [V16    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] addr-exposed "lvaShadowSPslotsVar"
-;  V17 cse0         [V17,T04] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
+;  V17 cse0         [V17,T06] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
+;  V18 cse1         [V18,T04] (  2,  8   )     int  ->  ecx         "CSE - aggressive"
 ;
 ; Lcl frame size = 24
 
@@ -65,7 +66,8 @@ G_M37225_IG04:        ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
        mov      edx, dword ptr [ebp-0x24]
                        ;; size=11 bbWeight=2 PerfScore 12.50
 G_M37225_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      ebx, dword ptr [edi+0x0C]
+       mov      ecx, dword ptr [edi+0x0C]
+       cmp      ebx, ecx
        jne      SHORT G_M37225_IG08
        mov      ecx, dword ptr [edi+0x08]
        cmp      edx, ecx
@@ -79,7 +81,7 @@ G_M37225_IG05:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        inc      edx
        mov      dword ptr [ebp-0x24], edx
        jmp      SHORT G_M37225_IG04
-                      ;; size=30 bbWeight=4 PerfScore 74.00
+                     ;; size=32 bbWeight=4 PerfScore 71.00
 G_M37225_IG06:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[eax ecx esi edi]
        lea      esp, [ebp-0x0C]
@@ -97,6 +99,6 @@ G_M37225_IG08:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 90, prolog size 14, PerfScore 110.00, instruction count 40, allocated bytes for code 90 (MethodHash=abe96e96) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (FullOpts)
+; Total bytes of code 92, prolog size 14, PerfScore 107.00, instruction count 41, allocated bytes for code 92 (MethodHash=abe96e96) for method System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (FullOpts)
 ; ============================================================
 
  
  
  
Details
Improvements/regressions per collection
| Collection | Contexts with diffs | Improvements | Regressions | Same size | Improvements (bytes) | Regressions (bytes) | 
| benchmarks.run.windows.x86.checked.mch | 118 | 38 | 75 | 5 | -384 | +156 | 
| benchmarks.run_pgo.windows.x86.checked.mch | 86 | 30 | 52 | 4 | -226 | +116 | 
| benchmarks.run_tiered.windows.x86.checked.mch | 114 | 36 | 73 | 5 | -372 | +152 | 
| coreclr_tests.run.windows.x86.checked.mch | 125 | 53 | 66 | 6 | -461 | +667 | 
| libraries.crossgen2.windows.x86.checked.mch | 33 | 19 | 13 | 1 | -124 | +33 | 
| libraries.pmi.windows.x86.checked.mch | 257 | 154 | 93 | 10 | -1,545 | +424 | 
| libraries_tests.run.windows.x86.Release.mch | 38 | 24 | 12 | 2 | -206 | +134 | 
| librariestestsnotieredcompilation.run.windows.x86.Release.mch | 311 | 195 | 103 | 13 | -1,853 | +1,174 | 
| realworld.run.windows.x86.checked.mch | 109 | 41 | 65 | 3 | -216 | +151 | 
|  | 1,191 | 590 | 552 | 49 | -5,387 | +3,007 | 
Context information
| Collection | Diffed contexts | MinOpts | FullOpts | Missed, base | Missed, diff | 
| benchmarks.run.windows.x86.checked.mch | 38,797 | 6 | 38,791 | 96 (0.25%) | 98 (0.25%) | 
| benchmarks.run_pgo.windows.x86.checked.mch | 84,005 | 41,585 | 42,420 | 1,426 (1.67%) | 1,428 (1.67%) | 
| benchmarks.run_tiered.windows.x86.checked.mch | 73,543 | 45,417 | 28,126 | 84 (0.11%) | 86 (0.12%) | 
| coreclr_tests.run.windows.x86.checked.mch | 406,465 | 186,921 | 219,544 | 148 (0.04%) | 157 (0.04%) | 
| libraries.crossgen2.windows.x86.checked.mch | 272,991 | 15 | 272,976 | 32 (0.01%) | 34 (0.01%) | 
| libraries.pmi.windows.x86.checked.mch | 320,484 | 6 | 320,478 | 90 (0.03%) | 97 (0.03%) | 
| libraries_tests.run.windows.x86.Release.mch | 49,264 | 31,248 | 18,016 | 360 (0.73%) | 362 (0.73%) | 
| librariestestsnotieredcompilation.run.windows.x86.Release.mch | 341,672 | 22,425 | 319,247 | 2,388 (0.69%) | 2,396 (0.70%) | 
| realworld.run.windows.x86.checked.mch | 37,833 | 3 | 37,830 | 23 (0.06%) | 27 (0.07%) | 
|  | 1,625,054 | 327,626 | 1,297,428 | 4,647 (0.29%) | 4,685 (0.29%) | 
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: 11308587 (overridden on cmd)
Total bytes of diff: 11308359 (overridden on cmd)
Total bytes of delta: -228 (-0.00 % of base)
    diff is an improvement.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
           4 : 25686.dasm (0.05 % of base)
           4 : 1300.dasm (0.19 % of base)
           4 : 26176.dasm (0.19 % of base)
           3 : 20891.dasm (0.44 % of base)
           3 : 5872.dasm (0.44 % of base)
           2 : 28080.dasm (0.59 % of base)
           2 : 7432.dasm (0.50 % of base)
           2 : 8546.dasm (1.82 % of base)
           2 : 8567.dasm (1.82 % of base)
           2 : 30404.dasm (1.04 % of base)
           2 : 34494.dasm (1.35 % of base)
           2 : 7169.dasm (1.35 % of base)
           2 : 8432.dasm (0.33 % of base)
           2 : 8486.dasm (1.82 % of base)
           2 : 17113.dasm (1.59 % of base)
           2 : 17729.dasm (1.82 % of base)
           2 : 17980.dasm (1.82 % of base)
           2 : 18056.dasm (1.82 % of base)
           2 : 18628.dasm (0.50 % of base)
           2 : 23174.dasm (1.56 % of base)
Top file improvements (bytes):
         -69 : 24602.dasm (-3.56 % of base)
         -69 : 2586.dasm (-3.56 % of base)
         -45 : 2536.dasm (-1.13 % of base)
         -45 : 24560.dasm (-1.13 % of base)
          -8 : 31597.dasm (-0.10 % of base)
          -8 : 31360.dasm (-0.10 % of base)
          -7 : 10788.dasm (-3.00 % of base)
          -7 : 1301.dasm (-1.36 % of base)
          -7 : 26177.dasm (-1.36 % of base)
          -7 : 21268.dasm (-3.00 % of base)
          -6 : 10495.dasm (-0.48 % of base)
          -6 : 14971.dasm (-0.62 % of base)
          -6 : 560.dasm (-0.62 % of base)
          -6 : 19325.dasm (-0.48 % of base)
          -6 : 20393.dasm (-0.55 % of base)
          -6 : 5398.dasm (-0.55 % of base)
          -5 : 6279.dasm (-1.43 % of base)
          -5 : 14469.dasm (-0.68 % of base)
          -5 : 23425.dasm (-0.39 % of base)
          -5 : 880.dasm (-0.60 % of base)
61 total files with Code Size differences (25 improved, 36 regressed), 5 unchanged.
Top method regressions (bytes):
           4 (0.05 % of base) : 25686.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (FullOpts)
           4 (0.19 % of base) : 1300.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (FullOpts)
           4 (0.19 % of base) : 26176.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (FullOpts)
           3 (0.44 % of base) : 20891.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)
           3 (0.44 % of base) : 5872.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)
           2 (1.02 % of base) : 24114.dasm - (dynamicClass):WriteArrayOfintToXml(System.Runtime.Serialization.XmlWriterDelegator,System.Object,System.Runtime.Serialization.XmlObjectSerializerWriteContext,System.Runtime.Serialization.DataContracts.CollectionDataContract) (FullOpts)
           2 (1.02 % of base) : 23481.dasm - (dynamicClass):WriteArrayOfintToXml(System.Runtime.Serialization.XmlWriterDelegator,System.Object,System.Runtime.Serialization.XmlObjectSerializerWriteContext,System.Runtime.Serialization.DataContracts.CollectionDataContract) (FullOpts)
           2 (1.35 % of base) : 34494.dasm - Jil.Deserialize.NameAutomata`1[int]:DoCharLinearScan[int](Jil.Deserialize.NameAutomata`1+Data`1[int,int],System.Collections.Generic.List`1[System.Tuple`2[ushort,Sigil.Label]]) (FullOpts)
           2 (1.35 % of base) : 7169.dasm - Jil.Deserialize.NameAutomata`1[int]:DoCharLinearScan[int](Jil.Deserialize.NameAutomata`1+Data`1[int,int],System.Collections.Generic.List`1[System.Tuple`2[ushort,Sigil.Label]]) (FullOpts)
           2 (0.39 % of base) : 6972.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:WriteObjectWithNullsWithoutConditionalSerialization(System.Type,Sigil.Local,System.Collections.Generic.List`1[System.Collections.Generic.List`1[System.Reflection.MemberInfo]]):this (FullOpts)
           2 (1.04 % of base) : 30404.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodImplTableRows():this (FullOpts)
           2 (0.59 % of base) : 28080.dasm - Microsoft.CodeAnalysis.PEModule:ExtractStringValuesFromAttributes(System.Collections.Generic.List`1[Microsoft.CodeAnalysis.PEModule+AttributeInfo]):Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.String]:this (FullOpts)
           2 (0.90 % of base) : 24352.dasm - Microsoft.Extensions.Configuration.ConfigurationBuilder:Build():Microsoft.Extensions.Configuration.IConfigurationRoot:this (FullOpts)
           2 (0.90 % of base) : 23576.dasm - Microsoft.Extensions.Configuration.ConfigurationBuilder:Build():Microsoft.Extensions.Configuration.IConfigurationRoot:this (FullOpts)
           2 (0.33 % of base) : 8432.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:CreateProperties(System.Type,int):System.Collections.Generic.IList`1[Newtonsoft.Json.Serialization.JsonProperty]:this (FullOpts)
           2 (1.82 % of base) : 18056.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserialized(System.Object,System.Runtime.Serialization.StreamingContext):this (FullOpts)
           2 (1.82 % of base) : 8613.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserialized(System.Object,System.Runtime.Serialization.StreamingContext):this (FullOpts)
           2 (1.82 % of base) : 8567.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserializing(System.Object,System.Runtime.Serialization.StreamingContext):this (FullOpts)
           2 (1.82 % of base) : 17980.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserializing(System.Object,System.Runtime.Serialization.StreamingContext):this (FullOpts)
           2 (1.82 % of base) : 8546.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerialized(System.Object,System.Runtime.Serialization.StreamingContext):this (FullOpts)
Top method improvements (bytes):
         -69 (-3.56 % of base) : 24602.dasm - ProtoBuf.Meta.MetaType:ValidateReservations():this (FullOpts)
         -69 (-3.56 % of base) : 2586.dasm - ProtoBuf.Meta.MetaType:ValidateReservations():this (FullOpts)
         -45 (-1.13 % of base) : 2536.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (FullOpts)
         -45 (-1.13 % of base) : 24560.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (FullOpts)
          -8 (-0.10 % of base) : 31597.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.Net.WebSockets.ValueWebSocketReceiveResult]:MoveNext():this (FullOpts)
          -8 (-0.10 % of base) : 31360.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.Net.WebSockets.ValueWebSocketReceiveResult]:MoveNext():this (FullOpts)
          -7 (-3.00 % of base) : 10788.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
          -7 (-3.00 % of base) : 21268.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
          -7 (-1.36 % of base) : 1301.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (FullOpts)
          -7 (-1.36 % of base) : 26177.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (FullOpts)
          -6 (-0.48 % of base) : 10495.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:SetIfMembersHaveConflict(System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]):this (FullOpts)
          -6 (-0.48 % of base) : 19325.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:SetIfMembersHaveConflict(System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]):this (FullOpts)
          -6 (-0.62 % of base) : 14971.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (FullOpts)
          -6 (-0.62 % of base) : 560.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (FullOpts)
          -6 (-0.55 % of base) : 20393.dasm - System.TimeZoneInfo:TryGetTimeZone(System.String,ubyte,byref,byref,System.TimeZoneInfo+CachedData,ubyte):int (FullOpts)
          -6 (-0.55 % of base) : 5398.dasm - System.TimeZoneInfo:TryGetTimeZone(System.String,ubyte,byref,byref,System.TimeZoneInfo+CachedData,ubyte):int (FullOpts)
          -5 (-0.68 % of base) : 14469.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -5 (-0.68 % of base) : 59.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -5 (-0.39 % of base) : 23425.dasm - System.Formats.Tar.TarReader+<DisposeAsync>d__8:MoveNext():this (FullOpts)
          -5 (-0.60 % of base) : 880.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (FullOpts)
Top method regressions (percentages):
           2 (2.22 % of base) : 18031.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (FullOpts)
           2 (2.22 % of base) : 3607.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (FullOpts)
           2 (2.06 % of base) : 8271.dasm - System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (FullOpts)
           2 (1.82 % of base) : 18056.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserialized(System.Object,System.Runtime.Serialization.StreamingContext):this (FullOpts)
           2 (1.82 % of base) : 8613.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserialized(System.Object,System.Runtime.Serialization.StreamingContext):this (FullOpts)
           2 (1.82 % of base) : 8567.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserializing(System.Object,System.Runtime.Serialization.StreamingContext):this (FullOpts)
           2 (1.82 % of base) : 17980.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserializing(System.Object,System.Runtime.Serialization.StreamingContext):this (FullOpts)
           2 (1.82 % of base) : 8546.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerialized(System.Object,System.Runtime.Serialization.StreamingContext):this (FullOpts)
           2 (1.82 % of base) : 17910.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerialized(System.Object,System.Runtime.Serialization.StreamingContext):this (FullOpts)
           2 (1.82 % of base) : 8486.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerializing(System.Object,System.Runtime.Serialization.StreamingContext):this (FullOpts)
           2 (1.82 % of base) : 17729.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerializing(System.Object,System.Runtime.Serialization.StreamingContext):this (FullOpts)
           2 (1.59 % of base) : 17113.dasm - System.Text.Json.JsonSerializerOptions:GetConverterFromList(System.Type):System.Text.Json.Serialization.JsonConverter:this (FullOpts)
           2 (1.59 % of base) : 7779.dasm - System.Text.Json.JsonSerializerOptions:GetConverterFromList(System.Type):System.Text.Json.Serialization.JsonConverter:this (FullOpts)
           2 (1.56 % of base) : 23174.dasm - System.Formats.Tar.TarReader:Dispose():this (FullOpts)
           2 (1.35 % of base) : 34494.dasm - Jil.Deserialize.NameAutomata`1[int]:DoCharLinearScan[int](Jil.Deserialize.NameAutomata`1+Data`1[int,int],System.Collections.Generic.List`1[System.Tuple`2[ushort,Sigil.Label]]) (FullOpts)
           2 (1.35 % of base) : 7169.dasm - Jil.Deserialize.NameAutomata`1[int]:DoCharLinearScan[int](Jil.Deserialize.NameAutomata`1+Data`1[int,int],System.Collections.Generic.List`1[System.Tuple`2[ushort,Sigil.Label]]) (FullOpts)
           2 (1.04 % of base) : 30404.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodImplTableRows():this (FullOpts)
           2 (1.02 % of base) : 24114.dasm - (dynamicClass):WriteArrayOfintToXml(System.Runtime.Serialization.XmlWriterDelegator,System.Object,System.Runtime.Serialization.XmlObjectSerializerWriteContext,System.Runtime.Serialization.DataContracts.CollectionDataContract) (FullOpts)
           2 (1.02 % of base) : 23481.dasm - (dynamicClass):WriteArrayOfintToXml(System.Runtime.Serialization.XmlWriterDelegator,System.Object,System.Runtime.Serialization.XmlObjectSerializerWriteContext,System.Runtime.Serialization.DataContracts.CollectionDataContract) (FullOpts)
           2 (0.90 % of base) : 24352.dasm - Microsoft.Extensions.Configuration.ConfigurationBuilder:Build():Microsoft.Extensions.Configuration.IConfigurationRoot:this (FullOpts)
Top method improvements (percentages):
         -69 (-3.56 % of base) : 24602.dasm - ProtoBuf.Meta.MetaType:ValidateReservations():this (FullOpts)
         -69 (-3.56 % of base) : 2586.dasm - ProtoBuf.Meta.MetaType:ValidateReservations():this (FullOpts)
          -7 (-3.00 % of base) : 10788.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
          -7 (-3.00 % of base) : 21268.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
          -5 (-1.43 % of base) : 6279.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
          -5 (-1.43 % of base) : 21538.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
          -7 (-1.36 % of base) : 1301.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (FullOpts)
          -7 (-1.36 % of base) : 26177.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (FullOpts)
         -45 (-1.13 % of base) : 24560.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (FullOpts)
         -45 (-1.13 % of base) : 2536.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (FullOpts)
          -5 (-0.68 % of base) : 14469.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -5 (-0.68 % of base) : 59.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -6 (-0.62 % of base) : 14971.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (FullOpts)
          -6 (-0.62 % of base) : 560.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (FullOpts)
          -5 (-0.62 % of base) : 18125.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (FullOpts)
          -5 (-0.60 % of base) : 880.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (FullOpts)
          -6 (-0.55 % of base) : 20393.dasm - System.TimeZoneInfo:TryGetTimeZone(System.String,ubyte,byref,byref,System.TimeZoneInfo+CachedData,ubyte):int (FullOpts)
          -6 (-0.55 % of base) : 5398.dasm - System.TimeZoneInfo:TryGetTimeZone(System.String,ubyte,byref,byref,System.TimeZoneInfo+CachedData,ubyte):int (FullOpts)
          -3 (-0.53 % of base) : 1576.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (FullOpts)
          -3 (-0.53 % of base) : 20019.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,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: 33240977 (overridden on cmd)
Total bytes of diff: 33240867 (overridden on cmd)
Total bytes of delta: -110 (-0.00 % of base)
    diff is an improvement.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
           5 : 3115.dasm (0.91 % of base)
           5 : 61427.dasm (0.09 % of base)
           4 : 48900.dasm (0.19 % of base)
           4 : 9835.dasm (0.19 % of base)
           3 : 79290.dasm (0.44 % of base)
           3 : 14662.dasm (0.44 % of base)
           2 : 12934.dasm (2.06 % of base)
           2 : 27764.dasm (1.82 % of base)
           2 : 36353.dasm (0.89 % of base)
           2 : 50404.dasm (0.39 % of base)
           2 : 52896.dasm (1.82 % of base)
           2 : 58119.dasm (0.58 % of base)
           2 : 78531.dasm (0.02 % of base)
           2 : 27553.dasm (1.82 % of base)
           2 : 27823.dasm (1.82 % of base)
           2 : 3727.dasm (2.22 % of base)
           2 : 44457.dasm (0.90 % of base)
           2 : 52343.dasm (0.33 % of base)
           2 : 62985.dasm (1.02 % of base)
           2 : 6507.dasm (0.89 % of base)
Top file improvements (bytes):
         -69 : 8386.dasm (-3.56 % of base)
         -45 : 8304.dasm (-1.12 % of base)
          -7 : 48901.dasm (-1.28 % of base)
          -7 : 9839.dasm (-1.03 % of base)
          -6 : 22266.dasm (-0.54 % of base)
          -6 : 34780.dasm (-0.54 % of base)
          -6 : 1607.dasm (-0.57 % of base)
          -6 : 31176.dasm (-0.57 % of base)
          -6 : 35743.dasm (-0.51 % of base)
          -6 : 42814.dasm (-0.55 % of base)
          -5 : 37628.dasm (-0.60 % of base)
          -5 : 49152.dasm (-0.18 % of base)
          -5 : 67344.dasm (-0.46 % of base)
          -5 : 69665.dasm (-0.60 % of base)
          -5 : 153.dasm (-0.64 % of base)
          -5 : 29766.dasm (-0.64 % of base)
          -4 : 19778.dasm (-0.25 % of base)
          -4 : 33920.dasm (-0.25 % of base)
          -3 : 23509.dasm (-0.53 % of base)
          -3 : 8602.dasm (-0.15 % of base)
56 total files with Code Size differences (22 improved, 34 regressed), 4 unchanged.
Top method regressions (bytes):
           5 (0.09 % of base) : 61427.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier0-FullOpts)
           5 (0.91 % of base) : 3115.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (Tier0-FullOpts)
           4 (0.19 % of base) : 48900.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
           4 (0.19 % of base) : 9835.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
           3 (0.44 % of base) : 79290.dasm - System.Threading.TimerQueue:TimerThread() (Tier0-FullOpts)
           3 (0.44 % of base) : 14662.dasm - System.Threading.TimerQueue:TimerThread() (Tier0-FullOpts)
           2 (1.02 % of base) : 62985.dasm - (dynamicClass):WriteArrayOfintToXml(System.Runtime.Serialization.XmlWriterDelegator,System.Object,System.Runtime.Serialization.XmlObjectSerializerWriteContext,System.Runtime.Serialization.DataContracts.CollectionDataContract) (FullOpts)
           2 (0.39 % of base) : 50404.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:WriteObjectWithNullsWithoutConditionalSerialization(System.Type,Sigil.Local,System.Collections.Generic.List`1[System.Collections.Generic.List`1[System.Reflection.MemberInfo]]):this (Tier0-FullOpts)
           2 (0.39 % of base) : 71164.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:WriteObjectWithNullsWithoutConditionalSerialization(System.Type,Sigil.Local,System.Collections.Generic.List`1[System.Collections.Generic.List`1[System.Reflection.MemberInfo]]):this (Tier0-FullOpts)
           2 (0.58 % of base) : 58119.dasm - Microsoft.CodeAnalysis.PEModule:ExtractStringValuesFromAttributes(System.Collections.Generic.List`1[Microsoft.CodeAnalysis.PEModule+AttributeInfo]):Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.String]:this (Tier0-FullOpts)
           2 (0.33 % of base) : 61491.dasm - Microsoft.CodeAnalysis.PEModule:GetFirstUnsupportedCompilerFeatureFromToken(System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.IAttributeNamedArgumentDecoder,int):System.String:this (Tier0-FullOpts)
           2 (0.90 % of base) : 44457.dasm - Microsoft.Extensions.Configuration.ConfigurationBuilder:Build():Microsoft.Extensions.Configuration.IConfigurationRoot:this (Tier0-FullOpts)
           2 (0.90 % of base) : 36493.dasm - Microsoft.Extensions.Configuration.ConfigurationBuilder:Build():Microsoft.Extensions.Configuration.IConfigurationRoot:this (Tier0-FullOpts)
           2 (0.68 % of base) : 12592.dasm - Microsoft.Extensions.Logging.LoggerRuleSelector:Select(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Type,System.String,byref,byref) (Tier0-FullOpts)
           2 (0.33 % of base) : 52343.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:CreateProperties(System.Type,int):System.Collections.Generic.IList`1[Newtonsoft.Json.Serialization.JsonProperty]:this (Tier0-FullOpts)
           2 (1.82 % of base) : 52896.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 27823.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 27764.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserializing(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 52766.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserializing(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 27662.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
Top method improvements (bytes):
         -69 (-3.56 % of base) : 8386.dasm - ProtoBuf.Meta.MetaType:ValidateReservations():this (Tier0-FullOpts)
         -45 (-1.12 % of base) : 8304.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (Tier0-FullOpts)
          -7 (-1.28 % of base) : 48901.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
          -7 (-1.03 % of base) : 9839.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
          -6 (-0.51 % of base) : 35743.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:SetIfMembersHaveConflict(System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]):this (Tier0-FullOpts)
          -6 (-0.55 % of base) : 42814.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:SetIfMembersHaveConflict(System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]):this (Tier0-FullOpts)
          -6 (-0.57 % of base) : 1607.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (Tier0-FullOpts)
          -6 (-0.57 % of base) : 31176.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (Tier0-FullOpts)
          -6 (-0.54 % of base) : 22266.dasm - System.TimeZoneInfo:TryGetTimeZone(System.String,ubyte,byref,byref,System.TimeZoneInfo+CachedData,ubyte):int (Tier0-FullOpts)
          -6 (-0.54 % of base) : 34780.dasm - System.TimeZoneInfo:TryGetTimeZone(System.String,ubyte,byref,byref,System.TimeZoneInfo+CachedData,ubyte):int (Tier0-FullOpts)
          -5 (-0.64 % of base) : 153.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier0-FullOpts)
          -5 (-0.64 % of base) : 29766.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier0-FullOpts)
          -5 (-0.46 % of base) : 67344.dasm - System.IO.File:WriteToFile(System.String,int,System.String,System.Text.Encoding) (Tier0-FullOpts)
          -5 (-0.18 % of base) : 49152.dasm - System.Net.Security.SslStream+<ReadAsyncInternal>d__171`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (Tier0-FullOpts)
          -5 (-0.60 % of base) : 37628.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (Tier0-FullOpts)
          -5 (-0.60 % of base) : 69665.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (Tier0-FullOpts)
          -4 (-0.25 % of base) : 19778.dasm - System.Diagnostics.ActivitySource:CreateActivity(System.String,int,System.Diagnostics.ActivityContext,System.String,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.Collections.Generic.IEnumerable`1[System.Diagnostics.ActivityLink],System.DateTimeOffset,ubyte,int):System.Diagnostics.Activity:this (Tier0-FullOpts)
          -4 (-0.25 % of base) : 33920.dasm - System.Diagnostics.ActivitySource:CreateActivity(System.String,int,System.Diagnostics.ActivityContext,System.String,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.Collections.Generic.IEnumerable`1[System.Diagnostics.ActivityLink],System.DateTimeOffset,ubyte,int):System.Diagnostics.Activity:this (Tier0-FullOpts)
          -3 (-0.15 % of base) : 8602.dasm - ProtoBuf.Internal.Serializers.TypeSerializer`1[System.__Canon]:ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode.EmitRead(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.Local):this (Tier0-FullOpts)
          -3 (-0.53 % of base) : 23509.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (Tier0-FullOpts)
Top method regressions (percentages):
           2 (2.22 % of base) : 3727.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
           2 (2.22 % of base) : 52831.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
           2 (2.06 % of base) : 12934.dasm - System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (Tier0-FullOpts)
           2 (1.82 % of base) : 52896.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 27823.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 27764.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserializing(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 52766.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserializing(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 27662.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 52706.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 27553.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerializing(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 52458.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerializing(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.59 % of base) : 13561.dasm - System.Text.Json.JsonSerializerOptions:GetConverterFromList(System.Type):System.Text.Json.Serialization.JsonConverter:this (Tier0-FullOpts)
           2 (1.59 % of base) : 35960.dasm - System.Text.Json.JsonSerializerOptions:GetConverterFromList(System.Type):System.Text.Json.Serialization.JsonConverter:this (Tier0-FullOpts)
           2 (1.02 % of base) : 62985.dasm - (dynamicClass):WriteArrayOfintToXml(System.Runtime.Serialization.XmlWriterDelegator,System.Object,System.Runtime.Serialization.XmlObjectSerializerWriteContext,System.Runtime.Serialization.DataContracts.CollectionDataContract) (FullOpts)
           5 (0.91 % of base) : 3115.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (Tier0-FullOpts)
           2 (0.90 % of base) : 44457.dasm - Microsoft.Extensions.Configuration.ConfigurationBuilder:Build():Microsoft.Extensions.Configuration.IConfigurationRoot:this (Tier0-FullOpts)
           2 (0.90 % of base) : 36493.dasm - Microsoft.Extensions.Configuration.ConfigurationBuilder:Build():Microsoft.Extensions.Configuration.IConfigurationRoot:this (Tier0-FullOpts)
           2 (0.89 % of base) : 36353.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:DetermineIsCompatibleWithCurrentOptions():this (Tier0-FullOpts)
           2 (0.89 % of base) : 6507.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:DetermineIsCompatibleWithCurrentOptions():this (Tier0-FullOpts)
           2 (0.81 % of base) : 35956.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetTypeInfo(System.Type,System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo:this (Tier0-FullOpts)
Top method improvements (percentages):
         -69 (-3.56 % of base) : 8386.dasm - ProtoBuf.Meta.MetaType:ValidateReservations():this (Tier0-FullOpts)
          -7 (-1.28 % of base) : 48901.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
         -45 (-1.12 % of base) : 8304.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (Tier0-FullOpts)
          -7 (-1.03 % of base) : 9839.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
          -5 (-0.64 % of base) : 153.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier0-FullOpts)
          -5 (-0.64 % of base) : 29766.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier0-FullOpts)
          -5 (-0.60 % of base) : 37628.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (Tier0-FullOpts)
          -5 (-0.60 % of base) : 69665.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (Tier0-FullOpts)
          -6 (-0.57 % of base) : 1607.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (Tier0-FullOpts)
          -6 (-0.57 % of base) : 31176.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (Tier0-FullOpts)
          -6 (-0.55 % of base) : 42814.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:SetIfMembersHaveConflict(System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]):this (Tier0-FullOpts)
          -6 (-0.54 % of base) : 22266.dasm - System.TimeZoneInfo:TryGetTimeZone(System.String,ubyte,byref,byref,System.TimeZoneInfo+CachedData,ubyte):int (Tier0-FullOpts)
          -6 (-0.54 % of base) : 34780.dasm - System.TimeZoneInfo:TryGetTimeZone(System.String,ubyte,byref,byref,System.TimeZoneInfo+CachedData,ubyte):int (Tier0-FullOpts)
          -3 (-0.54 % of base) : 36715.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (Tier0-FullOpts)
          -3 (-0.53 % of base) : 23509.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (Tier0-FullOpts)
          -6 (-0.51 % of base) : 35743.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:SetIfMembersHaveConflict(System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]):this (Tier0-FullOpts)
          -5 (-0.46 % of base) : 67344.dasm - System.IO.File:WriteToFile(System.String,int,System.String,System.Text.Encoding) (Tier0-FullOpts)
          -2 (-0.37 % of base) : 68011.dasm - System.IO.BinaryReader:Read():int:this (Tier0-FullOpts)
          -4 (-0.25 % of base) : 19778.dasm - System.Diagnostics.ActivitySource:CreateActivity(System.String,int,System.Diagnostics.ActivityContext,System.String,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.Collections.Generic.IEnumerable`1[System.Diagnostics.ActivityLink],System.DateTimeOffset,ubyte,int):System.Diagnostics.Activity:this (Tier0-FullOpts)
          -4 (-0.25 % of base) : 33920.dasm - System.Diagnostics.ActivitySource:CreateActivity(System.String,int,System.Diagnostics.ActivityContext,System.String,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.Collections.Generic.IEnumerable`1[System.Diagnostics.ActivityLink],System.DateTimeOffset,ubyte,int):System.Diagnostics.Activity:this (Tier0-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: 14131622 (overridden on cmd)
Total bytes of diff: 14131402 (overridden on cmd)
Total bytes of delta: -220 (-0.00 % of base)
    diff is an improvement.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
           4 : 20392.dasm (0.19 % of base)
           4 : 47737.dasm (0.05 % of base)
           4 : 8734.dasm (0.19 % of base)
           3 : 14723.dasm (0.44 % of base)
           3 : 27377.dasm (0.44 % of base)
           2 : 15048.dasm (0.67 % of base)
           2 : 21208.dasm (0.07 % of base)
           2 : 24247.dasm (1.82 % of base)
           2 : 24519.dasm (2.22 % of base)
           2 : 24564.dasm (1.82 % of base)
           2 : 49400.dasm (1.82 % of base)
           2 : 49442.dasm (1.82 % of base)
           2 : 54908.dasm (0.16 % of base)
           2 : 8232.dasm (1.35 % of base)
           2 : 22692.dasm (2.06 % of base)
           2 : 23704.dasm (0.33 % of base)
           2 : 23858.dasm (1.82 % of base)
           2 : 24380.dasm (1.82 % of base)
           2 : 27440.dasm (0.12 % of base)
           2 : 28171.dasm (1.59 % of base)
Top file improvements (bytes):
         -69 : 16099.dasm (-3.56 % of base)
         -69 : 36154.dasm (-3.56 % of base)
         -45 : 16035.dasm (-1.13 % of base)
         -45 : 36111.dasm (-1.13 % of base)
          -8 : 56129.dasm (-0.10 % of base)
          -7 : 20402.dasm (-1.36 % of base)
          -7 : 52641.dasm (-2.83 % of base)
          -7 : 37677.dasm (-2.83 % of base)
          -7 : 8738.dasm (-1.36 % of base)
          -6 : 11193.dasm (-0.55 % of base)
          -6 : 1451.dasm (-0.62 % of base)
          -6 : 26862.dasm (-0.55 % of base)
          -6 : 35532.dasm (-0.53 % of base)
          -6 : 18771.dasm (-0.62 % of base)
          -6 : 49709.dasm (-0.53 % of base)
          -5 : 33176.dasm (-1.30 % of base)
          -5 : 34027.dasm (-0.60 % of base)
          -5 : 8943.dasm (-0.60 % of base)
          -5 : 133.dasm (-0.68 % of base)
          -5 : 52281.dasm (-0.39 % of base)
59 total files with Code Size differences (24 improved, 35 regressed), 5 unchanged.
Top method regressions (bytes):
           4 (0.05 % of base) : 47737.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (Tier0-FullOpts)
           4 (0.19 % of base) : 20392.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
           4 (0.19 % of base) : 8734.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
           3 (0.44 % of base) : 14723.dasm - System.Threading.TimerQueue:TimerThread() (Tier0-FullOpts)
           3 (0.44 % of base) : 27377.dasm - System.Threading.TimerQueue:TimerThread() (Tier0-FullOpts)
           2 (1.02 % of base) : 46505.dasm - (dynamicClass):WriteArrayOfintToXml(System.Runtime.Serialization.XmlWriterDelegator,System.Object,System.Runtime.Serialization.XmlObjectSerializerWriteContext,System.Runtime.Serialization.DataContracts.CollectionDataContract) (FullOpts)
           2 (1.02 % of base) : 64327.dasm - (dynamicClass):WriteArrayOfintToXml(System.Runtime.Serialization.XmlWriterDelegator,System.Object,System.Runtime.Serialization.XmlObjectSerializerWriteContext,System.Runtime.Serialization.DataContracts.CollectionDataContract) (FullOpts)
           2 (1.35 % of base) : 8232.dasm - Jil.Deserialize.NameAutomata`1[int]:DoCharLinearScan[int](Jil.Deserialize.NameAutomata`1+Data`1[int,int],System.Collections.Generic.List`1[System.Tuple`2[ushort,Sigil.Label]]) (Tier0-FullOpts)
           2 (1.35 % of base) : 41437.dasm - Jil.Deserialize.NameAutomata`1[int]:DoCharLinearScan[int](Jil.Deserialize.NameAutomata`1+Data`1[int,int],System.Collections.Generic.List`1[System.Tuple`2[ushort,Sigil.Label]]) (Tier0-FullOpts)
           2 (1.04 % of base) : 62667.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodImplTableRows():this (Tier0-FullOpts)
           2 (0.90 % of base) : 46517.dasm - Microsoft.Extensions.Configuration.ConfigurationBuilder:Build():Microsoft.Extensions.Configuration.IConfigurationRoot:this (Tier0-FullOpts)
           2 (0.90 % of base) : 51295.dasm - Microsoft.Extensions.Configuration.ConfigurationBuilder:Build():Microsoft.Extensions.Configuration.IConfigurationRoot:this (Tier0-FullOpts)
           2 (0.33 % of base) : 23704.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:CreateProperties(System.Type,int):System.Collections.Generic.IList`1[Newtonsoft.Json.Serialization.JsonProperty]:this (Tier0-FullOpts)
           2 (1.82 % of base) : 24564.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 49442.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 49400.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserializing(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 24380.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserializing(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 24247.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 49349.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 23858.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerializing(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
Top method improvements (bytes):
         -69 (-3.56 % of base) : 16099.dasm - ProtoBuf.Meta.MetaType:ValidateReservations():this (Tier0-FullOpts)
         -69 (-3.56 % of base) : 36154.dasm - ProtoBuf.Meta.MetaType:ValidateReservations():this (Tier0-FullOpts)
         -45 (-1.13 % of base) : 16035.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (Tier0-FullOpts)
         -45 (-1.13 % of base) : 36111.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (Tier0-FullOpts)
          -8 (-0.10 % of base) : 56129.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.Net.WebSockets.ValueWebSocketReceiveResult]:MoveNext():this (Tier0-FullOpts)
          -7 (-2.83 % of base) : 52641.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (Tier0-FullOpts)
          -7 (-2.83 % of base) : 37677.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (Tier0-FullOpts)
          -7 (-1.36 % of base) : 20402.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
          -7 (-1.36 % of base) : 8738.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
          -6 (-0.53 % of base) : 35532.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:SetIfMembersHaveConflict(System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]):this (Tier0-FullOpts)
          -6 (-0.53 % of base) : 49709.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:SetIfMembersHaveConflict(System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]):this (Tier0-FullOpts)
          -6 (-0.62 % of base) : 1451.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (Tier0-FullOpts)
          -6 (-0.62 % of base) : 18771.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (Tier0-FullOpts)
          -6 (-0.55 % of base) : 11193.dasm - System.TimeZoneInfo:TryGetTimeZone(System.String,ubyte,byref,byref,System.TimeZoneInfo+CachedData,ubyte):int (Tier0-FullOpts)
          -6 (-0.55 % of base) : 26862.dasm - System.TimeZoneInfo:TryGetTimeZone(System.String,ubyte,byref,byref,System.TimeZoneInfo+CachedData,ubyte):int (Tier0-FullOpts)
          -5 (-0.68 % of base) : 133.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier0-FullOpts)
          -5 (-0.68 % of base) : 17497.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier0-FullOpts)
          -5 (-0.39 % of base) : 52281.dasm - System.Formats.Tar.TarReader+<DisposeAsync>d__8:MoveNext():this (Tier0-FullOpts)
          -5 (-0.60 % of base) : 34027.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (Tier0-FullOpts)
          -5 (-0.60 % of base) : 8943.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (Tier0-FullOpts)
Top method regressions (percentages):
           2 (2.22 % of base) : 24519.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
           2 (2.22 % of base) : 16911.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (Tier0-FullOpts)
           2 (2.06 % of base) : 22692.dasm - System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (Tier0-FullOpts)
           2 (1.82 % of base) : 24564.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 49442.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 49400.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserializing(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 24380.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnDeserializing(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 24247.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 49349.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerialized(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 23858.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerializing(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.82 % of base) : 49283.dasm - Newtonsoft.Json.Serialization.JsonContract:InvokeOnSerializing(System.Object,System.Runtime.Serialization.StreamingContext):this (Tier0-FullOpts)
           2 (1.59 % of base) : 28171.dasm - System.Text.Json.JsonSerializerOptions:GetConverterFromList(System.Type):System.Text.Json.Serialization.JsonConverter:this (Tier0-FullOpts)
           2 (1.59 % of base) : 48636.dasm - System.Text.Json.JsonSerializerOptions:GetConverterFromList(System.Type):System.Text.Json.Serialization.JsonConverter:this (Tier0-FullOpts)
           2 (1.56 % of base) : 45960.dasm - System.Formats.Tar.TarReader:Dispose():this (Tier0-FullOpts)
           2 (1.35 % of base) : 8232.dasm - Jil.Deserialize.NameAutomata`1[int]:DoCharLinearScan[int](Jil.Deserialize.NameAutomata`1+Data`1[int,int],System.Collections.Generic.List`1[System.Tuple`2[ushort,Sigil.Label]]) (Tier0-FullOpts)
           2 (1.35 % of base) : 41437.dasm - Jil.Deserialize.NameAutomata`1[int]:DoCharLinearScan[int](Jil.Deserialize.NameAutomata`1+Data`1[int,int],System.Collections.Generic.List`1[System.Tuple`2[ushort,Sigil.Label]]) (Tier0-FullOpts)
           2 (1.04 % of base) : 62667.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodImplTableRows():this (Tier0-FullOpts)
           2 (1.02 % of base) : 46505.dasm - (dynamicClass):WriteArrayOfintToXml(System.Runtime.Serialization.XmlWriterDelegator,System.Object,System.Runtime.Serialization.XmlObjectSerializerWriteContext,System.Runtime.Serialization.DataContracts.CollectionDataContract) (FullOpts)
           2 (1.02 % of base) : 64327.dasm - (dynamicClass):WriteArrayOfintToXml(System.Runtime.Serialization.XmlWriterDelegator,System.Object,System.Runtime.Serialization.XmlObjectSerializerWriteContext,System.Runtime.Serialization.DataContracts.CollectionDataContract) (FullOpts)
           2 (0.90 % of base) : 46517.dasm - Microsoft.Extensions.Configuration.ConfigurationBuilder:Build():Microsoft.Extensions.Configuration.IConfigurationRoot:this (Tier0-FullOpts)
Top method improvements (percentages):
         -69 (-3.56 % of base) : 16099.dasm - ProtoBuf.Meta.MetaType:ValidateReservations():this (Tier0-FullOpts)
         -69 (-3.56 % of base) : 36154.dasm - ProtoBuf.Meta.MetaType:ValidateReservations():this (Tier0-FullOpts)
          -7 (-2.83 % of base) : 52641.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (Tier0-FullOpts)
          -7 (-2.83 % of base) : 37677.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (Tier0-FullOpts)
          -7 (-1.36 % of base) : 20402.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
          -7 (-1.36 % of base) : 8738.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (Tier0-FullOpts)
          -5 (-1.30 % of base) : 33176.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (Tier0-FullOpts)
          -5 (-1.30 % of base) : 15615.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (Tier0-FullOpts)
         -45 (-1.13 % of base) : 16035.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (Tier0-FullOpts)
         -45 (-1.13 % of base) : 36111.dasm - ProtoBuf.Meta.MetaType:NormalizeProtoMember(System.Reflection.MemberInfo,int,ubyte,ubyte,System.Collections.Generic.List`1[ProtoBuf.Meta.AttributeMap],int,ubyte,byref,System.Reflection.MemberInfo):ProtoBuf.ProtoMemberAttribute (Tier0-FullOpts)
          -5 (-0.68 % of base) : 133.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier0-FullOpts)
          -5 (-0.68 % of base) : 17497.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier0-FullOpts)
          -6 (-0.62 % of base) : 1451.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (Tier0-FullOpts)
          -6 (-0.62 % of base) : 18771.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (Tier0-FullOpts)
          -5 (-0.60 % of base) : 34027.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (Tier0-FullOpts)
          -5 (-0.60 % of base) : 8943.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (Tier0-FullOpts)
          -6 (-0.55 % of base) : 11193.dasm - System.TimeZoneInfo:TryGetTimeZone(System.String,ubyte,byref,byref,System.TimeZoneInfo+CachedData,ubyte):int (Tier0-FullOpts)
          -6 (-0.55 % of base) : 26862.dasm - System.TimeZoneInfo:TryGetTimeZone(System.String,ubyte,byref,byref,System.TimeZoneInfo+CachedData,ubyte):int (Tier0-FullOpts)
          -6 (-0.53 % of base) : 35532.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:SetIfMembersHaveConflict(System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]):this (Tier0-FullOpts)
          -6 (-0.53 % of base) : 49709.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:SetIfMembersHaveConflict(System.Collections.Generic.List`1[System.Runtime.Serialization.DataContracts.DataMember]):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: 215366523 (overridden on cmd)
Total bytes of diff: 215366729 (overridden on cmd)
Total bytes of delta: 206 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
          80 : 355556.dasm (2.41 % of base)
          80 : 216078.dasm (2.41 % of base)
          37 : 244385.dasm (2.22 % of base)
          27 : 367841.dasm (2.41 % of base)
          19 : 354728.dasm (1.43 % of base)
          19 : 311355.dasm (1.43 % of base)
          19 : 3819.dasm (1.43 % of base)
          19 : 575.dasm (1.43 % of base)
          16 : 306998.dasm (3.02 % of base)
          13 : 319115.dasm (1.31 % of base)
          13 : 371023.dasm (0.98 % of base)
          13 : 402493.dasm (1.31 % of base)
          13 : 405203.dasm (1.31 % of base)
          13 : 355870.dasm (1.31 % of base)
          13 : 357896.dasm (0.98 % of base)
          13 : 376183.dasm (1.31 % of base)
          13 : 377744.dasm (1.31 % of base)
          13 : 405912.dasm (1.31 % of base)
          13 : 360387.dasm (1.31 % of base)
          13 : 347022.dasm (1.31 % of base)
Top file improvements (bytes):
         -40 : 307978.dasm (-1.43 % of base)
         -29 : 308123.dasm (-2.37 % of base)
         -23 : 241263.dasm (-17.97 % of base)
         -23 : 288662.dasm (-2.67 % of base)
         -23 : 371794.dasm (-17.97 % of base)
         -22 : 307929.dasm (-0.21 % of base)
         -20 : 308787.dasm (-0.90 % of base)
         -20 : 308559.dasm (-0.63 % of base)
         -19 : 405537.dasm (-1.57 % of base)
         -18 : 308376.dasm (-0.90 % of base)
         -16 : 406525.dasm (-0.68 % of base)
         -12 : 308535.dasm (-0.81 % of base)
         -12 : 287191.dasm (-0.18 % of base)
         -11 : 288398.dasm (-0.37 % of base)
          -8 : 308702.dasm (-1.03 % of base)
          -8 : 240308.dasm (-1.08 % of base)
          -8 : 311275.dasm (-0.92 % of base)
          -8 : 215987.dasm (-0.62 % of base)
          -8 : 354872.dasm (-0.92 % of base)
          -6 : 308651.dasm (-0.75 % of base)
65 total files with Code Size differences (31 improved, 34 regressed), 6 unchanged.
Top method regressions (bytes):
          80 (2.41 % of base) : 216078.dasm - GetInterfaceMapWithStaticVirtualsAndConstraints.Program:TestEntryPoint() (FullOpts)
          80 (2.41 % of base) : 355556.dasm - GetInterfaceMapWithStaticVirtualsAndConstraints.Program:TestEntryPoint() (Tier0-FullOpts)
          37 (2.22 % of base) : 244385.dasm - System.Xml.Xsl.IlGen.XmlILModule:DefineMethod(System.String,System.Type,System.Type[],System.String[],int):System.Reflection.MethodInfo:this (FullOpts)
          27 (2.41 % of base) : 367841.dasm - System.Reflection.AssemblyNameParser:GetNextToken(byref):int:this (Tier1)
          19 (1.43 % of base) : 3819.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (FullOpts)
          19 (1.43 % of base) : 575.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (FullOpts)
          19 (1.43 % of base) : 354728.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (Tier0-FullOpts)
          19 (1.43 % of base) : 311355.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (Tier0-FullOpts)
          16 (3.02 % of base) : 306998.dasm - Program:ManipulateListOfInt():ubyte (FullOpts)
          13 (1.31 % of base) : 319115.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (0.98 % of base) : 371023.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 402493.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 405203.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 355870.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (0.98 % of base) : 357896.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 376183.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 377744.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 405912.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 360387.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 347022.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
Top method improvements (bytes):
         -40 (-1.43 % of base) : 307978.dasm - Microsoft.Build.Evaluation.Evaluator`4[System.__Canon,System.__Canon,System.__Canon,System.__Canon]:PerformDepthFirstPass(Microsoft.Build.Construction.ProjectRootElement):this (FullOpts)
         -29 (-2.37 % of base) : 308123.dasm - Microsoft.Build.Execution.ProjectInstance:CreateItemsSnapshot(System.Collections.Generic.ICollection`1[Microsoft.Build.Evaluation.ProjectItem],int,ubyte):System.Collections.Generic.Dictionary`2[Microsoft.Build.Evaluation.ProjectItem,Microsoft.Build.Execution.ProjectItemInstance]:this (FullOpts)
         -23 (-2.67 % of base) : 288662.dasm - ILCompiler.PEWriter.SectionBuilder:SerializeRelocationSection(System.Reflection.PortableExecutable.SectionLocation):System.Reflection.Metadata.BlobBuilder:this (FullOpts)
         -23 (-17.97 % of base) : 241263.dasm - Program:M49() (FullOpts)
         -23 (-17.97 % of base) : 371794.dasm - Program:M49() (Tier0-FullOpts)
         -22 (-0.21 % of base) : 307929.dasm - Microsoft.Build.Evaluation.Evaluator`4[System.__Canon,System.__Canon,System.__Canon,System.__Canon]:Evaluate():this (FullOpts)
         -20 (-0.63 % of base) : 308559.dasm - Microsoft.Build.BackEnd.TargetEntry+<ExecuteTarget>d__44:MoveNext():this (FullOpts)
         -20 (-0.90 % of base) : 308787.dasm - R2RTest.Buckets:WriteToStream(System.IO.StreamWriter,ubyte):this (FullOpts)
         -19 (-1.57 % of base) : 405537.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (Tier0-FullOpts)
         -18 (-0.90 % of base) : 308376.dasm - Microsoft.Build.BackEnd.Scheduler:DumpSchedulerState():this (FullOpts)
         -16 (-0.68 % of base) : 406525.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
         -12 (-0.18 % of base) : 287191.dasm - ILCompiler.Program:RunSingleCompilation(System.Collections.Generic.Dictionary`2[System.String,System.String],ILCompiler.InstructionSetSupport,System.String,System.Collections.Generic.Dictionary`2[System.String,System.String],System.Collections.Generic.HashSet`1[Internal.TypeSystem.ModuleDesc],ILCompiler.ReadyToRunCompilerContext,ILCompiler.Logger):this (FullOpts)
         -12 (-0.81 % of base) : 308535.dasm - Microsoft.Build.BackEnd.TargetBuilder+<PushTargets>d__26:MoveNext():this (FullOpts)
         -11 (-0.37 % of base) : 288398.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitPortableExecutable():this (FullOpts)
          -8 (-1.03 % of base) : 308702.dasm - Microsoft.Build.BackEnd.Logging.LoggingService:ShutdownComponent():this (FullOpts)
          -8 (-0.62 % of base) : 215987.dasm - StackFrame:Validate(System.String,StackFrame[]) (FullOpts)
          -8 (-1.08 % of base) : 240308.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -8 (-0.92 % of base) : 311275.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Instrumented Tier1)
          -8 (-0.92 % of base) : 354872.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Instrumented Tier1)
          -6 (-0.75 % of base) : 308651.dasm - Microsoft.Build.BackEnd.SchedulingPlan:WritePlan(int,Microsoft.Build.BackEnd.Logging.ILoggingService,Microsoft.Build.Framework.BuildEventContext):this (FullOpts)
Top method regressions (percentages):
          16 (3.02 % of base) : 306998.dasm - Program:ManipulateListOfInt():ubyte (FullOpts)
          27 (2.41 % of base) : 367841.dasm - System.Reflection.AssemblyNameParser:GetNextToken(byref):int:this (Tier1)
          80 (2.41 % of base) : 216078.dasm - GetInterfaceMapWithStaticVirtualsAndConstraints.Program:TestEntryPoint() (FullOpts)
          80 (2.41 % of base) : 355556.dasm - GetInterfaceMapWithStaticVirtualsAndConstraints.Program:TestEntryPoint() (Tier0-FullOpts)
          37 (2.22 % of base) : 244385.dasm - System.Xml.Xsl.IlGen.XmlILModule:DefineMethod(System.String,System.Type,System.Type[],System.String[],int):System.Reflection.MethodInfo:this (FullOpts)
          19 (1.43 % of base) : 3819.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (FullOpts)
          19 (1.43 % of base) : 575.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (FullOpts)
          19 (1.43 % of base) : 311355.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (Tier0-FullOpts)
          19 (1.43 % of base) : 354728.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (Tier0-FullOpts)
          13 (1.31 % of base) : 319115.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 402493.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 405203.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 355870.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 376183.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 377744.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 405912.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 360387.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 347022.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 359116.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
          13 (1.31 % of base) : 359940.dasm - System.IO.BinaryReader:ReadString():System.String:this (Instrumented Tier1)
Top method improvements (percentages):
         -23 (-17.97 % of base) : 241263.dasm - Program:M49() (FullOpts)
         -23 (-17.97 % of base) : 371794.dasm - Program:M49() (Tier0-FullOpts)
         -23 (-2.67 % of base) : 288662.dasm - ILCompiler.PEWriter.SectionBuilder:SerializeRelocationSection(System.Reflection.PortableExecutable.SectionLocation):System.Reflection.Metadata.BlobBuilder:this (FullOpts)
         -29 (-2.37 % of base) : 308123.dasm - Microsoft.Build.Execution.ProjectInstance:CreateItemsSnapshot(System.Collections.Generic.ICollection`1[Microsoft.Build.Evaluation.ProjectItem],int,ubyte):System.Collections.Generic.Dictionary`2[Microsoft.Build.Evaluation.ProjectItem,Microsoft.Build.Execution.ProjectItemInstance]:this (FullOpts)
         -19 (-1.57 % of base) : 405537.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (Tier0-FullOpts)
         -40 (-1.43 % of base) : 307978.dasm - Microsoft.Build.Evaluation.Evaluator`4[System.__Canon,System.__Canon,System.__Canon,System.__Canon]:PerformDepthFirstPass(Microsoft.Build.Construction.ProjectRootElement):this (FullOpts)
          -8 (-1.08 % of base) : 240308.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -8 (-1.03 % of base) : 308702.dasm - Microsoft.Build.BackEnd.Logging.LoggingService:ShutdownComponent():this (FullOpts)
          -3 (-1.01 % of base) : 238200.dasm - Mutate:TestEntryPoint():int (FullOpts)
          -4 (-0.99 % of base) : 170236.dasm - System.Runtime.InteropServices.ComEventsSink:FromRuntimeCallableWrapper(System.Object,System.Guid,ubyte):System.Runtime.InteropServices.ComEventsSink (FullOpts)
          -8 (-0.92 % of base) : 311275.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Instrumented Tier1)
          -8 (-0.92 % of base) : 354872.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Instrumented Tier1)
         -20 (-0.90 % of base) : 308787.dasm - R2RTest.Buckets:WriteToStream(System.IO.StreamWriter,ubyte):this (FullOpts)
         -18 (-0.90 % of base) : 308376.dasm - Microsoft.Build.BackEnd.Scheduler:DumpSchedulerState():this (FullOpts)
         -12 (-0.81 % of base) : 308535.dasm - Microsoft.Build.BackEnd.TargetBuilder+<PushTargets>d__26:MoveNext():this (FullOpts)
          -6 (-0.75 % of base) : 308651.dasm - Microsoft.Build.BackEnd.SchedulingPlan:WritePlan(int,Microsoft.Build.BackEnd.Logging.ILoggingService,Microsoft.Build.Framework.BuildEventContext):this (FullOpts)
         -16 (-0.68 % of base) : 406525.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (Instrumented Tier1)
          -5 (-0.68 % of base) : 243589.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -5 (-0.68 % of base) : 288740.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -5 (-0.68 % of base) : 308275.dasm - Microsoft.Build.BackEnd.Scheduler:DumpConfigurations():this (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: 36012344 (overridden on cmd)
Total bytes of diff: 36012253 (overridden on cmd)
Total bytes of delta: -91 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
           8 : 22498.dasm (0.15 % of base)
           4 : 16821.dasm (0.22 % of base)
           3 : 23434.dasm (0.43 % of base)
           2 : 20871.dasm (0.41 % of base)
           2 : 22492.dasm (0.42 % of base)
           2 : 22979.dasm (0.30 % of base)
           2 : 112854.dasm (0.02 % of base)
           2 : 16827.dasm (0.44 % of base)
           2 : 21006.dasm (0.11 % of base)
           2 : 23076.dasm (2.04 % of base)
           2 : 6676.dasm (0.17 % of base)
           1 : 17650.dasm (0.19 % of base)
           1 : 20793.dasm (0.21 % of base)
Top file improvements (bytes):
         -13 : 23518.dasm (-1.62 % of base)
         -11 : 12390.dasm (-2.46 % of base)
         -11 : 72634.dasm (-0.89 % of base)
          -9 : 230068.dasm (-1.77 % of base)
          -9 : 231222.dasm (-0.19 % of base)
          -9 : 231291.dasm (-0.20 % of base)
          -7 : 206338.dasm (-0.53 % of base)
          -7 : 251755.dasm (-0.89 % of base)
          -6 : 22297.dasm (-1.00 % of base)
          -6 : 230073.dasm (-1.05 % of base)
          -5 : 17652.dasm (-0.69 % of base)
          -5 : 22364.dasm (-1.19 % of base)
          -4 : 16966.dasm (-0.40 % of base)
          -4 : 113490.dasm (-0.12 % of base)
          -4 : 260275.dasm (-0.32 % of base)
          -4 : 262891.dasm (-0.32 % of base)
          -4 : 202288.dasm (-0.81 % of base)
          -4 : 23517.dasm (-1.61 % of base)
          -2 : 22885.dasm (-0.75 % of base)
32 total files with Code Size differences (19 improved, 13 regressed), 1 unchanged.
Top method regressions (bytes):
           8 (0.15 % of base) : 22498.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (FullOpts)
           4 (0.22 % of base) : 16821.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (FullOpts)
           3 (0.43 % of base) : 23434.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)
           2 (0.42 % of base) : 22492.dasm - System.Diagnostics.Tracing.EventSource:EnsureDescriptorsInitialized():this (FullOpts)
           2 (2.04 % of base) : 23076.dasm - System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (FullOpts)
           2 (0.11 % of base) : 21006.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (FullOpts)
           2 (0.41 % of base) : 20871.dasm - System.Runtime.InteropServices.PosixSignalRegistration:HandlerRoutine(int):int (FullOpts)
           2 (0.44 % of base) : 16827.dasm - System.Threading.Tasks.Task:GetDelegatesFromContinuationObject(System.Object):System.Delegate[] (FullOpts)
           2 (0.17 % of base) : 6676.dasm - System.Threading.Tasks.Task+WhenAllPromise:Invoke(System.Threading.Tasks.Task):this (FullOpts)
           2 (0.30 % of base) : 22979.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
           2 (0.02 % of base) : 112854.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)
           1 (0.19 % of base) : 17650.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (FullOpts)
           1 (0.21 % of base) : 20793.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (FullOpts)
Top method improvements (bytes):
         -13 (-1.62 % of base) : 23518.dasm - System.Diagnostics.Tracing.CounterGroup:PollForValues() (FullOpts)
         -11 (-0.89 % of base) : 72634.dasm - Microsoft.VisualBasic.CompilerServices.ConversionResolution:ResolveConversion(System.Type,System.Type,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],ubyte,byref):System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method] (FullOpts)
         -11 (-2.46 % of base) : 12390.dasm - System.Diagnostics.Tracing.EventSource:GetSources():System.Collections.Generic.IEnumerable`1[System.Diagnostics.Tracing.EventSource] (FullOpts)
          -9 (-0.19 % of base) : 231222.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.__Canon]:MoveNext():this (FullOpts)
          -9 (-0.20 % of base) : 231291.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.Net.WebSockets.ValueWebSocketReceiveResult]:MoveNext():this (FullOpts)
          -9 (-1.77 % of base) : 230068.dasm - System.Xml.Linq.Extensions+<GetDescendantNodes>d__22`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -7 (-0.53 % of base) : 206338.dasm - System.Data.ProviderBase.DbConnectionPool:TryGetConnection(System.Data.Common.DbConnection,uint,ubyte,ubyte,System.Data.Common.DbConnectionOptions,byref):ubyte:this (FullOpts)
          -7 (-0.89 % of base) : 251755.dasm - System.Data.ProviderBase.DbConnectionPool:TryGetConnection(System.Data.Common.DbConnection,uint,ubyte,ubyte,System.Data.Common.DbConnectionOptions,byref):ubyte:this (FullOpts)
          -6 (-1.00 % of base) : 22297.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (FullOpts)
          -6 (-1.05 % of base) : 230073.dasm - System.Xml.Linq.Extensions+<GetDescendants>d__23`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -5 (-0.69 % of base) : 17652.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -5 (-1.19 % of base) : 22364.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
          -4 (-0.32 % of base) : 260275.dasm - System.Configuration.BaseConfigurationRecord:Evaluate(System.Configuration.FactoryRecord,System.Configuration.SectionRecord,System.Object,ubyte,ubyte,byref,byref):ubyte:this (FullOpts)
          -4 (-0.32 % of base) : 262891.dasm - System.Configuration.BaseConfigurationRecord:Evaluate(System.Configuration.FactoryRecord,System.Configuration.SectionRecord,System.Object,ubyte,ubyte,byref,byref):ubyte:this (FullOpts)
          -4 (-1.61 % of base) : 23517.dasm - System.Diagnostics.Tracing.CounterGroup:ResetCounters():this (FullOpts)
          -4 (-0.81 % of base) : 202288.dasm - System.Speech.Internal.Synthesis.SsmlParser:ParseAudio(System.Xml.XmlReader,System.Speech.Internal.Synthesis.ISsmlParser,int,System.Speech.Internal.Synthesis.SsmlParser+SsmlAttributes,ubyte) (FullOpts)
          -4 (-0.40 % of base) : 16966.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (FullOpts)
          -4 (-0.12 % of base) : 113490.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
          -2 (-0.75 % of base) : 22885.dasm - System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
Top method regressions (percentages):
           2 (2.04 % of base) : 23076.dasm - System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (FullOpts)
           2 (0.44 % of base) : 16827.dasm - System.Threading.Tasks.Task:GetDelegatesFromContinuationObject(System.Object):System.Delegate[] (FullOpts)
           3 (0.43 % of base) : 23434.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)
           2 (0.42 % of base) : 22492.dasm - System.Diagnostics.Tracing.EventSource:EnsureDescriptorsInitialized():this (FullOpts)
           2 (0.41 % of base) : 20871.dasm - System.Runtime.InteropServices.PosixSignalRegistration:HandlerRoutine(int):int (FullOpts)
           2 (0.30 % of base) : 22979.dasm - System.Threading.Tasks.TaskExceptionHolder:AddFaultException(System.Object):this (FullOpts)
           4 (0.22 % of base) : 16821.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (FullOpts)
           1 (0.21 % of base) : 20793.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (FullOpts)
           1 (0.19 % of base) : 17650.dasm - System.Diagnostics.Tracing.EventListener:DisposeOnShutdown() (FullOpts)
           2 (0.17 % of base) : 6676.dasm - System.Threading.Tasks.Task+WhenAllPromise:Invoke(System.Threading.Tasks.Task):this (FullOpts)
           8 (0.15 % of base) : 22498.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (FullOpts)
           2 (0.11 % of base) : 21006.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (FullOpts)
           2 (0.02 % of base) : 112854.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)
Top method improvements (percentages):
         -11 (-2.46 % of base) : 12390.dasm - System.Diagnostics.Tracing.EventSource:GetSources():System.Collections.Generic.IEnumerable`1[System.Diagnostics.Tracing.EventSource] (FullOpts)
          -9 (-1.77 % of base) : 230068.dasm - System.Xml.Linq.Extensions+<GetDescendantNodes>d__22`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -13 (-1.62 % of base) : 23518.dasm - System.Diagnostics.Tracing.CounterGroup:PollForValues() (FullOpts)
          -4 (-1.61 % of base) : 23517.dasm - System.Diagnostics.Tracing.CounterGroup:ResetCounters():this (FullOpts)
          -5 (-1.19 % of base) : 22364.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
          -6 (-1.05 % of base) : 230073.dasm - System.Xml.Linq.Extensions+<GetDescendants>d__23`1[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -6 (-1.00 % of base) : 22297.dasm - System.Buffers.SharedArrayPoolPartitions+Partition:Trim(int,int,int,int):this (FullOpts)
         -11 (-0.89 % of base) : 72634.dasm - Microsoft.VisualBasic.CompilerServices.ConversionResolution:ResolveConversion(System.Type,System.Type,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],ubyte,byref):System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method] (FullOpts)
          -7 (-0.89 % of base) : 251755.dasm - System.Data.ProviderBase.DbConnectionPool:TryGetConnection(System.Data.Common.DbConnection,uint,ubyte,ubyte,System.Data.Common.DbConnectionOptions,byref):ubyte:this (FullOpts)
          -4 (-0.81 % of base) : 202288.dasm - System.Speech.Internal.Synthesis.SsmlParser:ParseAudio(System.Xml.XmlReader,System.Speech.Internal.Synthesis.ISsmlParser,int,System.Speech.Internal.Synthesis.SsmlParser+SsmlAttributes,ubyte) (FullOpts)
          -2 (-0.75 % of base) : 22885.dasm - System.Globalization.CalendarData:EnumCalendarInfoCallback(uint,int) (FullOpts)
          -5 (-0.69 % of base) : 17652.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -7 (-0.53 % of base) : 206338.dasm - System.Data.ProviderBase.DbConnectionPool:TryGetConnection(System.Data.Common.DbConnection,uint,ubyte,ubyte,System.Data.Common.DbConnectionOptions,byref):ubyte:this (FullOpts)
          -4 (-0.40 % of base) : 16966.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (FullOpts)
          -4 (-0.32 % of base) : 262891.dasm - System.Configuration.BaseConfigurationRecord:Evaluate(System.Configuration.FactoryRecord,System.Configuration.SectionRecord,System.Object,ubyte,ubyte,byref,byref):ubyte:this (FullOpts)
          -4 (-0.32 % of base) : 260275.dasm - System.Configuration.BaseConfigurationRecord:Evaluate(System.Configuration.FactoryRecord,System.Configuration.SectionRecord,System.Object,ubyte,ubyte,byref,byref):ubyte:this (FullOpts)
          -9 (-0.20 % of base) : 231291.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.Net.WebSockets.ValueWebSocketReceiveResult]:MoveNext():this (FullOpts)
          -9 (-0.19 % of base) : 231222.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.__Canon]:MoveNext():this (FullOpts)
          -4 (-0.12 % of base) : 113490.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
32 total methods with Code Size differences (19 improved, 13 regressed).
  
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: 51340369 (overridden on cmd)
Total bytes of diff: 51339248 (overridden on cmd)
Total bytes of delta: -1121 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
          40 : 201033.dasm (1.40 % of base)
          37 : 175323.dasm (2.24 % of base)
          29 : 277684.dasm (4.90 % of base)
          26 : 196392.dasm (0.55 % of base)
          20 : 296438.dasm (4.30 % of base)
          19 : 287556.dasm (1.43 % of base)
          19 : 196464.dasm (1.13 % of base)
          12 : 167573.dasm (1.43 % of base)
          12 : 254154.dasm (1.66 % of base)
          10 : 299541.dasm (1.79 % of base)
           7 : 252083.dasm (0.46 % of base)
           7 : 208062.dasm (0.44 % of base)
           6 : 110850.dasm (0.80 % of base)
           6 : 149336.dasm (0.80 % of base)
           6 : 155663.dasm (0.34 % of base)
           6 : 290233.dasm (1.92 % of base)
           6 : 181557.dasm (1.50 % of base)
           6 : 289341.dasm (1.92 % of base)
           5 : 208069.dasm (0.22 % of base)
           3 : 177444.dasm (0.06 % of base)
Top file improvements (bytes):
         -98 : 298992.dasm (-2.68 % of base)
         -35 : 68534.dasm (-1.98 % of base)
         -32 : 320572.dasm (-0.51 % of base)
         -29 : 203245.dasm (-2.30 % of base)
         -28 : 301086.dasm (-2.20 % of base)
         -28 : 294513.dasm (-1.05 % of base)
         -27 : 203467.dasm (-1.35 % of base)
         -25 : 207977.dasm (-1.83 % of base)
         -24 : 84473.dasm (-1.21 % of base)
         -23 : 180406.dasm (-2.61 % of base)
         -23 : 289105.dasm (-2.70 % of base)
         -22 : 207585.dasm (-0.66 % of base)
         -22 : 237902.dasm (-7.86 % of base)
         -22 : 72396.dasm (-0.80 % of base)
         -21 : 233682.dasm (-2.42 % of base)
         -20 : 271055.dasm (-1.02 % of base)
         -19 : 289103.dasm (-1.42 % of base)
         -18 : 203825.dasm (-0.91 % of base)
         -18 : 307365.dasm (-0.89 % of base)
         -18 : 127201.dasm (-0.35 % of base)
71 total files with Code Size differences (38 improved, 33 regressed), 10 unchanged.
Top method regressions (bytes):
          40 (1.40 % of base) : 201033.dasm - Microsoft.Build.Construction.SolutionFile:ParseSolution():this (FullOpts)
          37 (2.24 % of base) : 175323.dasm - System.Xml.Xsl.IlGen.XmlILModule:DefineMethod(System.String,System.Type,System.Type[],System.String[],int):System.Reflection.MethodInfo:this (FullOpts)
          29 (4.90 % of base) : 277684.dasm - System.Security.Cryptography.XmlKeyHelper:WriteCryptoBinary(System.String,System.ReadOnlySpan`1[ubyte],System.Text.StringBuilder) (FullOpts)
          26 (0.55 % of base) : 196392.dasm - R2RDump.Extensions:WriteTo(ILCompiler.Reflection.ReadyToRun.DebugInfo,System.IO.TextWriter,R2RDump.DumpModel) (FullOpts)
          20 (4.30 % of base) : 296438.dasm - Microsoft.Extensions.Caching.Memory.MemoryCache:Sum():System.ValueTuple`2[long,long]:this (FullOpts)
          19 (1.13 % of base) : 196464.dasm - R2RDump.TextDumper:DumpDisasm(ILCompiler.Reflection.ReadyToRun.RuntimeFunction,int):this (FullOpts)
          19 (1.43 % of base) : 287556.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (FullOpts)
          12 (1.66 % of base) : 254154.dasm - System.Net.Mail.SmtpClient:GetFileMailWriter(System.String):System.Net.Mail.MailWriter:this (FullOpts)
          12 (1.43 % of base) : 167573.dasm - System.Xml.XmlWellFormedWriter:GeneratePrefix():System.String:this (FullOpts)
          10 (1.79 % of base) : 299541.dasm - Microsoft.Win32.RegistryKey:GetSubKeyNames():System.String[]:this (FullOpts)
           7 (0.44 % of base) : 208062.dasm - R2RTest.BuildFolder:WriteJitStatistics(System.IO.TextWriter,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.HashSet`1[System.String]][],System.Collections.Generic.IEnumerable`1[R2RTest.CompilerRunner]) (FullOpts)
           7 (0.46 % of base) : 252083.dasm - System.Net.Http.Http2Connection:ProcessSettingsFrame(System.Net.Http.Http2Connection+FrameHeader,ubyte):this (FullOpts)
           6 (1.50 % of base) : 181557.dasm - Internal.TypeSystem.Ecma.MutableModule+Cache:ResetEmitter():this (FullOpts)
           6 (0.34 % of base) : 155663.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:FinalizeCustomAttributeTableRows():this (FullOpts)
           6 (0.80 % of base) : 110850.dasm - Microsoft.CodeAnalysis.PEModule:GetMemberNotNullAttributeValues(System.Reflection.Metadata.EntityHandle):System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
           6 (0.80 % of base) : 149336.dasm - Microsoft.CodeAnalysis.PEModule:GetMemberNotNullAttributeValues(System.Reflection.Metadata.EntityHandle):System.Collections.Immutable.ImmutableArray`1[System.String]:this (FullOpts)
           6 (1.92 % of base) : 289341.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[System.__Canon,System.Nullable`1[int]]:AddExceptions(System.Collections.Generic.List`1[System.Exception]):this (FullOpts)
           6 (1.92 % of base) : 290233.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[System.__Canon]:AddExceptions(System.Collections.Generic.List`1[System.Exception]):this (FullOpts)
           5 (0.22 % of base) : 208069.dasm - R2RTest.BuildFolderSet:Compile():ubyte:this (FullOpts)
           3 (1.07 % of base) : 188319.dasm - Microsoft.Extensions.DependencyInjection.DependencyInjectionEventSource:OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this (FullOpts)
Top method improvements (bytes):
         -98 (-2.68 % of base) : 298992.dasm - Microsoft.Extensions.Options.DataAnnotationValidateOptions`1[System.__Canon]:TryValidateOptions(System.Object,System.String,System.Collections.Generic.List`1[System.ComponentModel.DataAnnotations.ValidationResult],byref,byref):ubyte (FullOpts)
         -35 (-1.98 % of base) : 68534.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) (FullOpts)
         -32 (-0.51 % of base) : 320572.dasm - TestRunner:DoWorkStress():int:this (FullOpts)
         -29 (-2.30 % of base) : 203245.dasm - Microsoft.Build.Execution.ProjectInstance:CreateItemsSnapshot(System.Collections.Generic.ICollection`1[Microsoft.Build.Evaluation.ProjectItem],int,ubyte):System.Collections.Generic.Dictionary`2[Microsoft.Build.Evaluation.ProjectItem,Microsoft.Build.Execution.ProjectItemInstance]:this (FullOpts)
         -28 (-2.20 % of base) : 301086.dasm - System.Composition.Convention.PartConventionBuilder:BuildPropertyAttributes(System.Type,byref):this (FullOpts)
         -28 (-1.05 % of base) : 294513.dasm - Xunit.Sdk.XunitTestAssemblyRunner+<RunTestCollectionsAsync>d__14:MoveNext():this (FullOpts)
         -27 (-1.35 % of base) : 203467.dasm - Microsoft.Build.BackEnd.PropertyParser:GetTableWithEscaping(Microsoft.Build.BackEnd.TaskLoggingHelper,System.String,System.String,System.String[],byref):ubyte (FullOpts)
         -25 (-1.83 % of base) : 207977.dasm - Microsoft.Build.BackEnd.NodeProviderOutOfProcBase+NodeContext+<WaitForExitAsync>d__27:MoveNext():this (FullOpts)
         -24 (-1.21 % of base) : 84473.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.StackScheduler:FilterValidStackLocals(System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.CodeGen.StackScheduler+LocalDefUseInfo]):System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.LocalSymbol,Microsoft.CodeAnalysis.VisualBasic.CodeGen.StackScheduler+LocalDefUseInfo] (FullOpts)
         -23 (-2.61 % of base) : 180406.dasm - ILCompiler.PEWriter.SectionBuilder:SerializeRelocationSection(System.Reflection.PortableExecutable.SectionLocation):System.Reflection.Metadata.BlobBuilder:this (FullOpts)
         -23 (-2.70 % of base) : 289105.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[ubyte]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
         -22 (-0.66 % of base) : 207585.dasm - Microsoft.Build.BackEnd.TargetEntry+<ExecuteTarget>d__44:MoveNext():this (FullOpts)
         -22 (-0.80 % of base) : 72396.dasm - System.Data.DataTable:ReadXmlSchema(System.Xml.XmlReader,ubyte):this (FullOpts)
         -22 (-7.86 % of base) : 237902.dasm - System.IO.Packaging.PackagePart:Close():this (FullOpts)
         -21 (-2.42 % of base) : 233682.dasm - System.DirectoryServices.AccountManagement.SAMStoreCtx:UpdateGroupMembership(System.DirectoryServices.AccountManagement.Principal,System.DirectoryServices.DirectoryEntry,System.DirectoryServices.AccountManagement.NetCred,int) (FullOpts)
         -20 (-1.02 % of base) : 271055.dasm - System.Number:<NumberToBigInteger>g__DivideAndConquer|11_1(byref,byref,byref):int (FullOpts)
         -19 (-1.42 % of base) : 289103.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[ubyte]:RetrievePostponedItemsGreedyBounded(ubyte):this (FullOpts)
         -18 (-0.91 % of base) : 203825.dasm - Microsoft.Build.BackEnd.Scheduler:DumpSchedulerState():this (FullOpts)
         -18 (-0.35 % of base) : 127201.dasm - Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest:ParseProviderEvents(System.Func`2[Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData,int],ubyte):this (FullOpts)
         -18 (-0.89 % of base) : 307365.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[System.__Canon,System.Nullable`1[int]]:MoveNext():this (FullOpts)
Top method regressions (percentages):
          29 (4.90 % of base) : 277684.dasm - System.Security.Cryptography.XmlKeyHelper:WriteCryptoBinary(System.String,System.ReadOnlySpan`1[ubyte],System.Text.StringBuilder) (FullOpts)
          20 (4.30 % of base) : 296438.dasm - Microsoft.Extensions.Caching.Memory.MemoryCache:Sum():System.ValueTuple`2[long,long]:this (FullOpts)
          37 (2.24 % of base) : 175323.dasm - System.Xml.Xsl.IlGen.XmlILModule:DefineMethod(System.String,System.Type,System.Type[],System.String[],int):System.Reflection.MethodInfo:this (FullOpts)
           6 (1.92 % of base) : 289341.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1+BroadcastingSourceCore`1[System.__Canon,System.Nullable`1[int]]:AddExceptions(System.Collections.Generic.List`1[System.Exception]):this (FullOpts)
           6 (1.92 % of base) : 290233.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[System.__Canon]:AddExceptions(System.Collections.Generic.List`1[System.Exception]):this (FullOpts)
          10 (1.79 % of base) : 299541.dasm - Microsoft.Win32.RegistryKey:GetSubKeyNames():System.String[]:this (FullOpts)
           2 (1.74 % of base) : 237253.dasm - System.IO.Compression.ZipGenericExtraField:WriteAllBlocks(System.Collections.Generic.List`1[System.IO.Compression.ZipGenericExtraField],System.IO.Stream) (FullOpts)
          12 (1.66 % of base) : 254154.dasm - System.Net.Mail.SmtpClient:GetFileMailWriter(System.String):System.Net.Mail.MailWriter:this (FullOpts)
           2 (1.55 % of base) : 249980.dasm - System.Net.HttpListenerResponse:FreePinnedHeaders(System.Collections.Generic.List`1[System.Runtime.InteropServices.GCHandle]) (FullOpts)
           6 (1.50 % of base) : 181557.dasm - Internal.TypeSystem.Ecma.MutableModule+Cache:ResetEmitter():this (FullOpts)
          12 (1.43 % of base) : 167573.dasm - System.Xml.XmlWellFormedWriter:GeneratePrefix():System.String:this (FullOpts)
          19 (1.43 % of base) : 287556.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (FullOpts)
          40 (1.40 % of base) : 201033.dasm - Microsoft.Build.Construction.SolutionFile:ParseSolution():this (FullOpts)
           2 (1.33 % of base) : 269518.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeEncMapTable(System.Reflection.Metadata.BlobBuilder):this (FullOpts)
           2 (1.28 % of base) : 298836.dasm - Microsoft.Extensions.Logging.LoggerFactory:Dispose():this (FullOpts)
          19 (1.13 % of base) : 196464.dasm - R2RDump.TextDumper:DumpDisasm(ILCompiler.Reflection.ReadyToRun.RuntimeFunction,int):this (FullOpts)
           2 (1.09 % of base) : 205828.dasm - Microsoft.Build.Shared.CollectionHelpers:RemoveNulls[ubyte](System.Collections.Generic.List`1[ubyte]):System.Collections.Generic.List`1[ubyte] (FullOpts)
           3 (1.07 % of base) : 188319.dasm - Microsoft.Extensions.DependencyInjection.DependencyInjectionEventSource:OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this (FullOpts)
           2 (1.04 % of base) : 147006.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodImplTableRows():this (FullOpts)
           2 (1.04 % of base) : 108422.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodImplTableRows():this (FullOpts)
Top method improvements (percentages):
         -22 (-7.86 % of base) : 237902.dasm - System.IO.Packaging.PackagePart:Close():this (FullOpts)
         -11 (-4.35 % of base) : 201875.dasm - Microsoft.Build.Evaluation.ProjectCollection:RemoveGlobalProperty(System.String):ubyte:this (FullOpts)
         -10 (-4.03 % of base) : 253217.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
         -12 (-3.97 % of base) : 282284.dasm - System.Speech.Internal.Synthesis.VoiceSynthesis:RemoveLexicon(System.Uri):this (FullOpts)
          -6 (-3.82 % of base) : 290083.dasm - System.Threading.Tasks.Dataflow.Internal.Common:ReleaseAllPostponedMessages[ubyte](System.Threading.Tasks.Dataflow.ITargetBlock`1[ubyte],System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Threading.Tasks.Dataflow.DataflowMessageHeader],byref) (FullOpts)
          -8 (-3.57 % of base) : 295280.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (FullOpts)
         -13 (-3.37 % of base) : 193866.dasm - Newtonsoft.Json.Linq.JsonPath.ArrayMultipleIndexFilter+<ExecuteFilter>d__2:MoveNext():ubyte:this (FullOpts)
          -8 (-2.89 % of base) : 206758.dasm - Microsoft.Build.Evaluation.ProjectCollection+LoadedProjectCollection:GetMatchingProjectIfAny(System.String,System.Collections.Generic.IDictionary`2[System.String,System.String],System.String):Microsoft.Build.Evaluation.Project:this (FullOpts)
         -15 (-2.80 % of base) : 288205.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ubyte]:CreateNewCapturingTransition(int,int,int):System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]][]:this (FullOpts)
         -23 (-2.70 % of base) : 289105.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[ubyte]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
         -98 (-2.68 % of base) : 298992.dasm - Microsoft.Extensions.Options.DataAnnotationValidateOptions`1[System.__Canon]:TryValidateOptions(System.Object,System.String,System.Collections.Generic.List`1[System.ComponentModel.DataAnnotations.ValidationResult],byref,byref):ubyte (FullOpts)
         -23 (-2.61 % of base) : 180406.dasm - ILCompiler.PEWriter.SectionBuilder:SerializeRelocationSection(System.Reflection.PortableExecutable.SectionLocation):System.Reflection.Metadata.BlobBuilder:this (FullOpts)
          -8 (-2.50 % of base) : 282283.dasm - System.Speech.Internal.Synthesis.VoiceSynthesis:AddLexicon(System.Uri,System.String):this (FullOpts)
          -8 (-2.43 % of base) : 205009.dasm - Microsoft.Build.BackEnd.Logging.LoggingService:get_RegisteredLoggerTypeNames():System.Collections.Generic.ICollection`1[System.String]:this (FullOpts)
         -21 (-2.42 % of base) : 233682.dasm - System.DirectoryServices.AccountManagement.SAMStoreCtx:UpdateGroupMembership(System.DirectoryServices.AccountManagement.Principal,System.DirectoryServices.DirectoryEntry,System.DirectoryServices.AccountManagement.NetCred,int) (FullOpts)
          -6 (-2.40 % of base) : 201855.dasm - Microsoft.Build.Evaluation.ProjectCollection:RemoveAllToolsets():this (FullOpts)
         -29 (-2.30 % of base) : 203245.dasm - Microsoft.Build.Execution.ProjectInstance:CreateItemsSnapshot(System.Collections.Generic.ICollection`1[Microsoft.Build.Evaluation.ProjectItem],int,ubyte):System.Collections.Generic.Dictionary`2[Microsoft.Build.Evaluation.ProjectItem,Microsoft.Build.Execution.ProjectItemInstance]:this (FullOpts)
         -28 (-2.20 % of base) : 301086.dasm - System.Composition.Convention.PartConventionBuilder:BuildPropertyAttributes(System.Type,byref):this (FullOpts)
          -5 (-2.15 % of base) : 281262.dasm - System.Speech.Recognition.RecognizerBase:set_PauseRecognizerOnRecognition(ubyte):this (FullOpts)
          -6 (-2.02 % of base) : 196437.dasm - R2RDump.R2RDiff:GetImports(ILCompiler.Reflection.ReadyToRun.ReadyToRunReader):System.Collections.Generic.Dictionary`2[System.String,ILCompiler.Reflection.ReadyToRun.ReadyToRunImportSection+ImportSectionEntry] (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: 14894587 (overridden on cmd)
Total bytes of diff: 14894515 (overridden on cmd)
Total bytes of delta: -72 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
          59 : 38309.dasm (1.32 % of base)
          19 : 3975.dasm (1.43 % of base)
          19 : 486.dasm (1.43 % of base)
          12 : 24525.dasm (1.80 % of base)
           9 : 6452.dasm (0.38 % of base)
           4 : 10414.dasm (0.73 % of base)
           2 : 31711.dasm (0.25 % of base)
           2 : 4068.dasm (0.07 % of base)
           2 : 32166.dasm (0.30 % of base)
           2 : 33794.dasm (0.77 % of base)
           2 : 41123.dasm (0.30 % of base)
           2 : 594.dasm (0.07 % of base)
Top file improvements (bytes):
         -28 : 2279.dasm (-1.05 % of base)
         -28 : 14262.dasm (-1.05 % of base)
         -21 : 43021.dasm (-4.65 % of base)
         -14 : 18859.dasm (-1.42 % of base)
         -14 : 5181.dasm (-1.42 % of base)
         -13 : 9753.dasm (-1.92 % of base)
         -11 : 10948.dasm (-1.36 % of base)
          -8 : 13907.dasm (-3.57 % of base)
          -8 : 4654.dasm (-0.92 % of base)
          -8 : 1138.dasm (-0.92 % of base)
          -6 : 21402.dasm (-2.75 % of base)
          -6 : 19427.dasm (-0.40 % of base)
          -5 : 24533.dasm (-0.71 % of base)
          -5 : 4100.dasm (-0.59 % of base)
          -5 : 1874.dasm (-2.24 % of base)
          -5 : 620.dasm (-0.59 % of base)
          -4 : 15124.dasm (-0.31 % of base)
          -3 : 33356.dasm (-0.12 % of base)
          -3 : 4005.dasm (-0.28 % of base)
          -3 : 574.dasm (-0.28 % of base)
36 total files with Code Size differences (24 improved, 12 regressed), 2 unchanged.
Top method regressions (bytes):
          59 (1.32 % of base) : 38309.dasm - System.Numerics.Tests.IsEvenTest:RunIsEvenTests() (Tier0-FullOpts)
          19 (1.43 % of base) : 3975.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (Tier0-FullOpts)
          19 (1.43 % of base) : 486.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (Tier0-FullOpts)
          12 (1.80 % of base) : 24525.dasm - System.IO.Tests.WriteTests:WriteLine_Span_WritesExpectedData(int,int,int,ubyte):this (Tier0-FullOpts)
           9 (0.38 % of base) : 6452.dasm - Microsoft.Extensions.Configuration.ConfigurationProviderJsonTest:SectionToJson(System.Text.StringBuilder,Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection,ubyte):this (Tier0-FullOpts)
           4 (0.73 % of base) : 10414.dasm - Microsoft.Win32.RegistryKey:GetSubKeyNames():System.String[]:this (Tier0-FullOpts)
           2 (0.30 % of base) : 32166.dasm - System.Reflection.Metadata.Ecma335.ControlFlowBuilder:SerializeExceptionTable(System.Reflection.Metadata.BlobBuilder):this (Tier0-FullOpts)
           2 (0.77 % of base) : 33794.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeStandAloneSigTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier0-FullOpts)
           2 (0.25 % of base) : 31711.dasm - System.Reflection.Metadata.Ecma335.NamespaceCache:MergeDuplicateNamespaces(System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.NamespaceDefinitionHandle,System.Reflection.Metadata.Ecma335.NamespaceCache+NamespaceDataBuilder],byref) (Tier0-FullOpts)
           2 (0.30 % of base) : 41123.dasm - System.Security.Cryptography.Pkcs.Pkcs12SafeBag:EncodeTo(System.Formats.Asn1.AsnWriter):this (Tier0-FullOpts)
           2 (0.07 % of base) : 4068.dasm - System.Text.RegularExpressions.RegexPrefixAnalyzer:<FindFixedDistanceSets>g__TryFindRawFixedSets|2_0(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet],byref,ubyte):ubyte (Tier0-FullOpts)
           2 (0.07 % of base) : 594.dasm - System.Text.RegularExpressions.RegexPrefixAnalyzer:<FindFixedDistanceSets>g__TryFindRawFixedSets|2_0(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet],byref,ubyte):ubyte (Tier0-FullOpts)
Top method improvements (bytes):
         -28 (-1.05 % of base) : 2279.dasm - Xunit.Sdk.XunitTestAssemblyRunner+<RunTestCollectionsAsync>d__14:MoveNext():this (Tier0-FullOpts)
         -28 (-1.05 % of base) : 14262.dasm - Xunit.Sdk.XunitTestAssemblyRunner+<RunTestCollectionsAsync>d__14:MoveNext():this (Tier0-FullOpts)
         -21 (-4.65 % of base) : 43021.dasm - System.Speech.Internal.Synthesis.VoiceSynthesis:BuildInstalledVoices(System.Speech.Internal.Synthesis.VoiceSynthesis):System.Collections.Generic.List`1[System.Speech.Synthesis.InstalledVoice] (Tier0-FullOpts)
         -14 (-1.42 % of base) : 18859.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<RunTestAsync>d__11:MoveNext():this (Tier0-FullOpts)
         -14 (-1.42 % of base) : 5181.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<RunTestAsync>d__11:MoveNext():this (Tier0-FullOpts)
         -13 (-1.92 % of base) : 9753.dasm - System.Collections.Generic.List`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -11 (-1.36 % of base) : 10948.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier1)
          -8 (-0.92 % of base) : 4654.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Instrumented Tier1)
          -8 (-0.92 % of base) : 1138.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Instrumented Tier1)
          -8 (-3.57 % of base) : 13907.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier0-FullOpts)
          -6 (-2.75 % of base) : 21402.dasm - System.IO.TempAclDirectory:DeleteDirectory():this (Tier0-FullOpts)
          -6 (-0.40 % of base) : 19427.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (Instrumented Tier1)
          -5 (-0.71 % of base) : 24533.dasm - System.IO.Tests.WriteTests:Write_Span_WritesExpectedData(int,int,int,ubyte):this (Tier0-FullOpts)
          -5 (-0.59 % of base) : 4100.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (Tier0-FullOpts)
          -5 (-0.59 % of base) : 620.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (Tier0-FullOpts)
          -5 (-2.24 % of base) : 1874.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier0-FullOpts)
          -4 (-0.31 % of base) : 15124.dasm - System.Configuration.BaseConfigurationRecord:Evaluate(System.Configuration.FactoryRecord,System.Configuration.SectionRecord,System.Object,ubyte,ubyte,byref,byref):ubyte:this (Tier0-FullOpts)
          -3 (-0.11 % of base) : 14541.dasm - System.Configuration.BaseConfigurationRecord:Init(System.Configuration.Internal.IInternalConfigRoot,System.Configuration.BaseConfigurationRecord,System.String,System.String):this (Tier0-FullOpts)
          -3 (-0.28 % of base) : 4005.dasm - System.Diagnostics.Tracing.EventSource:InitializeProviderMetadata():this (Instrumented Tier1)
          -3 (-0.28 % of base) : 574.dasm - System.Diagnostics.Tracing.EventSource:InitializeProviderMetadata():this (Instrumented Tier1)
Top method regressions (percentages):
          12 (1.80 % of base) : 24525.dasm - System.IO.Tests.WriteTests:WriteLine_Span_WritesExpectedData(int,int,int,ubyte):this (Tier0-FullOpts)
          19 (1.43 % of base) : 3975.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (Tier0-FullOpts)
          19 (1.43 % of base) : 486.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (Tier0-FullOpts)
          59 (1.32 % of base) : 38309.dasm - System.Numerics.Tests.IsEvenTest:RunIsEvenTests() (Tier0-FullOpts)
           2 (0.77 % of base) : 33794.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeStandAloneSigTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (Tier0-FullOpts)
           4 (0.73 % of base) : 10414.dasm - Microsoft.Win32.RegistryKey:GetSubKeyNames():System.String[]:this (Tier0-FullOpts)
           9 (0.38 % of base) : 6452.dasm - Microsoft.Extensions.Configuration.ConfigurationProviderJsonTest:SectionToJson(System.Text.StringBuilder,Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection,ubyte):this (Tier0-FullOpts)
           2 (0.30 % of base) : 41123.dasm - System.Security.Cryptography.Pkcs.Pkcs12SafeBag:EncodeTo(System.Formats.Asn1.AsnWriter):this (Tier0-FullOpts)
           2 (0.30 % of base) : 32166.dasm - System.Reflection.Metadata.Ecma335.ControlFlowBuilder:SerializeExceptionTable(System.Reflection.Metadata.BlobBuilder):this (Tier0-FullOpts)
           2 (0.25 % of base) : 31711.dasm - System.Reflection.Metadata.Ecma335.NamespaceCache:MergeDuplicateNamespaces(System.Collections.Generic.Dictionary`2[System.Reflection.Metadata.NamespaceDefinitionHandle,System.Reflection.Metadata.Ecma335.NamespaceCache+NamespaceDataBuilder],byref) (Tier0-FullOpts)
           2 (0.07 % of base) : 4068.dasm - System.Text.RegularExpressions.RegexPrefixAnalyzer:<FindFixedDistanceSets>g__TryFindRawFixedSets|2_0(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet],byref,ubyte):ubyte (Tier0-FullOpts)
           2 (0.07 % of base) : 594.dasm - System.Text.RegularExpressions.RegexPrefixAnalyzer:<FindFixedDistanceSets>g__TryFindRawFixedSets|2_0(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet],byref,ubyte):ubyte (Tier0-FullOpts)
Top method improvements (percentages):
         -21 (-4.65 % of base) : 43021.dasm - System.Speech.Internal.Synthesis.VoiceSynthesis:BuildInstalledVoices(System.Speech.Internal.Synthesis.VoiceSynthesis):System.Collections.Generic.List`1[System.Speech.Synthesis.InstalledVoice] (Tier0-FullOpts)
          -8 (-3.57 % of base) : 13907.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier0-FullOpts)
          -6 (-2.75 % of base) : 21402.dasm - System.IO.TempAclDirectory:DeleteDirectory():this (Tier0-FullOpts)
          -5 (-2.24 % of base) : 1874.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (Tier0-FullOpts)
         -13 (-1.92 % of base) : 9753.dasm - System.Collections.Generic.List`1[System.__Canon]:.ctor(System.Collections.Generic.IEnumerable`1[System.__Canon]):this (Tier1)
         -14 (-1.42 % of base) : 18859.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<RunTestAsync>d__11:MoveNext():this (Tier0-FullOpts)
         -14 (-1.42 % of base) : 5181.dasm - Xunit.Sdk.XunitTheoryTestCaseRunner+<RunTestAsync>d__11:MoveNext():this (Tier0-FullOpts)
         -11 (-1.36 % of base) : 10948.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Tier1)
         -28 (-1.05 % of base) : 2279.dasm - Xunit.Sdk.XunitTestAssemblyRunner+<RunTestCollectionsAsync>d__14:MoveNext():this (Tier0-FullOpts)
         -28 (-1.05 % of base) : 14262.dasm - Xunit.Sdk.XunitTestAssemblyRunner+<RunTestCollectionsAsync>d__14:MoveNext():this (Tier0-FullOpts)
          -8 (-0.92 % of base) : 4654.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Instrumented Tier1)
          -8 (-0.92 % of base) : 1138.dasm - System.Diagnostics.Tracing.EventListener:Validate() (Instrumented Tier1)
          -5 (-0.71 % of base) : 24533.dasm - System.IO.Tests.WriteTests:Write_Span_WritesExpectedData(int,int,int,ubyte):this (Tier0-FullOpts)
          -5 (-0.59 % of base) : 4100.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (Tier0-FullOpts)
          -5 (-0.59 % of base) : 620.dasm - System.Text.RegularExpressions.RegexWriter:EmitCode():System.Text.RegularExpressions.RegexInterpreterCode:this (Tier0-FullOpts)
          -6 (-0.40 % of base) : 19427.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (Instrumented Tier1)
          -3 (-0.39 % of base) : 31687.dasm - System.Reflection.Metadata.Ecma335.NamespaceCache:PopulateNamespaceTable():this (Tier0-FullOpts)
          -4 (-0.31 % of base) : 15124.dasm - System.Configuration.BaseConfigurationRecord:Evaluate(System.Configuration.FactoryRecord,System.Configuration.SectionRecord,System.Object,ubyte,ubyte,byref,byref):ubyte:this (Tier0-FullOpts)
          -3 (-0.28 % of base) : 4005.dasm - System.Diagnostics.Tracing.EventSource:InitializeProviderMetadata():this (Instrumented Tier1)
          -3 (-0.28 % of base) : 574.dasm - System.Diagnostics.Tracing.EventSource:InitializeProviderMetadata():this (Instrumented Tier1)
36 total methods with Code Size differences (24 improved, 12 regressed).
  
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: 109493031 (overridden on cmd)
Total bytes of diff: 109492352 (overridden on cmd)
Total bytes of delta: -679 (-0.00 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
          76 : 237805.dasm (9.10 % of base)
          61 : 247920.dasm (7.04 % of base)
          61 : 247858.dasm (6.52 % of base)
          61 : 247861.dasm (7.02 % of base)
          60 : 248858.dasm (4.90 % of base)
          60 : 236664.dasm (4.47 % of base)
          60 : 241230.dasm (4.70 % of base)
          57 : 228072.dasm (1.33 % of base)
          40 : 237764.dasm (3.25 % of base)
          38 : 171674.dasm (2.39 % of base)
          32 : 247903.dasm (3.41 % of base)
          29 : 247959.dasm (3.36 % of base)
          29 : 250530.dasm (4.90 % of base)
          24 : 171527.dasm (2.33 % of base)
          21 : 75757.dasm (1.50 % of base)
          21 : 75750.dasm (1.42 % of base)
          20 : 44648.dasm (4.30 % of base)
          19 : 331981.dasm (1.38 % of base)
          19 : 18479.dasm (1.43 % of base)
          19 : 234.dasm (1.43 % of base)
Top file improvements (bytes):
         -93 : 74915.dasm (-2.67 % of base)
         -92 : 71967.dasm (-2.64 % of base)
         -33 : 196887.dasm (-0.65 % of base)
         -32 : 187976.dasm (-2.87 % of base)
         -30 : 152359.dasm (-1.42 % of base)
         -29 : 76149.dasm (-1.79 % of base)
         -28 : 110240.dasm (-2.25 % of base)
         -28 : 807.dasm (-1.05 % of base)
         -28 : 109227.dasm (-2.25 % of base)
         -28 : 19016.dasm (-1.05 % of base)
         -27 : 335034.dasm (-3.19 % of base)
         -23 : 340435.dasm (-0.96 % of base)
         -23 : 142885.dasm (-1.11 % of base)
         -22 : 154295.dasm (-7.86 % of base)
         -20 : 227635.dasm (-1.02 % of base)
         -19 : 335031.dasm (-1.42 % of base)
         -18 : 333094.dasm (-0.95 % of base)
         -18 : 121241.dasm (-0.51 % of base)
         -18 : 188576.dasm (-0.42 % of base)
         -17 : 148763.dasm (-0.88 % of base)
73 total files with Code Size differences (38 improved, 35 regressed), 13 unchanged.
Top method regressions (bytes):
          76 (9.10 % of base) : 237805.dasm - System.Tests.DecimalTests+BigIntegerCompare:Test() (FullOpts)
          61 (7.02 % of base) : 247861.dasm - System.Tests.DecimalTests:BigInteger_Ceiling() (FullOpts)
          61 (7.04 % of base) : 247920.dasm - System.Tests.DecimalTests:BigInteger_Floor() (FullOpts)
          61 (6.52 % of base) : 247858.dasm - System.Tests.DecimalTests:BigInteger_Truncate() (FullOpts)
          60 (4.90 % of base) : 248858.dasm - System.Tests.DecimalTests+BigIntegerAdd:Test() (FullOpts)
          60 (4.70 % of base) : 241230.dasm - System.Tests.DecimalTests+BigIntegerDiv:Test() (FullOpts)
          60 (4.47 % of base) : 236664.dasm - System.Tests.DecimalTests+BigIntegerMul:Test() (FullOpts)
          57 (1.33 % of base) : 228072.dasm - System.Numerics.Tests.IsEvenTest:RunIsEvenTests() (FullOpts)
          40 (3.25 % of base) : 237764.dasm - System.Tests.DecimalTests+BigIntegerMod:Test() (FullOpts)
          38 (2.39 % of base) : 171674.dasm - System.SpanTests.ReadOnlySpanTests:SequenceCompareToNoMatch_string() (FullOpts)
          32 (3.41 % of base) : 247903.dasm - System.Tests.DecimalTests:BigInteger_Round() (FullOpts)
          29 (4.90 % of base) : 250530.dasm - System.Security.Cryptography.XmlKeyHelper:WriteCryptoBinary(System.String,System.ReadOnlySpan`1[ubyte],System.Text.StringBuilder) (FullOpts)
          29 (3.36 % of base) : 247959.dasm - System.Tests.DecimalTests:BigInteger_RoundAwayFromZero() (FullOpts)
          24 (2.33 % of base) : 171527.dasm - System.SpanTests.ReadOnlySpanTests:SequenceCompareToWithSingleMismatch_String() (FullOpts)
          21 (1.50 % of base) : 75757.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:GetDirectories_Directory():this (FullOpts)
          21 (1.42 % of base) : 75750.dasm - Microsoft.VisualBasic.FileIO.Tests.FileSystemTests:GetDirectories_Directory_SearchOption():this (FullOpts)
          20 (4.30 % of base) : 44648.dasm - Microsoft.Extensions.Caching.Memory.MemoryCache:Sum():System.ValueTuple`2[long,long]:this (FullOpts)
          19 (1.38 % of base) : 331981.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (FullOpts)
          19 (1.43 % of base) : 18479.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (FullOpts)
          19 (1.43 % of base) : 234.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (FullOpts)
Top method improvements (bytes):
         -93 (-2.67 % of base) : 74915.dasm - Microsoft.Extensions.Options.DataAnnotationValidateOptions`1[System.__Canon]:TryValidateOptions(System.Object,System.String,System.Collections.Generic.List`1[System.ComponentModel.DataAnnotations.ValidationResult],byref,byref):ubyte (FullOpts)
         -92 (-2.64 % of base) : 71967.dasm - Microsoft.Extensions.Options.DataAnnotationValidateOptions`1[System.__Canon]:TryValidateOptions(System.Object,System.String,System.Collections.Generic.List`1[System.ComponentModel.DataAnnotations.ValidationResult],byref,byref):ubyte (FullOpts)
         -33 (-0.65 % of base) : 196887.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
         -32 (-2.87 % of base) : 187976.dasm - System.Net.WebSockets.Client.Tests.LoopbackHelper+<WebSocketHandshakeAsync>d__0:MoveNext():this (FullOpts)
         -30 (-1.42 % of base) : 152359.dasm - System.IO.Tests.RandomAccess_NoBuffering+<ReadAsyncUsingMultipleBuffers>d__3:MoveNext():this (FullOpts)
         -29 (-1.79 % of base) : 76149.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:InsertIfMethodAvailable(System.Reflection.MemberInfo,System.Reflection.ParameterInfo[],int,ubyte,System.Object[],int,System.String[],System.Type[],ubyte,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],Microsoft.VisualBasic.CompilerServices.Symbols+Container) (FullOpts)
         -28 (-2.25 % of base) : 110240.dasm - System.Composition.Convention.PartConventionBuilder:BuildPropertyAttributes(System.Type,byref):this (FullOpts)
         -28 (-2.25 % of base) : 109227.dasm - System.Composition.Convention.PartConventionBuilder:BuildPropertyAttributes(System.Type,byref):this (FullOpts)
         -28 (-1.05 % of base) : 807.dasm - Xunit.Sdk.XunitTestAssemblyRunner+<RunTestCollectionsAsync>d__14:MoveNext():this (FullOpts)
         -28 (-1.05 % of base) : 19016.dasm - Xunit.Sdk.XunitTestAssemblyRunner+<RunTestCollectionsAsync>d__14:MoveNext():this (FullOpts)
         -27 (-3.19 % of base) : 335034.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[int]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
         -23 (-1.11 % of base) : 142885.dasm - System.Formats.Tar.Tests.TarReader_Tests+<TarReader_LeaveOpen_True_Async>d__1:MoveNext():this (FullOpts)
         -23 (-0.96 % of base) : 340435.dasm - System.Threading.Tests.EtwTests+<>c:<WaitHandleWaitEventTest>b__1_0():this (FullOpts)
         -22 (-7.86 % of base) : 154295.dasm - System.IO.Packaging.PackagePart:Close():this (FullOpts)
         -20 (-1.02 % of base) : 227635.dasm - System.Number:<NumberToBigInteger>g__DivideAndConquer|11_1(byref,byref,byref):int (FullOpts)
         -19 (-1.42 % of base) : 335031.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[int]:RetrievePostponedItemsGreedyBounded(ubyte):this (FullOpts)
         -18 (-0.51 % of base) : 121241.dasm - System.Diagnostics.Tests.ActivitySourceTests+<>c:<TestActivityCreationProperties>b__9_0():this (FullOpts)
         -18 (-0.42 % of base) : 188576.dasm - System.Net.WebSockets.Tests.WebSocketDeflateTests+<Duplex>d__13:MoveNext():this (FullOpts)
         -18 (-0.95 % of base) : 333094.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+<Heartbeat>d__23[System.__Canon,int]:MoveNext():this (FullOpts)
         -17 (-0.88 % of base) : 148763.dasm - System.IO.Compression.Tests.ZipFileTestBase+<CreateFromDir>d__25:MoveNext():this (FullOpts)
Top method regressions (percentages):
          76 (9.10 % of base) : 237805.dasm - System.Tests.DecimalTests+BigIntegerCompare:Test() (FullOpts)
          61 (7.04 % of base) : 247920.dasm - System.Tests.DecimalTests:BigInteger_Floor() (FullOpts)
          61 (7.02 % of base) : 247861.dasm - System.Tests.DecimalTests:BigInteger_Ceiling() (FullOpts)
          61 (6.52 % of base) : 247858.dasm - System.Tests.DecimalTests:BigInteger_Truncate() (FullOpts)
          60 (4.90 % of base) : 248858.dasm - System.Tests.DecimalTests+BigIntegerAdd:Test() (FullOpts)
          29 (4.90 % of base) : 250530.dasm - System.Security.Cryptography.XmlKeyHelper:WriteCryptoBinary(System.String,System.ReadOnlySpan`1[ubyte],System.Text.StringBuilder) (FullOpts)
          60 (4.70 % of base) : 241230.dasm - System.Tests.DecimalTests+BigIntegerDiv:Test() (FullOpts)
          60 (4.47 % of base) : 236664.dasm - System.Tests.DecimalTests+BigIntegerMul:Test() (FullOpts)
          20 (4.30 % of base) : 44648.dasm - Microsoft.Extensions.Caching.Memory.MemoryCache:Sum():System.ValueTuple`2[long,long]:this (FullOpts)
          32 (3.41 % of base) : 247903.dasm - System.Tests.DecimalTests:BigInteger_Round() (FullOpts)
          29 (3.36 % of base) : 247959.dasm - System.Tests.DecimalTests:BigInteger_RoundAwayFromZero() (FullOpts)
          40 (3.25 % of base) : 237764.dasm - System.Tests.DecimalTests+BigIntegerMod:Test() (FullOpts)
          38 (2.39 % of base) : 171674.dasm - System.SpanTests.ReadOnlySpanTests:SequenceCompareToNoMatch_string() (FullOpts)
          24 (2.33 % of base) : 171527.dasm - System.SpanTests.ReadOnlySpanTests:SequenceCompareToWithSingleMismatch_String() (FullOpts)
          13 (2.03 % of base) : 70394.dasm - Microsoft.Extensions.Logging.Test.FormattedLogValuesTest:CachedFormattersAreCapped():this (FullOpts)
          10 (1.84 % of base) : 79493.dasm - Microsoft.Win32.RegistryKey:GetSubKeyNames():System.String[]:this (FullOpts)
          10 (1.84 % of base) : 121297.dasm - Microsoft.Win32.RegistryKey:GetSubKeyNames():System.String[]:this (FullOpts)
          12 (1.80 % of base) : 157593.dasm - System.IO.Tests.WriteTests:WriteLine_Span_WritesExpectedData(int,int,int,ubyte):this (FullOpts)
          12 (1.76 % of base) : 292884.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteLargeArrayOfStrings(System.Text.Json.Utf8JsonWriter,int) (FullOpts)
           2 (1.74 % of base) : 148827.dasm - System.IO.Compression.ZipGenericExtraField:WriteAllBlocks(System.Collections.Generic.List`1[System.IO.Compression.ZipGenericExtraField],System.IO.Stream) (FullOpts)
Top method improvements (percentages):
         -22 (-7.86 % of base) : 154295.dasm - System.IO.Packaging.PackagePart:Close():this (FullOpts)
         -10 (-4.03 % of base) : 177769.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
         -10 (-4.03 % of base) : 32562.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
         -10 (-3.97 % of base) : 175166.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
          -6 (-3.82 % of base) : 334506.dasm - System.Threading.Tasks.Dataflow.Internal.Common:ReleaseAllPostponedMessages[int](System.Threading.Tasks.Dataflow.ITargetBlock`1[int],System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Threading.Tasks.Dataflow.DataflowMessageHeader],byref) (FullOpts)
          -8 (-3.57 % of base) : 18753.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (FullOpts)
          -8 (-3.57 % of base) : 488.dasm - Xunit.AggregateMessageSink:OnMessageWithTypes(Xunit.Abstractions.IMessageSinkMessage,System.Collections.Generic.HashSet`1[System.String]):ubyte:this (FullOpts)
         -27 (-3.19 % of base) : 335034.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1+BatchBlockTargetCore[int]:ConsumeReservedMessagesGreedyBounded():this (FullOpts)
         -32 (-2.87 % of base) : 187976.dasm - System.Net.WebSockets.Client.Tests.LoopbackHelper+<WebSocketHandshakeAsync>d__0:MoveNext():this (FullOpts)
          -6 (-2.75 % of base) : 149309.dasm - System.IO.TempAclDirectory:DeleteDirectory():this (FullOpts)
         -15 (-2.72 % of base) : 304969.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:CreateNewCapturingTransition(int,int,int):System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]][]:this (FullOpts)
         -93 (-2.67 % of base) : 74915.dasm - Microsoft.Extensions.Options.DataAnnotationValidateOptions`1[System.__Canon]:TryValidateOptions(System.Object,System.String,System.Collections.Generic.List`1[System.ComponentModel.DataAnnotations.ValidationResult],byref,byref):ubyte (FullOpts)
         -92 (-2.64 % of base) : 71967.dasm - Microsoft.Extensions.Options.DataAnnotationValidateOptions`1[System.__Canon]:TryValidateOptions(System.Object,System.String,System.Collections.Generic.List`1[System.ComponentModel.DataAnnotations.ValidationResult],byref,byref):ubyte (FullOpts)
          -8 (-2.37 % of base) : 267130.dasm - System.Speech.Internal.Synthesis.VoiceSynthesis:AddLexicon(System.Uri,System.String):this (FullOpts)
          -7 (-2.33 % of base) : 335571.dasm - System.Threading.Tasks.Dataflow.Internal.SourceCore`1[int]:AddExceptions(System.Collections.Generic.List`1[System.Exception]):this (FullOpts)
         -28 (-2.25 % of base) : 110240.dasm - System.Composition.Convention.PartConventionBuilder:BuildPropertyAttributes(System.Type,byref):this (FullOpts)
         -28 (-2.25 % of base) : 109227.dasm - System.Composition.Convention.PartConventionBuilder:BuildPropertyAttributes(System.Type,byref):this (FullOpts)
          -8 (-1.97 % of base) : 259008.dasm - System.Security.Cryptography.X509Certificates.Tests.PfxIterationCountTests+<GetCertsWith_NonNullOrEmptyPassword_MemberData>d__19:MoveNext():ubyte:this (FullOpts)
          -8 (-1.92 % of base) : 255977.dasm - System.Security.Cryptography.X509Certificates.Tests.PfxIterationCountTests+<GetCertsWith_IterationCountNotExceedingDefaultLimit_AndNullOrEmptyPassword_MemberData>d__17:MoveNext():ubyte:this (FullOpts)
          -8 (-1.89 % of base) : 179228.dasm - System.Net.Http.Headers.HttpHeaderValueCollection`1+<<GetEnumerator>g__Iterate|14_0>d[System.__Canon]:MoveNext():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: 11827284 (overridden on cmd)
Total bytes of diff: 11827219 (overridden on cmd)
Total bytes of delta: -65 (-0.00 % of base)
    diff is an improvement.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
          12 : 35171.dasm (2.00 % of base)
           4 : 33659.dasm (0.15 % of base)
           4 : 36450.dasm (0.62 % of base)
           4 : 37365.dasm (0.49 % of base)
           4 : 16742.dasm (0.19 % of base)
           4 : 37363.dasm (0.42 % of base)
           4 : 35982.dasm (0.17 % of base)
           4 : 37399.dasm (0.57 % of base)
           3 : 15094.dasm (0.44 % of base)
           3 : 37334.dasm (1.99 % of base)
           2 : 16077.dasm (1.56 % of base)
           2 : 19041.dasm (0.67 % of base)
           2 : 33240.dasm (0.77 % of base)
           2 : 34219.dasm (1.32 % of base)
           2 : 34348.dasm (0.34 % of base)
           2 : 36298.dasm (0.98 % of base)
           2 : 37229.dasm (0.60 % of base)
           2 : 34360.dasm (0.60 % of base)
           2 : 35820.dasm (0.93 % of base)
           2 : 37342.dasm (0.83 % of base)
Top file improvements (bytes):
         -26 : 15706.dasm (-3.81 % of base)
         -12 : 26802.dasm (-1.65 % of base)
         -11 : 18357.dasm (-2.32 % of base)
         -10 : 35530.dasm (-0.30 % of base)
          -9 : 37202.dasm (-0.04 % of base)
          -8 : 19702.dasm (-0.66 % of base)
          -8 : 34182.dasm (-1.88 % of base)
          -7 : 16839.dasm (-1.36 % of base)
          -7 : 19042.dasm (-3.00 % of base)
          -6 : 35379.dasm (-0.71 % of base)
          -6 : 2131.dasm (-0.62 % of base)
          -6 : 36520.dasm (-0.27 % of base)
          -6 : 561.dasm (-0.62 % of base)
          -6 : 37300.dasm (-0.20 % of base)
          -5 : 1645.dasm (-0.68 % of base)
          -5 : 36533.dasm (-0.36 % of base)
          -5 : 37838.dasm (-0.43 % of base)
          -5 : 16707.dasm (-1.30 % of base)
          -5 : 19219.dasm (-1.21 % of base)
          -5 : 34188.dasm (-0.89 % of base)
65 total files with Code Size differences (28 improved, 37 regressed), 3 unchanged.
Top method regressions (bytes):
          12 (2.00 % of base) : 35171.dasm - System.Management.Automation.SessionStateInternal:GetProvider(System.Management.Automation.PSSnapinQualifiedName):System.Collections.ObjectModel.Collection`1[System.Management.Automation.ProviderInfo]:this (FullOpts)
           4 (0.17 % of base) : 35982.dasm - System.Management.Automation.Adapter:FindBestMethodImpl(System.Management.Automation.MethodInformation[],System.Management.Automation.PSMethodInvocationConstraints,ubyte,System.Object[],byref,byref,byref):System.Management.Automation.MethodInformation (FullOpts)
           4 (0.62 % of base) : 36450.dasm - System.Management.Automation.CommandSearcher:MoveNext():ubyte:this (FullOpts)
           4 (0.57 % of base) : 37399.dasm - System.Management.Automation.Internal.PipelineProcessor:DisposeCommands():this (FullOpts)
           4 (0.49 % of base) : 37365.dasm - System.Management.Automation.PSModuleInfo:get_ExportedAliases():System.Collections.Generic.Dictionary`2[System.String,System.Management.Automation.AliasInfo]:this (FullOpts)
           4 (0.42 % of base) : 37363.dasm - System.Management.Automation.PSModuleInfo:get_ExportedFunctions():System.Collections.Generic.Dictionary`2[System.String,System.Management.Automation.FunctionInfo]:this (FullOpts)
           4 (0.15 % of base) : 33659.dasm - System.Management.Automation.Runspaces.PSSnapInHelpers:AnalyzePSSnapInAssembly(System.Reflection.Assembly,System.String,System.Management.Automation.PSSnapInInfo,System.Management.Automation.PSModuleInfo,byref,byref,byref,byref) (FullOpts)
           4 (0.19 % of base) : 16742.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (FullOpts)
           3 (1.99 % of base) : 37334.dasm - System.Management.Automation.PSModuleInfo:AddModuleToList(System.Management.Automation.PSModuleInfo,System.Collections.Generic.List`1[System.Management.Automation.PSModuleInfo]) (FullOpts)
           3 (0.44 % of base) : 15094.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)
           2 (1.04 % of base) : 33011.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodImplTableRows():this (FullOpts)
           2 (0.71 % of base) : 34350.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseLoader:LoadAppliesToSectionFromObjectModel(System.Collections.Generic.List`1[System.String],System.Collections.Generic.List`1[System.Management.Automation.DisplayEntry]):Microsoft.PowerShell.Commands.Internal.Format.AppliesTo (FullOpts)
           2 (0.71 % of base) : 34361.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseLoader:LoadComplexControlEntryDefinitionFromObjectModel(System.Management.Automation.CustomControlEntry,int,System.String):Microsoft.PowerShell.Commands.Internal.Format.ComplexControlEntryDefinition:this (FullOpts)
           2 (0.60 % of base) : 34360.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseLoader:LoadCustomControlFromObjectModel(System.Management.Automation.CustomControl,int,System.String):Microsoft.PowerShell.Commands.Internal.Format.ComplexControlBody:this (FullOpts)
           2 (0.85 % of base) : 34304.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseLoader:LoadHeadersSectionFromObjectModel(Microsoft.PowerShell.Commands.Internal.Format.TableControlBody,System.Collections.Generic.List`1[System.Management.Automation.TableControlColumnHeader]) (FullOpts)
           2 (0.34 % of base) : 34348.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseLoader:LoadListControlEntriesFromObjectModel(Microsoft.PowerShell.Commands.Internal.Format.ListControlBody,System.Collections.Generic.List`1[System.Management.Automation.ListControlEntry],int,System.String):this (FullOpts)
           2 (0.33 % of base) : 37232.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase:GetListOfFilesFromData(System.Collections.Hashtable,System.String,System.String,int,System.String,System.String,ubyte,byref):ubyte:this (FullOpts)
           2 (0.60 % of base) : 37229.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase:GetListOfWildcardsFromData(System.Collections.Hashtable,System.String,System.String,int,byref):ubyte:this (FullOpts)
           2 (0.36 % of base) : 37356.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase:SetDeclaredDscResources(System.Collections.Generic.List`1[System.Management.Automation.WildcardPattern],System.Management.Automation.PSModuleInfo) (FullOpts)
           2 (1.56 % of base) : 16077.dasm - SixLabors.ImageSharp.Metadata.Profiles.Exif.BaseExifReader:ReadSubIfd(System.Collections.Generic.List`1[SixLabors.ImageSharp.Metadata.Profiles.Exif.IExifValue]):this (FullOpts)
Top method improvements (bytes):
         -26 (-3.81 % of base) : 15706.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:BuildLength(System.ReadOnlySpan`1[int]):this (FullOpts)
         -12 (-1.65 % of base) : 26802.dasm - Microsoft.CodeAnalysis.PEModule:GetMemberNotNullWhenAttributeValues(System.Reflection.Metadata.EntityHandle):System.ValueTuple`2[System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[System.String]]:this (FullOpts)
         -11 (-2.32 % of base) : 18357.dasm - System.Net.Http.Headers.HttpHeaders:RemoveParsedValue(System.Net.Http.Headers.HeaderDescriptor,System.Object):ubyte:this (FullOpts)
         -10 (-0.30 % of base) : 35530.dasm - System.Management.Automation.ScriptBlock:InvokeWithPipeImpl(int,ubyte,System.Collections.Generic.Dictionary`2[System.String,System.Management.Automation.ScriptBlock],System.Collections.Generic.List`1[System.Management.Automation.PSVariable],int,System.Object,System.Object,System.Object,System.Management.Automation.Internal.Pipe,System.Management.Automation.InvocationInfo,System.Object[]):this (FullOpts)
          -9 (-0.04 % of base) : 37202.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase:LoadModuleManifest(System.String,System.Management.Automation.ExternalScriptInfo,System.Collections.Hashtable,System.Collections.Hashtable,int,System.Version,System.Version,System.Version,System.Nullable`1[System.Guid],byref,byref):System.Management.Automation.PSModuleInfo:this (FullOpts)
          -8 (-0.66 % of base) : 19702.dasm - Microsoft.CodeAnalysis.RuleSetProcessor:ReadRuleSet(System.Xml.Linq.XElement,System.String):Microsoft.CodeAnalysis.RuleSet (FullOpts)
          -8 (-1.88 % of base) : 34182.dasm - System.Management.Automation.Language.PSGetMemberBinder:TypeTableMemberAdded(System.String) (FullOpts)
          -7 (-3.00 % of base) : 19042.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
          -7 (-1.36 % of base) : 16839.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (FullOpts)
          -6 (-0.20 % of base) : 37300.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase:LoadBinaryModule(System.Management.Automation.PSModuleInfo,System.String,System.String,System.Reflection.Assembly,System.String,System.Management.Automation.SessionState,Microsoft.PowerShell.Commands.ModuleCmdletBase+ImportModuleOptions,int,System.String,byref,System.String,ubyte):System.Management.Automation.PSModuleInfo:this (FullOpts)
          -6 (-0.71 % of base) : 35379.dasm - System.Management.Automation.Language.Parser:ParamBlockRule():System.Management.Automation.Language.ParamBlockAst:this (FullOpts)
          -6 (-0.27 % of base) : 36520.dasm - System.Management.Automation.LocationGlobber:ExpandMshGlobPath(System.String,ubyte,System.Management.Automation.PSDriveInfo,System.Management.Automation.Provider.ContainerCmdletProvider,System.Management.Automation.CmdletProviderContext):System.Collections.ObjectModel.Collection`1[System.String]:this (FullOpts)
          -6 (-0.62 % of base) : 2131.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (FullOpts)
          -6 (-0.62 % of base) : 561.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (FullOpts)
          -5 (-1.21 % of base) : 19219.dasm - Microsoft.ML.Data.SimpleFileHandle:Dispose():this (FullOpts)
          -5 (-0.89 % of base) : 34188.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseManager:Update(System.Management.Automation.AuthorizationManager,System.Management.Automation.Host.PSHost):this (FullOpts)
          -5 (-0.43 % of base) : 37838.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase+<GetModuleForRootedPaths>d__95:MoveNext():ubyte:this (FullOpts)
          -5 (-0.68 % of base) : 1645.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -5 (-0.68 % of base) : 59.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -5 (-0.36 % of base) : 36533.dasm - System.Management.Automation.Internal.ModuleUtils+<GetDefaultAvailableModuleFiles>d__9:MoveNext():ubyte:this (FullOpts)
Top method regressions (percentages):
           2 (2.22 % of base) : 34103.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (FullOpts)
          12 (2.00 % of base) : 35171.dasm - System.Management.Automation.SessionStateInternal:GetProvider(System.Management.Automation.PSSnapinQualifiedName):System.Collections.ObjectModel.Collection`1[System.Management.Automation.ProviderInfo]:this (FullOpts)
           3 (1.99 % of base) : 37334.dasm - System.Management.Automation.PSModuleInfo:AddModuleToList(System.Management.Automation.PSModuleInfo,System.Collections.Generic.List`1[System.Management.Automation.PSModuleInfo]) (FullOpts)
           2 (1.80 % of base) : 37286.dasm - System.Management.Automation.ModuleIntrinsics:PatternContainsWildcard(System.Collections.Generic.List`1[System.Management.Automation.WildcardPattern]):ubyte (FullOpts)
           2 (1.67 % of base) : 37819.dasm - System.Management.Automation.CmdletParameterBinderController:AtLeastOneUnboundValidParameterSetTakesPipelineInput(uint):ubyte:this (FullOpts)
           2 (1.56 % of base) : 16077.dasm - SixLabors.ImageSharp.Metadata.Profiles.Exif.BaseExifReader:ReadSubIfd(System.Collections.Generic.List`1[SixLabors.ImageSharp.Metadata.Profiles.Exif.IExifValue]):this (FullOpts)
           2 (1.32 % of base) : 34219.dasm - System.Management.Automation.SessionStateInternal:ProviderExists(System.Management.Automation.ProviderInfo):System.Management.Automation.ProviderInfo:this (FullOpts)
           2 (1.22 % of base) : 35583.dasm - System.Management.Automation.Language.VariableAnalysis+Block:VisitDepthFirstOrder(System.Management.Automation.Language.VariableAnalysis+Block,System.Collections.Generic.List`1[System.Management.Automation.Language.VariableAnalysis+Block]) (FullOpts)
           2 (1.04 % of base) : 33011.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodImplTableRows():this (FullOpts)
           2 (0.98 % of base) : 36298.dasm - System.Management.Automation.Runspaces.LocalRunspace:<DoCloseHelper>b__54_0():System.Collections.Generic.List`1[System.Management.Automation.RemoteRunspace]:this (FullOpts)
           2 (0.93 % of base) : 35820.dasm - System.Management.Automation.Interpreter.InstructionList:BuildRuntimeLabels():System.Management.Automation.Interpreter.RuntimeLabel[]:this (FullOpts)
           2 (0.85 % of base) : 34304.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseLoader:LoadHeadersSectionFromObjectModel(Microsoft.PowerShell.Commands.Internal.Format.TableControlBody,System.Collections.Generic.List`1[System.Management.Automation.TableControlColumnHeader]) (FullOpts)
           2 (0.83 % of base) : 37342.dasm - System.Management.Automation.PSModuleInfo:get_CompiledExports():System.Collections.Generic.List`1[System.Management.Automation.CmdletInfo]:this (FullOpts)
           2 (0.77 % of base) : 33240.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeStandAloneSigTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
           2 (0.77 % of base) : 33249.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeTypeSpecTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
           2 (0.71 % of base) : 36134.dasm - System.Linq.Expressions.Compiler.LabelInfo:Define(System.Linq.Expressions.Compiler.LabelScopeInfo):this (FullOpts)
           2 (0.71 % of base) : 37364.dasm - System.Management.Automation.PSModuleInfo:get_ExportedVariables():System.Collections.Generic.Dictionary`2[System.String,System.Management.Automation.PSVariable]:this (FullOpts)
           2 (0.71 % of base) : 34350.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseLoader:LoadAppliesToSectionFromObjectModel(System.Collections.Generic.List`1[System.String],System.Collections.Generic.List`1[System.Management.Automation.DisplayEntry]):Microsoft.PowerShell.Commands.Internal.Format.AppliesTo (FullOpts)
           2 (0.71 % of base) : 34361.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseLoader:LoadComplexControlEntryDefinitionFromObjectModel(System.Management.Automation.CustomControlEntry,int,System.String):Microsoft.PowerShell.Commands.Internal.Format.ComplexControlEntryDefinition:this (FullOpts)
           2 (0.67 % of base) : 19041.dasm - System.Net.Http.Headers.HttpHeaders:ContainsParsedValue(System.Net.Http.Headers.HeaderDescriptor,System.Object):ubyte:this (FullOpts)
Top method improvements (percentages):
         -26 (-3.81 % of base) : 15706.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterHuffman+Tree:BuildLength(System.ReadOnlySpan`1[int]):this (FullOpts)
          -7 (-3.00 % of base) : 19042.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts)
         -11 (-2.32 % of base) : 18357.dasm - System.Net.Http.Headers.HttpHeaders:RemoveParsedValue(System.Net.Http.Headers.HeaderDescriptor,System.Object):ubyte:this (FullOpts)
          -8 (-1.88 % of base) : 34182.dasm - System.Management.Automation.Language.PSGetMemberBinder:TypeTableMemberAdded(System.String) (FullOpts)
         -12 (-1.65 % of base) : 26802.dasm - Microsoft.CodeAnalysis.PEModule:GetMemberNotNullWhenAttributeValues(System.Reflection.Metadata.EntityHandle):System.ValueTuple`2[System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[System.String]]:this (FullOpts)
          -4 (-1.61 % of base) : 34214.dasm - System.Management.Automation.Language.PSGetMemberBinder:TypeTableMemberPossiblyUpdated(System.String) (FullOpts)
          -5 (-1.43 % of base) : 6545.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
          -7 (-1.36 % of base) : 16839.dasm - System.Threading.Tasks.Task:WaitAllBlockingCore(System.Collections.Generic.List`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (FullOpts)
          -5 (-1.30 % of base) : 16707.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
          -5 (-1.21 % of base) : 19219.dasm - Microsoft.ML.Data.SimpleFileHandle:Dispose():this (FullOpts)
          -4 (-1.05 % of base) : 37393.dasm - System.Management.Automation.Internal.PipelineProcessor:Clean():this (FullOpts)
          -3 (-1.03 % of base) : 37106.dasm - System.Management.Automation.CommandProcessor:DoBegin():this (FullOpts)
          -5 (-0.89 % of base) : 34188.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseManager:Update(System.Management.Automation.AuthorizationManager,System.Management.Automation.Host.PSHost):this (FullOpts)
          -6 (-0.71 % of base) : 35379.dasm - System.Management.Automation.Language.Parser:ParamBlockRule():System.Management.Automation.Language.ParamBlockAst:this (FullOpts)
          -4 (-0.69 % of base) : 34362.dasm - Microsoft.PowerShell.Commands.Internal.Format.TypeInfoDataBaseLoader:LoadFormatTokenFromObjectModel(System.Management.Automation.CustomItemBase,int,System.String):Microsoft.PowerShell.Commands.Internal.Format.FormatToken:this (FullOpts)
          -5 (-0.68 % of base) : 1645.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -5 (-0.68 % of base) : 59.dasm - System.Diagnostics.Tracing.EventListener:Validate() (FullOpts)
          -8 (-0.66 % of base) : 19702.dasm - Microsoft.CodeAnalysis.RuleSetProcessor:ReadRuleSet(System.Xml.Linq.XElement,System.String):Microsoft.CodeAnalysis.RuleSet (FullOpts)
          -6 (-0.62 % of base) : 2131.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (FullOpts)
          -6 (-0.62 % of base) : 561.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(uint,int,byref,byref):uint (FullOpts)