Assembly Diffs
linux arm
Diffs are based on 2,053,511 contexts (830,139 MinOpts, 1,223,372 FullOpts).
MISSED contexts: 71,332 (3.36%)
Overall (+18,204 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | 
| benchmarks.run.linux.arm.checked.mch | 15,239,630 | +48 | 
| benchmarks.run_pgo.linux.arm.checked.mch | 66,294,036 | +524 | 
| benchmarks.run_tiered.linux.arm.checked.mch | 20,339,974 | +136 | 
| coreclr_tests.run.linux.arm.checked.mch | 321,703,802 | +2,142 | 
| libraries.crossgen2.linux.arm.checked.mch | 211,662 | +110 | 
| libraries.pmi.linux.arm.checked.mch | 49,774,246 | +648 | 
| libraries_tests.run.linux.arm.Release.mch | 242,821,180 | +15,478 | 
| librariestestsnotieredcompilation.run.linux.arm.Release.mch | 94,353,162 | -684 | 
| realworld.run.linux.arm.checked.mch | 13,590,516 | -198 | 
  
FullOpts (+18,204 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | 
| benchmarks.run.linux.arm.checked.mch | 14,853,036 | +48 | 
| benchmarks.run_pgo.linux.arm.checked.mch | 54,415,704 | +524 | 
| benchmarks.run_tiered.linux.arm.checked.mch | 12,126,818 | +136 | 
| coreclr_tests.run.linux.arm.checked.mch | 109,253,170 | +2,142 | 
| libraries.crossgen2.linux.arm.checked.mch | 211,662 | +110 | 
| libraries.pmi.linux.arm.checked.mch | 49,668,022 | +648 | 
| libraries_tests.run.linux.arm.Release.mch | 121,840,464 | +15,478 | 
| librariestestsnotieredcompilation.run.linux.arm.Release.mch | 84,282,394 | -684 | 
| realworld.run.linux.arm.checked.mch | 13,155,476 | -198 | 
  
Example diffs
benchmarks.run.linux.arm.checked.mch
-20 (-6.45%) : 4208.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (FullOpts)
@@ -17,13 +17,13 @@
 ;  V07 tmp2         [V07,T09] (  4,  2   )     ref  ->   lr         "field V03.Cert (fldOffset=0x0)" P-INDEP
 ;  V08 tmp3         [V08,T10] (  4,  2   )     ref  ->  [sp+0x00]  "field V03.Key (fldOffset=0x4)" P-INDEP
 ;  V09 tmp4         [V09,T05] (  3,  3   )   byref  ->   r3         single-def "BlockOp address local"
-;  V10 tmp5         [V10,T07] (  3,  3   )     int  ->   r0         "index expr"
+;  V10 tmp5         [V10,T07] (  3,  3   )     int  ->   r4         "index expr"
 ;  V11 tmp6         [V11,T06] (  3,  3   )   byref  ->   r3         single-def "BlockOp address local"
 ;* V12 tmp7         [V12,T13] (  0,  0   )     int  ->  zero-ref    "index expr"
 ;  V13 tmp8         [V13,T15] (  2,  0   )     ref  ->   r1         single-def "argument with side effect"
 ;  V14 cse0         [V14,T11] (  3,  1.50)   byref  ->   r0         "CSE - moderate"
 ;  V15 cse1         [V15,T12] (  3,  1.50)   byref  ->   r0         "CSE - moderate"
-;  V16 cse2         [V16,T04] (  3,  2.50)     int  ->   r0         "CSE - aggressive"
+;  V16 cse2         [V16,T04] (  3,  2.50)     int  ->   r4         "CSE - aggressive"
 ;  V17 cse3         [V17,T08] (  3,  3   )     int  ->   r0         "CSE - aggressive"
 ;
 ; Lcl frame size = 12
@@ -42,57 +42,57 @@ G_M3164_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0002 {r1}, byr
             ; gcrRegs -[r0]
             cmp     r0, 0
             ble     SHORT G_M3164_IG11
-            subs    r0, r0, 1
-            mov     r3, r0
+            subs    r4, r0, 1
+            mov     r3, r4
             cmp     r3, 0
             blt     SHORT G_M3164_IG06
             cmp     r2, 0
             beq     SHORT G_M3164_IG05
-            ldr     lr, [r2+0x04]
-            cmp     lr, r3
+            ldr     r0, [r2+0x04]
+            cmp     r0, r3
             ble     SHORT G_M3164_IG05
-                     ;; size=28 bbWeight=1 PerfScore 13.00
+                     ;; size=26 bbWeight=1 PerfScore 13.00
 G_M3164_IG03:        ; bbWeight=3.96, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            lsl     lr, r3, 3
-            add     lr, lr, 8
-            add     lr, r2
-            ; byrRegs +[lr]
-            ldr     lr, [lr+0x04]
-            ; gcrRegs +[lr]
-            ; byrRegs -[lr]
-            cmp     lr, 0
+            lsls    r0, r3, 3
+            adds    r0, 8
+            adds    r0, r2, r0
+            ; byrRegs +[r0]
+            ldr     r0, [r0+0x04]
+            ; gcrRegs +[r0]
+            ; byrRegs -[r0]
+            cmp     r0, 0
             bne     SHORT G_M3164_IG08
             subs    r3, r3, 1
             cmp     r3, 0
             bge     SHORT G_M3164_IG03
-                       ;; size=26 bbWeight=3.96 PerfScore 35.64
-G_M3164_IG04:        ; bbWeight=1, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            ; gcrRegs -[lr]
+                      ;; size=18 bbWeight=3.96 PerfScore 35.64
+G_M3164_IG04:        ; bbWeight=0.50, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
+            ; gcrRegs -[r0]
             b       SHORT G_M3164_IG06
-                        ;; size=2 bbWeight=1 PerfScore 1.00
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M3164_IG05:        ; bbWeight=0.04, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            ldr     lr, [r2+0x04]
-            cmp     r3, lr
+            ldr     r0, [r2+0x04]
+            cmp     r3, r0
             bhs     SHORT G_M3164_IG10
-            lsl     lr, r3, 3
-            add     lr, lr, 8
-            add     lr, r2
-            ; byrRegs +[lr]
-            ldr     lr, [lr+0x04]
-            ; gcrRegs +[lr]
-            ; byrRegs -[lr]
-            cmp     lr, 0
+            lsls    r0, r3, 3
+            adds    r0, 8
+            adds    r0, r2, r0
+            ; byrRegs +[r0]
+            ldr     r0, [r0+0x04]
+            ; gcrRegs +[r0]
+            ; byrRegs -[r0]
+            cmp     r0, 0
             bne     SHORT G_M3164_IG08
             subs    r3, r3, 1
             cmp     r3, 0
             bge     SHORT G_M3164_IG05
-                       ;; size=34 bbWeight=0.04 PerfScore 0.48
+                       ;; size=24 bbWeight=0.04 PerfScore 0.48
 G_M3164_IG06:        ; bbWeight=0.50, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            ; gcrRegs -[lr]
-            ldr     r3, [r2+0x04]
-            cmp     r0, r3
+            ; gcrRegs -[r0]
+            ldr     r0, [r2+0x04]
+            cmp     r4, r0
             bhs     SHORT G_M3164_IG10
-            lsls    r0, r0, 3
+            lsls    r0, r4, 3
             adds    r0, 8
             adds    r0, r2, r0
             ; byrRegs +[r0]
@@ -228,7 +228,7 @@ G_M3164_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=62 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 310, prolog size 10, PerfScore 80.12, instruction count 116, allocated bytes for code 310 (MethodHash=f732f3a3) for method System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (FullOpts)
+; Total bytes of code 290, prolog size 10, PerfScore 79.62, instruction count 116, allocated bytes for code 290 (MethodHash=f732f3a3) for method System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -240,7 +240,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 155 (0x0009b) Actual length = 310 (0x000136)
+  Function Length   : 145 (0x00091) Actual length = 290 (0x000122)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
-30 (-5.77%) : 2171.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int
@@ -15,15 +15,15 @@
 ;  V04 loc0         [V04,T14] (  4,  3   )     int  ->  [sp+0x04]  spill-single-def
 ;  V05 loc1         [V05,T13] (  8,  4   )     int  ->   r8        
 ;  V06 loc2         [V06,T07] ( 13,  8.68)     ref  ->   r9         class-hnd single-def <int[]>
-;  V07 loc3         [V07,T10] (  4,  5   )     int  ->   r0        
+;  V07 loc3         [V07,T10] (  4,  5   )     int  ->  r10        
 ;  V08 loc4         [V08,T19] (  3,  1.50)     ref  ->   r4         class-hnd single-def <int[]>
 ;* V09 loc5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V10 loc6         [V10,T04] (  6, 18.50)     int  ->   r1        
+;  V10 loc6         [V10,T04] (  6, 18.50)     int  ->   r3        
 ;* V11 loc7         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V12 loc8         [V12,T03] (  6, 20   )     int  ->  [sp+0x00]  spill-single-def
+;  V12 loc8         [V12,T03] (  6, 20   )     int  ->   r0        
 ;  V13 loc9         [V13,T02] (  7, 32   )     int  ->  r12        
-;  V14 loc10        [V14,T00] ( 12, 74.16)     int  ->   r5        
-;  V15 loc11        [V15,T01] (  5, 34   )   byref  ->  r10        
+;  V14 loc10        [V14,T00] ( 12, 74.16)     int  ->   r2        
+;  V15 loc11        [V15,T01] (  5, 34   )   byref  ->   r1        
 ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V17 tmp1         [V17    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V18 tmp2         [V18    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
@@ -39,9 +39,9 @@
 ;  V28 tmp12        [V28,T17] (  2,  2   )     ref  ->   r0         single-def "argument with side effect"
 ;  V29 tmp13        [V29,T18] (  2,  2   )     ref  ->   r0         single-def "argument with side effect"
 ;* V30 cse0         [V30,T22] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
-;  V31 cse1         [V31,T05] (  3, 16.50)   byref  ->   r3         hoist "CSE - aggressive"
+;  V31 cse1         [V31,T05] (  3, 16.50)   byref  ->   lr         hoist "CSE - aggressive"
 ;  V32 cse2         [V32,T08] (  4,  6.50)     int  ->   r7         "CSE - aggressive"
-;  V33 cse3         [V33,T12] (  2,  4.50)   byref  ->   r2         hoist "CSE - moderate"
+;  V33 cse3         [V33,T12] (  2,  4.50)   byref  ->   r5         hoist "CSE - moderate"
 ;
 ; Lcl frame size = 12
 
@@ -65,7 +65,7 @@ G_M57321_IG02:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             blx     r3     // CORINFO_HELP_DIV
             ; gcr arg pop 0
             cmp     r0, 5
-            bgt     G_M57321_IG19
+            bgt     G_M57321_IG17
                         ;; size=28 bbWeight=1 PerfScore 11.00
 G_M57321_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             movs    r0, 5
@@ -73,7 +73,7 @@ G_M57321_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             cmp     r8, r0
-            bgt     G_M57321_IG19
+            bgt     G_M57321_IG17
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movs    r1, 34
@@ -97,7 +97,7 @@ G_M57321_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
             cmp     r9, 0
             bne     SHORT G_M57321_IG04
             cmp     r8, 0
-            bne     G_M57321_IG24
+            bne     G_M57321_IG22
             movs    r0, 0
             ; gcrRegs -[r0]
             movs    r1, 0
@@ -107,7 +107,7 @@ G_M57321_IG04:        ; bbWeight=0.50, gcrefRegs=0220 {r5 r9}, byrefRegs=0000 {}
             ldr     r0, [r9+0x04]
             ldr     r1, [r9+0x04]
             cmp     r1, r8
-            blo     G_M57321_IG24
+            blo     G_M57321_IG22
             add     r0, r9, 8
             ; byrRegs +[r0]
             mov     r1, r8
@@ -120,100 +120,92 @@ G_M57321_IG05:        ; bbWeight=0.50, gcrefRegs=0220 {r5 r9}, byrefRegs=0001 {r
             blx     r3     // <unknown method>
             ; byrRegs -[r0]
             ; gcr arg pop 0
-            movs    r0, 0
-            movs    r1, 0
+            mov     r10, 0
+            movs    r3, 0
             cmp     r7, 0
-            ble     SHORT G_M57321_IG17
-            add     r2, r5, 8
-            ; byrRegs +[r2]
-            add     r3, r9, 8
-            ; byrRegs +[r3]
-                       ;; size=32 bbWeight=0.50 PerfScore 5.50
-G_M57321_IG06:        ; bbWeight=4, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref, isz
+            ble     SHORT G_M57321_IG15
+            adds    r5, 8
             ; gcrRegs -[r5]
-            lsl     lr, r1, 2
-            ldr     lr, [r2+lr]
-            ; gcrRegs +[lr]
-            ldr     lr, [lr+0x04]
-            ; gcrRegs -[lr]
-            sub     lr, lr, r4
-            mov     r12, 5
-            mul     lr, lr, r12
-            str     lr, [sp]
-            add     r12, lr, 5
-            mov     r5, lr
-            cmp     lr, r12
-            bge     SHORT G_M57321_IG16
-                       ;; size=38 bbWeight=4 PerfScore 44.00
-G_M57321_IG07:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref, isz
+            ; byrRegs +[r5]
+            add     lr, r9, 8
+            ; byrRegs +[lr]
+                       ;; size=32 bbWeight=0.50 PerfScore 5.50
+G_M57321_IG06:        ; bbWeight=4, gcrefRegs=0200 {r9}, byrefRegs=4020 {r5 lr}, byref, isz
+            lsls    r0, r3, 2
+            ldr     r0, [r5+r0]
+            ; gcrRegs +[r0]
+            ldr     r0, [r0+0x04]
+            ; gcrRegs -[r0]
+            subs    r0, r0, r4
+            movs    r1, 5
+            mul     r0, r0, r1
+            add     r12, r0, 5
+            mov     r2, r0
+            cmp     r0, r12
+            bge     SHORT G_M57321_IG14
+                       ;; size=24 bbWeight=4 PerfScore 40.00
+G_M57321_IG07:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=4020 {r5 lr}, byref, isz
             cmp     r9, 0
             beq     SHORT G_M57321_IG10
-            orrs    r10, lr, r12
-            cmp     r10, 0
+            orrs    r1, r0, r12
+            cmp     r1, 0
             blt     SHORT G_M57321_IG10
-            ldr     r10, [r9+0x04]
-            cmp     r10, r12
+            ldr     r1, [r9+0x04]
+            cmp     r1, r12
             blt     SHORT G_M57321_IG10
-                       ;; size=24 bbWeight=2 PerfScore 16.00
-G_M57321_IG08:        ; bbWeight=15.84, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref, isz
-            lsl     r10, r5, 2
-            add     r10, r3
-            ; byrRegs +[r10]
-            ldr     r6, [r10]
+                        ;; size=22 bbWeight=2 PerfScore 16.00
+G_M57321_IG08:        ; bbWeight=15.84, gcrefRegs=0200 {r9}, byrefRegs=4020 {r5 lr}, byref, isz
+            lsls    r1, r2, 2
+            add     r1, lr
+            ; byrRegs +[r1]
+            ldr     r6, [r1]
             cmp     r6, 0
-            blt     SHORT G_M57321_IG14
-            adds    r5, r5, 1
-            cmp     r5, r12
+            blt     SHORT G_M57321_IG12
+            adds    r2, r2, 1
+            cmp     r2, r12
             blt     SHORT G_M57321_IG08
-                       ;; size=20 bbWeight=15.84 PerfScore 126.72
-G_M57321_IG09:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref, isz
-            ; byrRegs -[r10]
-            b       SHORT G_M57321_IG16
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M57321_IG10:        ; bbWeight=0.02, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref
-            ldr     r10, [r9+0x04]
+                       ;; size=16 bbWeight=15.84 PerfScore 126.72
+G_M57321_IG09:        ; bbWeight=4, gcrefRegs=0200 {r9}, byrefRegs=4020 {r5 lr}, byref, isz
+            ; byrRegs -[r1]
+            b       SHORT G_M57321_IG14
+                       ;; size=2 bbWeight=4 PerfScore 4.00
+G_M57321_IG10:        ; bbWeight=0.02, gcrefRegs=0200 {r9}, byrefRegs=4020 {r5 lr}, byref
+            ldr     r1, [r9+0x04]
                       ;; size=4 bbWeight=0.02 PerfScore 0.02
-G_M57321_IG11:        ; bbWeight=0.16, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref, isz
-            ldr     r10, [r9+0x04]
-            cmp     r5, r10
-            bhs     SHORT G_M57321_IG23
-            lsl     r10, r5, 2
-            add     r10, r3
-            ; byrRegs +[r10]
-            ldr     lr, [r10]
-            cmp     lr, 0
-            blt     SHORT G_M57321_IG13
-            adds    r5, r5, 1
-            cmp     r5, r12
+G_M57321_IG11:        ; bbWeight=0.16, gcrefRegs=0200 {r9}, byrefRegs=4020 {r5 lr}, byref, isz
+            ldr     r1, [r9+0x04]
+            cmp     r2, r1
+            bhs     SHORT G_M57321_IG21
+            lsls    r1, r2, 2
+            add     r1, lr
+            ; byrRegs +[r1]
+            ldr     r6, [r1]
+            cmp     r6, 0
+            blt     SHORT G_M57321_IG12
+            adds    r2, r2, 1
+            cmp     r2, r12
             blt     SHORT G_M57321_IG11
-                       ;; size=30 bbWeight=0.16 PerfScore 1.76
-G_M57321_IG12:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref, isz
-            ; byrRegs -[r10]
-            b       SHORT G_M57321_IG16
+            b       SHORT G_M57321_IG14
+                       ;; size=26 bbWeight=0.16 PerfScore 1.92
+G_M57321_IG12:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=4022 {r1 r5 lr}, byref, isz
+            cmp     r2, r0
+            bne     SHORT G_M57321_IG13
+            add     r10, r10, 1
+                       ;; size=8 bbWeight=2 PerfScore 6.00
+G_M57321_IG13:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=4022 {r1 r5 lr}, byref
+            str     r3, [r1]
                        ;; size=2 bbWeight=2 PerfScore 2.00
-G_M57321_IG13:        ; bbWeight=0.08, gcrefRegs=0200 {r9}, byrefRegs=040C {r2 r3 r10}, byref
-            ; byrRegs +[r10]
-            ldr     lr, [sp]   // [V12 loc8]
-                       ;; size=4 bbWeight=0.08 PerfScore 0.08
-G_M57321_IG14:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=040C {r2 r3 r10}, byref, isz
-            cmp     r5, lr
-            bne     SHORT G_M57321_IG15
-            adds    r0, r0, 1
-                       ;; size=6 bbWeight=2 PerfScore 6.00
-G_M57321_IG15:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=040C {r2 r3 r10}, byref
-            str     r1, [r10]
-                       ;; size=4 bbWeight=2 PerfScore 2.00
-G_M57321_IG16:        ; bbWeight=4, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref, isz
-            ; byrRegs -[r10]
-            cmp     r5, r12
-            beq     SHORT G_M57321_IG18
-            adds    r1, r1, 1
-            cmp     r7, r1
+G_M57321_IG14:        ; bbWeight=4, gcrefRegs=0200 {r9}, byrefRegs=4020 {r5 lr}, byref, isz
+            ; byrRegs -[r1]
+            cmp     r2, r12
+            beq     SHORT G_M57321_IG16
+            adds    r3, r3, 1
+            cmp     r7, r3
             bgt     SHORT G_M57321_IG06
                        ;; size=10 bbWeight=4 PerfScore 20.00
-G_M57321_IG17:        ; bbWeight=0.50, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r2-r3]
-            vmov.i2f s8, r0
+G_M57321_IG15:        ; bbWeight=0.50, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs -[r5 lr]
+            vmov.i2f s8, r10
             vcvt.i2d d4, s8
             ldr     r6, [sp+0x04]  // [V04 loc0]
             vmov.i2f s10, r6
@@ -226,9 +218,9 @@ G_M57321_IG17:        ; bbWeight=0.50, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, b
             vmov.i2d d5, r0, r1
             vcmp    d4, d5
             vmrs    APSR, FPSCR
-            bhs     SHORT G_M57321_IG21
+            bhs     SHORT G_M57321_IG19
                       ;; size=52 bbWeight=0.50 PerfScore 7.00
...
  
-12 (-4.62%) : 33606.dasm - Benchstone.BenchI.XposMatrix:Test():ubyte:this (FullOpts)
@@ -10,18 +10,18 @@
 ;  V00 this         [V00,T06] (  3,  3   )     ref  ->   r0         this class-hnd single-def <Benchstone.BenchI.XposMatrix>
 ;  V01 loc0         [V01,T07] (  7,  4.58)     ref  ->   r0         class-hnd single-def <int[][]>
 ;* V02 loc1         [V02,T11] (  0,  0   )     int  ->  zero-ref    single-def
-;  V03 loc2         [V03,T03] ( 12, 19.04)     int  ->   r1        
-;  V04 loc3         [V04,T00] ( 16, 68.32)     int  ->   r2        
+;  V03 loc2         [V03,T03] ( 12, 19.04)     int  ->   r4        
+;  V04 loc3         [V04,T00] ( 16, 68.32)     int  ->   r1        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06,T01] (  8, 64.64)     ref  ->  registers   "arr expr"
 ;  V07 tmp2         [V07,T05] (  3,  6   )     ref  ->   r1         single-def "arr expr"
 ;  V08 tmp3         [V08,T10] (  3,  3   )     ref  ->   r0         single-def "arr expr"
-;  V09 cse0         [V09,T12] (  2,  0.20)     ref  ->   lr         hoist "CSE - conservative"
-;  V10 cse1         [V10,T02] (  6, 21.80)     ref  ->  r12         hoist multi-def "CSE - aggressive"
-;  V11 cse2         [V11,T08] (  7,  4.58)   byref  ->   r4         hoist multi-def "CSE - aggressive"
-;  V12 cse3         [V12,T09] (  4,  4.00)     int  ->   lr         hoist multi-def "CSE - aggressive"
-;  V13 cse4         [V13,T04] (  6,  7.04)     int  ->   r3         hoist multi-def "CSE - aggressive"
-;  V14 cse5         [V14,T13] (  2,  0.08)     int  ->   lr         hoist "CSE - conservative"
+;  V09 cse0         [V09,T12] (  2,  0.20)     ref  ->   r3         hoist "CSE - conservative"
+;  V10 cse1         [V10,T02] (  6, 21.80)     ref  ->   r2         hoist multi-def "CSE - aggressive"
+;  V11 cse2         [V11,T08] (  7,  4.58)   byref  ->   r6         hoist multi-def "CSE - aggressive"
+;  V12 cse3         [V12,T09] (  4,  4.00)     int  ->   r3         hoist multi-def "CSE - aggressive"
+;  V13 cse4         [V13,T04] (  6,  7.04)     int  ->   r5         hoist multi-def "CSE - aggressive"
+;  V14 cse5         [V14,T13] (  2,  0.08)     int  ->   r3         hoist "CSE - conservative"
 ;
 ; Lcl frame size = 4
 
@@ -32,119 +32,119 @@ G_M49643_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M49643_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0]
             ldr     r0, [r0+0x04]
-            movs    r1, 1
+            movs    r4, 1
             cmp     r0, 0
             beq     SHORT G_M49643_IG11
-            ldr     r3, [r0+0x04]
-            cmp     r3, 100
+            ldr     r5, [r0+0x04]
+            cmp     r5, 100
             ble     SHORT G_M49643_IG11
-            add     r4, r0, 8
-            ; byrRegs +[r4]
+            add     r6, r0, 8
+            ; byrRegs +[r6]
                         ;; size=18 bbWeight=1 PerfScore 8.00
-G_M49643_IG03:        ; bbWeight=3.96, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
-            movs    r2, 1
-            cmp     r3, r1
+G_M49643_IG03:        ; bbWeight=3.96, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref, isz
+            movs    r1, 1
+            cmp     r5, r4
             bls     SHORT G_M49643_IG07
                        ;; size=6 bbWeight=3.96 PerfScore 11.88
-G_M49643_IG04:        ; bbWeight=1.98, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
-            lsl     lr, r1, 2
-            ldr     r12, [r4+lr]
-            ; gcrRegs +[r12]
-            cmp     r12, 0
+G_M49643_IG04:        ; bbWeight=1.98, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref, isz
+            lsls    r3, r4, 2
+            ldr     r2, [r6+r3]
+            ; gcrRegs +[r2]
+            cmp     r2, 0
             beq     SHORT G_M49643_IG07
-            ldr     lr, [r12+0x04]
-            cmp     lr, 100
+            ldr     r3, [r2+0x04]
+            cmp     r3, 100
             ble     SHORT G_M49643_IG07
-                       ;; size=24 bbWeight=1.98 PerfScore 13.86
-G_M49643_IG05:        ; bbWeight=15.68, gcrefRegs=1001 {r0 r12}, byrefRegs=0010 {r4}, byref, isz
-            mov     lr, r12
-            ; gcrRegs +[lr]
-            add     lr, lr, 8
-            ; gcrRegs -[lr]
-            ; byrRegs +[lr]
-            lsls    r5, r2, 2
-            movs    r6, 1
-            str     r6, [lr+r5]
-            adds    r2, r2, 1
-            cmp     r2, 100
-            ble     SHORT G_M49643_IG05
-                       ;; size=20 bbWeight=15.68 PerfScore 125.45
-G_M49643_IG06:        ; bbWeight=1.98, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
-            ; gcrRegs -[r12]
-            ; byrRegs -[lr]
-            b       SHORT G_M49643_IG09
-                       ;; size=2 bbWeight=1.98 PerfScore 1.98
-G_M49643_IG07:        ; bbWeight=0.02, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref
+                       ;; size=14 bbWeight=1.98 PerfScore 13.86
+G_M49643_IG05:        ; bbWeight=15.68, gcrefRegs=0005 {r0 r2}, byrefRegs=0040 {r6}, byref, isz
+            mov     r3, r2
+            ; gcrRegs +[r3]
+            adds    r3, 8
+            ; gcrRegs -[r3]
+            ; byrRegs +[r3]
             lsl     lr, r1, 2
-            ldr     r12, [r4+lr]
-            ; gcrRegs +[r12]
-                       ;; size=8 bbWeight=0.02 PerfScore 0.04
-G_M49643_IG08:        ; bbWeight=0.16, gcrefRegs=1001 {r0 r12}, byrefRegs=0010 {r4}, byref, isz
-            mov     lr, r12
-            ; gcrRegs +[lr]
-            ldr     r5, [lr+0x04]
-            cmp     r2, r5
-            bhs     SHORT G_M49643_IG19
-            add     lr, lr, 8
-            ; gcrRegs -[lr]
-            ; byrRegs +[lr]
-            lsls    r5, r2, 2
-            movs    r6, 1
-            str     r6, [lr+r5]
-            adds    r2, r2, 1
-            cmp     r2, 100
-            ble     SHORT G_M49643_IG08
-                       ;; size=28 bbWeight=0.16 PerfScore 1.74
-G_M49643_IG09:        ; bbWeight=3.96, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
-            ; gcrRegs -[r12]
-            ; byrRegs -[lr]
+            mov     r12, 1
+            str     r12, [r3+lr]
             adds    r1, r1, 1
             cmp     r1, 100
+            ble     SHORT G_M49643_IG05
+                       ;; size=22 bbWeight=15.68 PerfScore 125.45
+G_M49643_IG06:        ; bbWeight=3.96, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref, isz
+            ; gcrRegs -[r2]
+            ; byrRegs -[r3]
+            b       SHORT G_M49643_IG09
+                       ;; size=2 bbWeight=3.96 PerfScore 3.96
+G_M49643_IG07:        ; bbWeight=0.02, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref
+            lsls    r3, r4, 2
+            ldr     r2, [r6+r3]
+            ; gcrRegs +[r2]
+                       ;; size=4 bbWeight=0.02 PerfScore 0.04
+G_M49643_IG08:        ; bbWeight=0.16, gcrefRegs=0005 {r0 r2}, byrefRegs=0040 {r6}, byref, isz
+            mov     r3, r2
+            ; gcrRegs +[r3]
+            ldr     lr, [r3+0x04]
+            cmp     r1, lr
+            bhs     SHORT G_M49643_IG19
+            adds    r3, 8
+            ; gcrRegs -[r3]
+            ; byrRegs +[r3]
+            lsl     lr, r1, 2
+            mov     r12, 1
+            str     r12, [r3+lr]
+            adds    r1, r1, 1
+            cmp     r1, 100
+            ble     SHORT G_M49643_IG08
+                       ;; size=30 bbWeight=0.16 PerfScore 1.74
+G_M49643_IG09:        ; bbWeight=3.96, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref, isz
+            ; gcrRegs -[r2]
+            ; byrRegs -[r3]
+            adds    r4, r4, 1
+            cmp     r4, 100
             ble     SHORT G_M49643_IG03
                        ;; size=6 bbWeight=3.96 PerfScore 11.88
-G_M49643_IG10:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
+G_M49643_IG10:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref, isz
             b       SHORT G_M49643_IG14
                        ;; size=2 bbWeight=1 PerfScore 1.00
 G_M49643_IG11:        ; bbWeight=0.04, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r4]
-            movs    r2, 1
-            ldr     r3, [r0+0x04]
-            add     r4, r0, 8
-            ; byrRegs +[r4]
+            ; byrRegs -[r6]
+            movs    r1, 1
+            ldr     r5, [r0+0x04]
+            add     r6, r0, 8
+            ; byrRegs +[r6]
+            lsls    r3, r4, 2
+            cmp     r4, r5
+            bhs     SHORT G_M49643_IG19
+            ldr     r3, [r6+r3]
+            ; gcrRegs +[r3]
+                       ;; size=16 bbWeight=0.04 PerfScore 0.28
+G_M49643_IG12:        ; bbWeight=0.16, gcrefRegs=0009 {r0 r3}, byrefRegs=0040 {r6}, byref, isz
+            mov     r2, r3
+            ; gcrRegs +[r2]
+            ldr     lr, [r2+0x04]
+            cmp     r1, lr
+            bhs     SHORT G_M49643_IG19
+            adds    r2, 8
+            ; gcrRegs -[r2]
+            ; byrRegs +[r2]
             lsl     lr, r1, 2
-            cmp     r1, r3
-            bhs     SHORT G_M49643_IG19
-            ldr     lr, [r4+lr]
-            ; gcrRegs +[lr]
-                       ;; size=20 bbWeight=0.04 PerfScore 0.28
-G_M49643_IG12:        ; bbWeight=0.16, gcrefRegs=4001 {r0 lr}, byrefRegs=0010 {r4}, byref, isz
-            mov     r12, lr
-            ; gcrRegs +[r12]
-            ldr     r5, [r12+0x04]
-            cmp     r2, r5
-            bhs     SHORT G_M49643_IG19
-            add     r12, r12, 8
-            ; gcrRegs -[r12]
-            ; byrRegs +[r12]
-            lsls    r5, r2, 2
-            movs    r6, 1
-            str     r6, [r12+r5]
-            adds    r2, r2, 1
-            cmp     r2, 100
-            ble     SHORT G_M49643_IG12
-                       ;; size=28 bbWeight=0.16 PerfScore 1.76
-G_M49643_IG13:        ; bbWeight=0.04, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
-            ; gcrRegs -[lr]
-            ; byrRegs -[r12]
+            mov     r12, 1
+            str     r12, [r2+lr]
             adds    r1, r1, 1
             cmp     r1, 100
+            ble     SHORT G_M49643_IG12
+                       ;; size=30 bbWeight=0.16 PerfScore 1.76
+G_M49643_IG13:        ; bbWeight=0.04, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref, isz
+            ; gcrRegs -[r3]
+            ; byrRegs -[r2]
+            adds    r4, r4, 1
+            cmp     r4, 100
             ble     SHORT G_M49643_IG11
                        ;; size=6 bbWeight=0.04 PerfScore 0.12
-G_M49643_IG14:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
+G_M49643_IG14:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref, isz
             movs    r1, 100
-            cmp     r1, r3
+            cmp     r1, r5
             bhs     SHORT G_M49643_IG19
-            ldr     r1, [r4+0x190]
+            ldr     r1, [r6+0x190]
             ; gcrRegs +[r1]
             movs    r3, 100
             ldr     r2, [r1+0x04]
@@ -157,15 +157,15 @@ G_M49643_IG14:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, by
                        ;; size=26 bbWeight=1 PerfScore 11.00
 G_M49643_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
-            ; byrRegs -[r4]
+            ; byrRegs -[r6]
             movs    r0, 0
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M49643_IG16:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r3,r4,r5,r6,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M49643_IG17:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref, isz
+G_M49643_IG17:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, gcvars, byref, isz
...
  
+2 (+2.38%) : 16238.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
@@ -39,17 +39,17 @@ G_M26551_IG03:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             movt    r0, HIGH ADDRESS J_M26551_DS00
 
     J_M26551_DS00 LABEL   DWORD
-            DD      G_M26551_IG05
-            DD      G_M26551_IG07
-            DD      G_M26551_IG05
-            DD      G_M26551_IG05
-            DD      G_M26551_IG05
+            DD      G_M26551_IG08
+            DD      G_M26551_IG06
+            DD      G_M26551_IG08
+            DD      G_M26551_IG08
+            DD      G_M26551_IG08
             ldr     pc, [r0+4*r7]
                        ;; size=24 bbWeight=8 PerfScore 72.00
 G_M26551_IG04:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             subs    r0, 15
             cmp     r0, 1
-            bls     SHORT G_M26551_IG05
+            bls     SHORT G_M26551_IG08
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r5+0x4C]
@@ -59,17 +59,10 @@ G_M26551_IG04:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             cmp     r0, 0
             bne     SHORT G_M26551_IG03
                        ;; size=18 bbWeight=4 PerfScore 36.00
-G_M26551_IG05:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
-            mov     r0, r4
-            ; gcrRegs +[r0]
-            ldr     r3, [r6+0x14]
-                       ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M26551_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r4,r5,r6,r7,r11,lr}
-            bx      r3     // <unknown method>
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M26551_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r0]
+G_M26551_IG05:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M26551_IG08
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M26551_IG06:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r5+0x4C]
@@ -80,18 +73,28 @@ G_M26551_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4},
             ; gcrRegs +[r0]
             ldr     r3, [r6+0x14]
                        ;; size=12 bbWeight=0.50 PerfScore 3.00
-G_M26551_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26551_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r4,r5,r6,r7,r11,lr}
             bx      r3     // <unknown method>
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-RWD00   dd  G_M26551_IG05
-           dd  G_M26551_IG07
-           dd  G_M26551_IG05
-           dd  G_M26551_IG05
-           dd  G_M26551_IG05
+G_M26551_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[r0]
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            ldr     r3, [r6+0x14]
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M26551_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r4,r5,r6,r7,r11,lr}
+            bx      r3     // <unknown method>
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+RWD00      dd  G_M26551_IG08
+           dd  G_M26551_IG06
+           dd  G_M26551_IG08
+           dd  G_M26551_IG08
+           dd  G_M26551_IG08
 
 
-; Total bytes of code 84, prolog size 8, PerfScore 119.00, instruction count 35, allocated bytes for code 84 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
+; Total bytes of code 86, prolog size 8, PerfScore 119.50, instruction count 36, allocated bytes for code 86 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -103,7 +106,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 42 (0x0002a) Actual length = 84 (0x000054)
+  Function Length   : 43 (0x0002b) Actual length = 86 (0x000056)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+8 (+2.52%) : 14227.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (FullOpts)
@@ -22,7 +22,7 @@
 ;  V12 cse0         [V12,T07] (  8, 11.50)   byref  ->   r0         "CSE - aggressive"
 ;  V13 cse1         [V13,T06] (  3, 11.88)     int  ->   r5         "CSE - aggressive"
 ;  V14 cse2         [V14,T12] (  8,  4.58)     int  ->   lr         "CSE - aggressive"
-;  V15 cse3         [V15,T14] (  3,  1.50)     int  ->   r1         "CSE - moderate"
+;  V15 cse3         [V15,T14] (  3,  1.50)     int  ->  r12         "CSE - moderate"
 ;
 ; Lcl frame size = 4
 
@@ -175,23 +175,23 @@ G_M61408_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, b
             ; byrRegs -[r0]
             cmp     r12, 0
             bne     SHORT G_M61408_IG23
-            ldr     r1, [r3]
-            cmp     r1, 0x80000000
+            ldr     r12, [r3]
+            cmp     r12, 0x80000000
             beq     SHORT G_M61408_IG19
-            rsbs    r0, r1, 0
+            rsbs    r0, r12, 0
             str     r0, [r3]
             b       SHORT G_M61408_IG23
-                      ;; size=20 bbWeight=0.50 PerfScore 4.00
+                       ;; size=24 bbWeight=0.50 PerfScore 4.00
 G_M61408_IG17:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
             ; byrRegs -[r3] +[r0]
             cmp     r2, lr
             bhs     SHORT G_M61408_IG25
             lsls    r3, r2, 1
-            ldrh    r1, [r0+r3]
-            subs    r1, 48
+            ldrh    r12, [r0+r3]
+            sub     r1, r12, 48
             cmp     r1, 9
             bhi     SHORT G_M61408_IG21
-                      ;; size=14 bbWeight=2 PerfScore 14.00
+                     ;; size=18 bbWeight=2 PerfScore 14.00
 G_M61408_IG18:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
             adds    r2, r2, 1
             cmp     r2, r4
@@ -224,7 +224,7 @@ G_M61408_IG25:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 318, prolog size 8, PerfScore 154.70, instruction count 132, allocated bytes for code 318 (MethodHash=3cdf101f) for method Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (FullOpts)
+; Total bytes of code 326, prolog size 8, PerfScore 154.70, instruction count 132, allocated bytes for code 326 (MethodHash=3cdf101f) for method Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -236,7 +236,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 159 (0x0009f) Actual length = 318 (0x00013e)
+  Function Length   : 163 (0x000a3) Actual length = 326 (0x000146)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+46 (+2.82%) : 17417.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (FullOpts)
@@ -25,10 +25,10 @@
 ;  V14 loc10        [V14,T11] (  7,  7   )     int  ->  [sp+0x9C] 
 ;  V15 loc11        [V15,T12] (  6,  6   )     int  ->  [sp+0x98] 
 ;  V16 loc12        [V16    ] ( 16, 16   )  struct ( 8) [sp+0x90]  do-not-enreg[XS] addr-exposed ld-addr-op double-align <System.DateTime>
-;  V17 loc13        [V17,T22] (  5,  5   )     int  ->   r9        
-;  V18 loc14        [V18,T29] (  4,  4   )     int  ->   r6        
-;  V19 loc15        [V19,T05] (  4, 16   )   ubyte  ->   r6        
-;  V20 loc16        [V20,T01] (  5, 26   )     int  ->   r6        
+;  V17 loc13        [V17,T22] (  5,  5   )     int  ->   r6        
+;  V18 loc14        [V18,T29] (  4,  4   )     int  ->   r9        
+;  V19 loc15        [V19,T05] (  4, 16   )   ubyte  ->   r9        
+;  V20 loc16        [V20,T01] (  5, 26   )     int  ->   r9        
 ;  V21 loc17        [V21,T23] (  5,  5   )   ubyte  ->  [sp+0x8C]  spill-single-def
 ;* V22 loc18        [V22,T64] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[Z] EH-live
 ;* V23 loc19        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op double-align <System.TimeSpan>
@@ -49,8 +49,8 @@
 ;* V38 tmp13        [V38,T58] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V39 tmp14        [V39    ] (  0,  0   )  struct ( 8) zero-ref    "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
 ;* V40 tmp15        [V40    ] (  0,  0   )  struct ( 8) zero-ref    "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
-;  V41 tmp16        [V41,T35] (  3,  3   )     int  ->   r6         "Inline stloc first use temp"
-;  V42 tmp17        [V42,T36] (  3,  3   )     int  ->   r8         "Inline stloc first use temp"
+;  V41 tmp16        [V41,T35] (  3,  3   )     int  ->   r8         "Inline stloc first use temp"
+;  V42 tmp17        [V42,T36] (  3,  3   )     int  ->   r6         "Inline stloc first use temp"
 ;* V43 tmp18        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V44 tmp19        [V44    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V45 tmp20        [V45    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
@@ -116,7 +116,7 @@
 ;  V105 rat9        [V105,T49] (  2,  3   )     int  ->   r2         "field V104.lo (fldOffset=0x0)" P-INDEP
 ;  V106 rat10       [V106,T50] (  2,  3   )     int  ->   r3         "field V104.hi (fldOffset=0x4)" P-INDEP
 ;  V107 rat11       [V107,T18] (  2,  4   )     int  ->   r7         "ReplaceWithLclVar is creating a new local variable"
-;  V108 rat12       [V108,T19] (  3,  6   )     int  ->   r4         "ReplaceWithLclVar is creating a new local variable"
+;  V108 rat12       [V108,T19] (  3,  6   )     int  ->   r6         "ReplaceWithLclVar is creating a new local variable"
 ;  V109 rat13       [V109    ] (  1,  2   )    long  ->  [sp+0x20]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
 ;  V110 rat14       [V110,T51] (  2,  3   )     int  ->   r2         "field V109.lo (fldOffset=0x0)" P-INDEP
 ;  V111 rat15       [V111,T52] (  2,  3   )     int  ->   r3         "field V109.hi (fldOffset=0x4)" P-INDEP
@@ -148,7 +148,7 @@ G_M12053_IG02:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, by
             ldr     r0, [r0]
             and     r0, r0, 1
             cmp     r0, 1
-            bne     G_M12053_IG38
+            bne     G_M12053_IG39
                         ;; size=24 bbWeight=1 PerfScore 7.00
 G_M12053_IG03:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, byref, isz
             movw    r0, 0xd1ff
@@ -164,11 +164,11 @@ G_M12053_IG03:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, by
             ldr     r0, [r9+0x08]
             str     r0, [r6+0x04]
             cmp     r7, 19
-            blt     G_M12053_IG16
+            blt     G_M12053_IG17
             adds    r0, r4, 4
             ldr     r7, [r5+0x04]
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             add     r3, r5, 8
             ; byrRegs +[r3]
             str     r3, [sp+0x0C]
@@ -176,35 +176,35 @@ G_M12053_IG03:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, by
             adds    r0, r4, 4
             ldrb    r0, [r3+r0]
             cmp     r0, 45
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             adds    r0, r4, 7
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             adds    r0, r4, 7
             ldrb    r0, [r3+r0]
             cmp     r0, 45
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             add     r0, r4, 10
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             add     r0, r4, 10
             ldrb    r0, [r3+r0]
             cmp     r0, 84
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             add     r0, r4, 13
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             add     r0, r4, 13
             ldrb    r0, [r3+r0]
             cmp     r0, 58
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             add     r0, r4, 16
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             add     r0, r4, 16
             ldrb    r0, [r3+r0]
             cmp     r0, 58
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             mov     r0, r5
             ; gcrRegs +[r0]
             mov     r1, r4
@@ -279,138 +279,144 @@ G_M12053_IG03:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, by
             str     r3, [sp+0xA8]  // [V10 loc6]
             orrs    r0, r3
             cmp     r0, 0
-            blt     G_M12053_IG16
+            blt     G_M12053_IG17
             movs    r0, 0
             str     r0, [sp+0xA4]  // [V11 loc7]
             adds    r4, 19
             mov     r9, 0
             cmp     r4, r8
-            bge     SHORT G_M12053_IG10
+            bge     SHORT G_M12053_IG07
             cmp     r4, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             ldr     r1, [sp+0x0C]  // [V94 cse3]
             ; byrRegs +[r1]
             ldrb    r6, [r1+r4]
             cmp     r6, 46
+            mov     r6, r9
             bne     SHORT G_M12053_IG06
             adds    r4, r4, 1
-            mov     r9, r4
-            cmp     r9, r8
-            bge     SHORT G_M12053_IG08
-            orrs    r6, r9, r8
-            cmp     r6, 0
-            blt     SHORT G_M12053_IG07
+            mov     r6, r4
+            cmp     r6, r8
+            bge     SHORT G_M12053_IG09
+            orrs    r9, r6, r8
+            cmp     r9, 0
+            blt     SHORT G_M12053_IG08
             cmp     r7, r8
-            blt     SHORT G_M12053_IG07
-                       ;; size=352 bbWeight=1 PerfScore 126.00
+            blt     SHORT G_M12053_IG08
+                       ;; size=356 bbWeight=1 PerfScore 127.00
 G_M12053_IG04:        ; bbWeight=7.92, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
-            ldrb    r6, [r1+r4]
-            subs    r6, 48
-            cmp     r6, 9
-            bhi     SHORT G_M12053_IG08
+            ldrb    r9, [r1+r4]
+            sub     r9, r9, 48
+            cmp     r9, 9
+            bhi     SHORT G_M12053_IG09
             adds    r4, r4, 1
             cmp     r4, r8
             blt     SHORT G_M12053_IG04
-                      ;; size=14 bbWeight=7.92 PerfScore 55.44
+                      ;; size=20 bbWeight=7.92 PerfScore 55.44
 G_M12053_IG05:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
-            b       SHORT G_M12053_IG08
+            b       SHORT G_M12053_IG09
                       ;; size=2 bbWeight=1 PerfScore 1.00
 G_M12053_IG06:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
-            b       SHORT G_M12053_IG10
+            b       SHORT G_M12053_IG11
                       ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M12053_IG07:        ; bbWeight=0.08, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
+G_M12053_IG07:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs -[r1]
+            mov     r6, r9
+            b       SHORT G_M12053_IG11
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M12053_IG08:        ; bbWeight=0.08, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
+            ; byrRegs +[r1]
             cmp     r4, r7
-            bhs     G_M12053_IG37
-            ldrb    r6, [r1+r4]
-            subs    r6, 48
-            cmp     r6, 9
-            bhi     SHORT G_M12053_IG11
+            bhs     G_M12053_IG38
+            ldrb    r9, [r1+r4]
+            sub     r9, r9, 48
+            cmp     r9, 9
+            bhi     SHORT G_M12053_IG12
             adds    r4, r4, 1
             cmp     r4, r8
             ldr     r1, [sp+0x0C]  // [V94 cse3]
-            blt     SHORT G_M12053_IG07
-                       ;; size=22 bbWeight=0.08 PerfScore 0.80
-G_M12053_IG08:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
-            sub     r6, r4, r9
-            subs    r3, r6, 1
+            blt     SHORT G_M12053_IG08
+                       ;; size=28 bbWeight=0.08 PerfScore 0.80
+G_M12053_IG09:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
+            sub     r9, r4, r6
+            sub     r3, r9, 1
             cmp     r3, 6
-            bhi     SHORT G_M12053_IG16
+            bhi     SHORT G_M12053_IG17
             mov     r0, r5
             ; gcrRegs +[r0]
-            mov     r1, r9
+            mov     r1, r6
             ; byrRegs -[r1]
-            mov     r2, r6
+            mov     r2, r9
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // System.Xml.XmlConverter:ToInt32D7(ubyte[],int,int):int
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            mov     r9, r0
-            cmp     r9, 0
-            blt     SHORT G_M12053_IG16
-            cmp     r6, 7
-            bge     SHORT G_M12053_IG10
-                       ;; size=40 bbWeight=1 PerfScore 16.00
-G_M12053_IG09:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r6, r0
+            cmp     r6, 0
+            blt     SHORT G_M12053_IG17
+            cmp     r9, 7
+            bge     SHORT G_M12053_IG11
+                       ;; size=42 bbWeight=1 PerfScore 16.00
+G_M12053_IG10:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             movs    r0, 10
-            mul     r9, r9, r0
-            adds    r6, r6, 1
-            cmp     r6, 7
-            blt     SHORT G_M12053_IG09
-                       ;; size=12 bbWeight=8 PerfScore 40.00
-G_M12053_IG10:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
-            movs    r6, 0
+            mul     r6, r6, r0
+            add     r9, r9, 1
+            cmp     r9, 7
+            blt     SHORT G_M12053_IG10
+                       ;; size=16 bbWeight=8 PerfScore 40.00
+G_M12053_IG11:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r9, 0
             movs    r3, 0
             movs    r2, 0
             cmp     r4, r8
-            bge     SHORT G_M12053_IG15
+            bge     SHORT G_M12053_IG16
             cmp     r4, r7
-            bhs     G_M12053_IG37
-            ldr     r0, [sp+0x0C]  // [V94 cse3]
...
  
  
benchmarks.run_pgo.linux.arm.checked.mch
-16 (-8.99%) : 9172.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,uint,System.Object) (Tier1)
@@ -15,15 +15,15 @@
 ;* V03 loc0         [V03    ] (  0,  0   )     int  ->  zero-ref   
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T11] (  2,  4   )     ref  ->   r3         class-hnd single-def "impAppendStmt" <int[]>
-;  V06 tmp2         [V06,T12] (  2,  2   )     int  ->  r12         "Inline return value spill temp"
-;  V07 tmp3         [V07,T05] (  4, 18   )   byref  ->   r5         single-def "Inline stloc first use temp"
-;  V08 tmp4         [V08,T04] (  3, 20   )     int  ->   r4         "Inlining Arg"
-;  V09 tmp5         [V09,T03] (  4, 25   )     int  ->   r6         "Inline stloc first use temp"
-;  V10 tmp6         [V10,T00] (  5, 33   )     int  ->   r7         "Inline stloc first use temp"
-;  V11 tmp7         [V11,T02] (  5, 29   )   byref  ->   r3         "Inline stloc first use temp"
-;  V12 tmp8         [V12,T01] (  5, 33   )     int  ->   lr         "Inline stloc first use temp"
-;  V13 tmp9         [V13,T06] (  2, 16   )     int  ->  r12         "Inline stloc first use temp"
-;  V14 tmp10        [V14,T08] (  3,  9   )     int  ->  r12         "Inline stloc first use temp"
+;  V06 tmp2         [V06,T12] (  2,  2   )     int  ->   r7         "Inline return value spill temp"
+;  V07 tmp3         [V07,T05] (  4, 18   )   byref  ->   r3         single-def "Inline stloc first use temp"
+;  V08 tmp4         [V08,T04] (  3, 20   )     int  ->   lr         "Inlining Arg"
+;  V09 tmp5         [V09,T03] (  4, 25   )     int  ->  r12         "Inline stloc first use temp"
+;  V10 tmp6         [V10,T00] (  5, 33   )     int  ->   r4         "Inline stloc first use temp"
+;  V11 tmp7         [V11,T02] (  5, 29   )   byref  ->   r5         "Inline stloc first use temp"
+;  V12 tmp8         [V12,T01] (  5, 33   )     int  ->   r6         "Inline stloc first use temp"
+;  V13 tmp9         [V13,T06] (  2, 16   )     int  ->   r7         "Inline stloc first use temp"
+;  V14 tmp10        [V14,T08] (  3,  9   )     int  ->   r7         "Inline stloc first use temp"
 ;* V15 tmp11        [V15    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V16 tmp12        [V16    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
@@ -40,74 +40,76 @@ G_M35959_IG02:        ; bbWeight=1, gcrefRegs=0004 {r2}, byrefRegs=0001 {r0}, by
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             ; gcrRegs +[r3]
-            ldr     r4, [r2]
-            add     r5, r3, 8
-            ; byrRegs +[r5]
-            ror     r3, r4, 16
+            ldr     lr, [r2]
+            adds    r3, 8
             ; gcrRegs -[r3]
-            eors    r3, r1
-            movw    lr, 0xd1ff
-            movt    lr, 0xd1ff
-            mul     r3, r3, lr
-            ldr     lr, [r5]
-            and     lr, lr, 31
-            lsr     r6, r3, lr
-            movs    r7, 0
-                       ;; size=48 bbWeight=1 PerfScore 14.00
-G_M35959_IG03:        ; bbWeight=8, gcrefRegs=0004 {r2}, byrefRegs=0021 {r0 r5}, byref, isz
-            adds    r3, r6, 1
-            mov     lr, 12
-            mul     r3, r3, lr
-            adds    r3, r5, r3
             ; byrRegs +[r3]
-            ldr     lr, [r3]
-            dmb     15
-            ldr     r12, [r3+0x04]
-            mvn     r8, 1
-            and     lr, lr, r8
-            cmp     r12, r4
-            bne     SHORT G_M35959_IG05
-                       ;; size=36 bbWeight=8 PerfScore 88.00
-G_M35959_IG04:        ; bbWeight=4, gcrefRegs=0004 {r2}, byrefRegs=0029 {r0 r3 r5}, byref, isz
-            ldr     r12, [r3+0x08]
+            ror     r12, lr, 16
             eor     r12, r12, r1
-            cmp     r12, 1
-            bls     SHORT G_M35959_IG06
-                       ;; size=14 bbWeight=4 PerfScore 16.00
-G_M35959_IG05:        ; bbWeight=8, gcrefRegs=0004 {r2}, byrefRegs=0021 {r0 r5}, byref, isz
-            ; byrRegs -[r3]
-            cmp     lr, 0
-            beq     SHORT G_M35959_IG08
-            adds    r7, r7, 1
-            add     r12, r6, r7
-            ldr     r3, [r5+0x04]
-            and     r6, r12, r3
-            cmp     r7, 8
-            bge     SHORT G_M35959_IG08
-            b       SHORT G_M35959_IG03
-                       ;; size=24 bbWeight=8 PerfScore 72.00
-G_M35959_IG06:        ; bbWeight=1, gcrefRegs=0004 {r2}, byrefRegs=0009 {r0 r3}, byref, isz
-            ; byrRegs -[r5] +[r3]
+            movw    r4, 0xd1ff
+            movt    r4, 0xd1ff
+            mul     r12, r12, r4
+            ldr     r4, [r3]
+            and     r4, r4, 31
+            lsr     r12, r12, r4
+            movs    r4, 0
+                       ;; size=48 bbWeight=1 PerfScore 14.00
+G_M35959_IG03:        ; bbWeight=8, gcrefRegs=0004 {r2}, byrefRegs=0009 {r0 r3}, byref, isz
+            add     r5, r12, 1
+            movs    r6, 12
+            mul     r5, r5, r6
+            adds    r5, r3, r5
+            ; byrRegs +[r5]
+            ldr     r6, [r5]
             dmb     15
-            ldr     r3, [r3]
+            ldr     r7, [r5+0x04]
+            mvn     r8, 1
+            and     r6, r6, r8
+            cmp     r7, lr
+            bne     SHORT G_M35959_IG05
+                       ;; size=32 bbWeight=8 PerfScore 88.00
+G_M35959_IG04:        ; bbWeight=4, gcrefRegs=0004 {r2}, byrefRegs=0029 {r0 r3 r5}, byref, isz
+            ldr     r7, [r5+0x08]
+            eors    r7, r1
+            cmp     r7, 1
+            bls     SHORT G_M35959_IG07
+                       ;; size=8 bbWeight=4 PerfScore 16.00
+G_M35959_IG05:        ; bbWeight=8, gcrefRegs=0004 {r2}, byrefRegs=0009 {r0 r3}, byref, isz
+            ; byrRegs -[r5]
+            cmp     r6, 0
+            beq     SHORT G_M35959_IG09
+            adds    r4, r4, 1
+            add     r12, r4
+            ldr     r7, [r3+0x04]
+            and     r12, r12, r7
+            cmp     r4, 8
+            blt     SHORT G_M35959_IG03
+                       ;; size=18 bbWeight=8 PerfScore 64.00
+G_M35959_IG06:        ; bbWeight=1, gcrefRegs=0004 {r2}, byrefRegs=0001 {r0}, byref, isz
             ; byrRegs -[r3]
-            cmp     lr, r3
-            bne     SHORT G_M35959_IG08
-            cmp     r12, 1
-            bne     SHORT G_M35959_IG08
+            b       SHORT G_M35959_IG09
+                       ;; size=2 bbWeight=1 PerfScore 1.00
+G_M35959_IG07:        ; bbWeight=1, gcrefRegs=0004 {r2}, byrefRegs=0021 {r0 r5}, byref, isz
+            ; byrRegs +[r5]
+            dmb     15
+            ldr     r3, [r5]
+            cmp     r6, r3
+            bne     SHORT G_M35959_IG09
+            cmp     r7, 1
+            bne     SHORT G_M35959_IG09
             mov     r1, r2
             ; gcrRegs +[r1]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // <unknown method>
             ; gcrRegs -[r1-r2]
-            ; byrRegs -[r0]
+            ; byrRegs -[r0 r5]
             ; gcr arg pop 0
-                       ;; size=28 bbWeight=1 PerfScore 10.00
-G_M35959_IG07:        ; bbWeight=1, epilog, nogc, extend
+                     ;; size=26 bbWeight=1 PerfScore 10.00
+G_M35959_IG08:        ; bbWeight=1, epilog, nogc, extend
             pop     {r3,r4,r5,r6,r7,r8,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M35959_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0004 {r2}, byrefRegs=0001 {r0}, gcvars, byref
+G_M35959_IG09:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0004 {r2}, byrefRegs=0001 {r0}, gcvars, byref
             ; gcrRegs +[r2]
             ; byrRegs +[r0]
             movw    r3, 0xd1ff
@@ -118,11 +120,11 @@ G_M35959_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0004 {r2}, byr
             ; byrRegs -[r0]
             ; gcr arg pop 0
                        ;; size=12 bbWeight=0 PerfScore 0.00
-G_M35959_IG09:        ; bbWeight=0, epilog, nogc, extend
+G_M35959_IG10:        ; bbWeight=0, epilog, nogc, extend
             pop     {r3,r4,r5,r6,r7,r8,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 178, prolog size 8, PerfScore 203.00, instruction count 56, allocated bytes for code 178 (MethodHash=fc727388) for method System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,uint,System.Object) (Tier1)
+; Total bytes of code 162, prolog size 8, PerfScore 196.00, instruction count 56, allocated bytes for code 162 (MethodHash=fc727388) for method System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,uint,System.Object) (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -134,7 +136,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 89 (0x00059) Actual length = 178 (0x0000b2)
+  Function Length   : 81 (0x00051) Actual length = 162 (0x0000a2)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
-16 (-6.72%) : 100071.dasm - Microsoft.CodeAnalysis.CSharp.BoundBlock:.ctor(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionSymbol],ubyte,Microsoft.CodeAnalysis.CSharp.BoundBlockInstrumentation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],ubyte):this (Tier1)
@@ -31,7 +31,7 @@
 ;  V19 tmp11        [V19,T10] (  3,  3   )   ubyte  ->   r1         "Inline return value spill temp"
 ;* V20 tmp12        [V20    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement]>
 ;  V21 tmp13        [V21,T00] (  5, 32.68)     int  ->   r1         "Inline stloc first use temp"
-;  V22 tmp14        [V22,T02] (  3,  9.92)     int  ->  r12         single-def "Inline stloc first use temp"
+;  V22 tmp14        [V22,T02] (  3,  9.92)     int  ->   r0         single-def "Inline stloc first use temp"
 ;* V23 tmp15        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;* V24 tmp16        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp17        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -43,11 +43,11 @@
 ;  V31 tmp23        [V31,T04] (  4,  4   )     ref  ->  [sp+0x18]  do-not-enreg[] single-def "field V02.array (fldOffset=0x0)" P-DEP
 ;  V32 tmp24        [V32,T05] (  4,  4   )     ref  ->  [sp+0x1C]  do-not-enreg[] single-def "field V03.array (fldOffset=0x0)" P-DEP
 ;  V33 tmp25        [V33,T07] (  4,  3   )     ref  ->  [sp+0x28]  do-not-enreg[] single-def "field V06.array (fldOffset=0x0)" P-DEP
-;  V34 tmp26        [V34,T09] (  3,  3   )     ref  ->   r0         single-def "field V12.array (fldOffset=0x0)" P-INDEP
-;  V35 tmp27        [V35,T12] (  3,  2   )     ref  ->  [sp+0x00]  "field V16.array (fldOffset=0x0)" P-INDEP
+;  V34 tmp26        [V34,T09] (  3,  3   )     ref  ->   r4         single-def "field V12.array (fldOffset=0x0)" P-INDEP
+;  V35 tmp27        [V35,T12] (  3,  2   )     ref  ->   r4         "field V16.array (fldOffset=0x0)" P-INDEP
 ;* V36 tmp28        [V36,T19] (  0,  0   )     ref  ->  zero-ref    single-def "field V20.array (fldOffset=0x0)" P-INDEP
-;  V37 cse0         [V37,T15] (  2,  2   )     int  ->  r12         "CSE - aggressive"
-;  V38 cse1         [V38,T03] (  2,  8.92)   byref  ->   r4         hoist "CSE - aggressive"
+;  V37 cse0         [V37,T15] (  2,  2   )     int  ->   r0         "CSE - aggressive"
+;  V38 cse1         [V38,T03] (  2,  8.92)   byref  ->  r12         hoist "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -64,21 +64,21 @@ G_M59896_IG02:        ; bbWeight=1, gcrefRegs=000E {r1 r2 r3}, byrefRegs=0000 {}
             ; gcrRegs +[r1]
             mov     lr, r1
             ; gcrRegs +[lr]
-            ldr     r0, [sp+0x28]
-            ; gcrRegs +[r0]
-            ldrb    r12, [sp+0x2C]
-            cmp     r12, 0
+            ldr     r4, [sp+0x28]
+            ; gcrRegs +[r4]
+            ldrb    r0, [sp+0x2C]
+            cmp     r0, 0
             bne     SHORT G_M59896_IG11
             cmp     r3, 0
             beq     SHORT G_M59896_IG03
             str     r3, [sp+0x24]
-            ldrsh   r12, [r3+0x08]
-            ands    r12, r12, 1
-            cmp     r12, 0
+            ldrsh   r0, [r3+0x08]
+            ands    r0, r0, 1
+            cmp     r0, 0
             ldr     r3, [sp+0x24] // [V05 arg5]
             bne     SHORT G_M59896_IG11
-                      ;; size=36 bbWeight=1 PerfScore 13.00
-G_M59896_IG03:        ; bbWeight=1, gcrefRegs=400D {r0 r2 r3 lr}, byrefRegs=0000 {}, byref, isz
+                      ;; size=32 bbWeight=1 PerfScore 13.00
+G_M59896_IG03:        ; bbWeight=1, gcrefRegs=401C {r2 r3 r4 lr}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r1]
             ldr     r1, [sp+0x28]  // [V33 tmp25]
             ; gcrRegs +[r1]
@@ -86,18 +86,18 @@ G_M59896_IG03:        ; bbWeight=1, gcrefRegs=400D {r0 r2 r3 lr}, byrefRegs=0000
             beq     SHORT G_M59896_IG05
             movs    r1, 0
             ; gcrRegs -[r1]
-            ldr     r12, [sp+0x28]    // [V33 tmp25]
-            ; gcrRegs +[r12]
-            ldr     r12, [r12+0x04]
-            ; gcrRegs -[r12]
-            cmp     r12, 0
+            ldr     r0, [sp+0x28]  // [V33 tmp25]
+            ; gcrRegs +[r0]
+            ldr     r0, [r0+0x04]
+            ; gcrRegs -[r0]
+            cmp     r0, 0
             ble     SHORT G_M59896_IG05
-            add     r4, r0, 8
-            ; byrRegs +[r4]
-                       ;; size=26 bbWeight=1 PerfScore 9.00
-G_M59896_IG04:        ; bbWeight=7.92, gcrefRegs=400D {r0 r2 r3 lr}, byrefRegs=0010 {r4}, byref, isz
+            add     r12, r4, 8
+            ; byrRegs +[r12]
+                       ;; size=20 bbWeight=1 PerfScore 9.00
+G_M59896_IG04:        ; bbWeight=7.92, gcrefRegs=401C {r2 r3 r4 lr}, byrefRegs=1000 {r12}, byref, isz
             lsls    r5, r1, 2
-            ldr     r5, [r4+r5]
+            ldr     r5, [r12+r5]
             ; gcrRegs +[r5]
             ldrsh   r5, [r5+0x08]
             ; gcrRegs -[r5]
@@ -105,25 +105,23 @@ G_M59896_IG04:        ; bbWeight=7.92, gcrefRegs=400D {r0 r2 r3 lr}, byrefRegs=0
             cmp     r5, 0
             bne     SHORT G_M59896_IG06
             adds    r1, r1, 1
-            cmp     r1, r12
+            cmp     r1, r0
             blt     SHORT G_M59896_IG04
-                        ;; size=22 bbWeight=7.92 PerfScore 71.28
-G_M59896_IG05:        ; bbWeight=1, gcrefRegs=400D {r0 r2 r3 lr}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r4]
+                      ;; size=24 bbWeight=7.92 PerfScore 71.28
+G_M59896_IG05:        ; bbWeight=1, gcrefRegs=401C {r2 r3 r4 lr}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs -[r12]
             movs    r1, 0
             b       SHORT G_M59896_IG07
                        ;; size=4 bbWeight=1 PerfScore 2.00
-G_M59896_IG06:        ; bbWeight=1, gcrefRegs=400D {r0 r2 r3 lr}, byrefRegs=0000 {}, byref
+G_M59896_IG06:        ; bbWeight=1, gcrefRegs=401C {r2 r3 r4 lr}, byrefRegs=0000 {}, byref
             movs    r1, 1
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M59896_IG07:        ; bbWeight=1, gcrefRegs=400D {r0 r2 r3 lr}, byrefRegs=0000 {}, byref
-            str     r0, [sp]   // [V35 tmp27]
-            ; GC ptr vars +{V35}
+G_M59896_IG07:        ; bbWeight=1, gcrefRegs=401C {r2 r3 r4 lr}, byrefRegs=0000 {}, byref
             str     r1, [sp+0x04]  // [V17 tmp9]
             str     r3, [sp+0x24]  // [V05 arg5]
-                     ;; size=6 bbWeight=1 PerfScore 3.00
-G_M59896_IG08:        ; bbWeight=1, gcVars=00001000 {V35}, gcrefRegs=4004 {r2 lr}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[r0 r3]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
+G_M59896_IG08:        ; bbWeight=1, gcrefRegs=4014 {r2 r4 lr}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r3]
             movs    r0, 80
             strb    r0, [r2+0x0A]
             adds    r0, r2, 4
@@ -139,16 +137,15 @@ G_M59896_IG08:        ; bbWeight=1, gcVars=00001000 {V35}, gcrefRegs=4004 {r2 lr
             cmp     r1, 0
             bne     SHORT G_M59896_IG12
                        ;; size=26 bbWeight=1 PerfScore 10.00
-G_M59896_IG09:        ; bbWeight=1, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, byref
+G_M59896_IG09:        ; bbWeight=1, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, byref
             add     r0, r2, 12
             ; byrRegs +[r0]
-            ldr     r1, [sp]  // [V35 tmp27]
+            mov     r1, r4
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
-            ; GC ptr vars -{V35}
             blx     r12       // CORINFO_HELP_ASSIGN_REF
-            ; gcrRegs -[r1]
+            ; gcrRegs -[r1 r4]
             ; byrRegs -[r0]
             add     r0, r2, 24
             ; byrRegs +[r0]
@@ -187,25 +184,23 @@ G_M59896_IG10:        ; bbWeight=1, epilog, nogc, extend
                        ;; size=8 bbWeight=1 PerfScore 3.00
 G_M59896_IG11:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=000E {r1 r2 r3}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r1-r3]
-            ldr     r0, [sp+0x28]  // [V33 tmp25]
-            ; gcrRegs +[r0]
-            mov     lr, 1
+            ldr     r4, [sp+0x28]   // [V33 tmp25]
+            ; gcrRegs +[r4]
+            movs    r0, 1
             str     r3, [sp+0x24] // [V05 arg5]
-            str     r0, [sp] // [V35 tmp27]
-            ; GC ptr vars +{V35}
-            str     lr, [sp+0x04]  // [V17 tmp9]
+            str     r0, [sp+0x04]    // [V17 tmp9]
             mov     lr, r1
             ; gcrRegs +[lr]
             b       SHORT G_M59896_IG08
-                      ;; size=18 bbWeight=0 PerfScore 0.00
-G_M59896_IG12:        ; bbWeight=0, gcVars=00001000 {V35}, gcrefRegs=0004 {r2}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[r0-r1 r3 lr]
+                     ;; size=12 bbWeight=0 PerfScore 0.00
+G_M59896_IG12:        ; bbWeight=0, gcrefRegs=0014 {r2 r4}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r1 r3 lr]
             movs    r1, 1
             strh    r1, [r2+0x08]
             b       SHORT G_M59896_IG09
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 238, prolog size 14, PerfScore 139.28, instruction count 87, allocated bytes for code 238 (MethodHash=8f681607) for method Microsoft.CodeAnalysis.CSharp.BoundBlock:.ctor(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionSymbol],ubyte,Microsoft.CodeAnalysis.CSharp.BoundBlockInstrumentation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],ubyte):this (Tier1)
+; Total bytes of code 222, prolog size 14, PerfScore 138.28, instruction count 85, allocated bytes for code 222 (MethodHash=8f681607) for method Microsoft.CodeAnalysis.CSharp.BoundBlock:.ctor(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionSymbol],ubyte,Microsoft.CodeAnalysis.CSharp.BoundBlockInstrumentation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],ubyte):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -217,7 +212,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 119 (0x00077) Actual length = 238 (0x0000ee)
+  Function Length   : 111 (0x0006f) Actual length = 222 (0x0000de)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
-20 (-6.45%) : 15212.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (Tier0-FullOpts)
@@ -17,13 +17,13 @@
 ;  V07 tmp2         [V07,T09] (  4,  2   )     ref  ->   lr         "field V03.Cert (fldOffset=0x0)" P-INDEP
 ;  V08 tmp3         [V08,T10] (  4,  2   )     ref  ->  [sp+0x00]  "field V03.Key (fldOffset=0x4)" P-INDEP
 ;  V09 tmp4         [V09,T05] (  3,  3   )   byref  ->   r3         single-def "BlockOp address local"
-;  V10 tmp5         [V10,T07] (  3,  3   )     int  ->   r0         "index expr"
+;  V10 tmp5         [V10,T07] (  3,  3   )     int  ->   r4         "index expr"
 ;  V11 tmp6         [V11,T06] (  3,  3   )   byref  ->   r3         single-def "BlockOp address local"
 ;* V12 tmp7         [V12,T13] (  0,  0   )     int  ->  zero-ref    "index expr"
 ;  V13 tmp8         [V13,T15] (  2,  0   )     ref  ->   r1         single-def "argument with side effect"
 ;  V14 cse0         [V14,T11] (  3,  1.50)   byref  ->   r0         "CSE - moderate"
 ;  V15 cse1         [V15,T12] (  3,  1.50)   byref  ->   r0         "CSE - moderate"
-;  V16 cse2         [V16,T04] (  3,  2.50)     int  ->   r0         "CSE - aggressive"
+;  V16 cse2         [V16,T04] (  3,  2.50)     int  ->   r4         "CSE - aggressive"
 ;  V17 cse3         [V17,T08] (  3,  3   )     int  ->   r0         "CSE - aggressive"
 ;
 ; Lcl frame size = 12
@@ -42,57 +42,57 @@ G_M3164_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0002 {r1}, byr
             ; gcrRegs -[r0]
             cmp     r0, 0
             ble     SHORT G_M3164_IG11
-            subs    r0, r0, 1
-            mov     r3, r0
+            subs    r4, r0, 1
+            mov     r3, r4
             cmp     r3, 0
             blt     SHORT G_M3164_IG06
             cmp     r2, 0
             beq     SHORT G_M3164_IG05
-            ldr     lr, [r2+0x04]
-            cmp     lr, r3
+            ldr     r0, [r2+0x04]
+            cmp     r0, r3
             ble     SHORT G_M3164_IG05
-                     ;; size=28 bbWeight=1 PerfScore 13.00
+                     ;; size=26 bbWeight=1 PerfScore 13.00
 G_M3164_IG03:        ; bbWeight=3.96, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            lsl     lr, r3, 3
-            add     lr, lr, 8
-            add     lr, r2
-            ; byrRegs +[lr]
-            ldr     lr, [lr+0x04]
-            ; gcrRegs +[lr]
-            ; byrRegs -[lr]
-            cmp     lr, 0
+            lsls    r0, r3, 3
+            adds    r0, 8
+            adds    r0, r2, r0
+            ; byrRegs +[r0]
+            ldr     r0, [r0+0x04]
+            ; gcrRegs +[r0]
+            ; byrRegs -[r0]
+            cmp     r0, 0
             bne     SHORT G_M3164_IG08
             subs    r3, r3, 1
             cmp     r3, 0
             bge     SHORT G_M3164_IG03
-                       ;; size=26 bbWeight=3.96 PerfScore 35.64
-G_M3164_IG04:        ; bbWeight=1, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            ; gcrRegs -[lr]
+                      ;; size=18 bbWeight=3.96 PerfScore 35.64
+G_M3164_IG04:        ; bbWeight=0.50, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
+            ; gcrRegs -[r0]
             b       SHORT G_M3164_IG06
-                        ;; size=2 bbWeight=1 PerfScore 1.00
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M3164_IG05:        ; bbWeight=0.04, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            ldr     lr, [r2+0x04]
-            cmp     r3, lr
+            ldr     r0, [r2+0x04]
+            cmp     r3, r0
             bhs     SHORT G_M3164_IG10
-            lsl     lr, r3, 3
-            add     lr, lr, 8
-            add     lr, r2
-            ; byrRegs +[lr]
-            ldr     lr, [lr+0x04]
-            ; gcrRegs +[lr]
-            ; byrRegs -[lr]
-            cmp     lr, 0
+            lsls    r0, r3, 3
+            adds    r0, 8
+            adds    r0, r2, r0
+            ; byrRegs +[r0]
+            ldr     r0, [r0+0x04]
+            ; gcrRegs +[r0]
+            ; byrRegs -[r0]
+            cmp     r0, 0
             bne     SHORT G_M3164_IG08
             subs    r3, r3, 1
             cmp     r3, 0
             bge     SHORT G_M3164_IG05
-                       ;; size=34 bbWeight=0.04 PerfScore 0.48
+                       ;; size=24 bbWeight=0.04 PerfScore 0.48
 G_M3164_IG06:        ; bbWeight=0.50, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            ; gcrRegs -[lr]
-            ldr     r3, [r2+0x04]
-            cmp     r0, r3
+            ; gcrRegs -[r0]
+            ldr     r0, [r2+0x04]
+            cmp     r4, r0
             bhs     SHORT G_M3164_IG10
-            lsls    r0, r0, 3
+            lsls    r0, r4, 3
             adds    r0, 8
             adds    r0, r2, r0
             ; byrRegs +[r0]
@@ -228,7 +228,7 @@ G_M3164_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=62 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 310, prolog size 10, PerfScore 80.12, instruction count 116, allocated bytes for code 310 (MethodHash=f732f3a3) for method System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (Tier0-FullOpts)
+; Total bytes of code 290, prolog size 10, PerfScore 79.62, instruction count 116, allocated bytes for code 290 (MethodHash=f732f3a3) for method System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -240,7 +240,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 155 (0x0009b) Actual length = 310 (0x000136)
+  Function Length   : 145 (0x00091) Actual length = 290 (0x000122)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+2 (+2.38%) : 62870.dasm - System.Xml.XmlReader:MoveToContent():int:this (Tier0-FullOpts)
@@ -39,17 +39,17 @@ G_M26551_IG03:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             movt    r0, HIGH ADDRESS J_M26551_DS00
 
     J_M26551_DS00 LABEL   DWORD
-            DD      G_M26551_IG05
-            DD      G_M26551_IG07
-            DD      G_M26551_IG05
-            DD      G_M26551_IG05
-            DD      G_M26551_IG05
+            DD      G_M26551_IG08
+            DD      G_M26551_IG06
+            DD      G_M26551_IG08
+            DD      G_M26551_IG08
+            DD      G_M26551_IG08
             ldr     pc, [r0+4*r7]
                        ;; size=24 bbWeight=8 PerfScore 72.00
 G_M26551_IG04:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             subs    r0, 15
             cmp     r0, 1
-            bls     SHORT G_M26551_IG05
+            bls     SHORT G_M26551_IG08
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r5+0x4C]
@@ -59,17 +59,10 @@ G_M26551_IG04:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             cmp     r0, 0
             bne     SHORT G_M26551_IG03
                        ;; size=18 bbWeight=4 PerfScore 36.00
-G_M26551_IG05:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
-            mov     r0, r4
-            ; gcrRegs +[r0]
-            ldr     r3, [r6+0x14]
-                       ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M26551_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r4,r5,r6,r7,r11,lr}
-            bx      r3     // <unknown method>
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M26551_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r0]
+G_M26551_IG05:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M26551_IG08
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M26551_IG06:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r5+0x4C]
@@ -80,18 +73,28 @@ G_M26551_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4},
             ; gcrRegs +[r0]
             ldr     r3, [r6+0x14]
                        ;; size=12 bbWeight=0.50 PerfScore 3.00
-G_M26551_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26551_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r4,r5,r6,r7,r11,lr}
             bx      r3     // <unknown method>
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-RWD00   dd  G_M26551_IG05
-           dd  G_M26551_IG07
-           dd  G_M26551_IG05
-           dd  G_M26551_IG05
-           dd  G_M26551_IG05
+G_M26551_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[r0]
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            ldr     r3, [r6+0x14]
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M26551_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r4,r5,r6,r7,r11,lr}
+            bx      r3     // <unknown method>
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+RWD00      dd  G_M26551_IG08
+           dd  G_M26551_IG06
+           dd  G_M26551_IG08
+           dd  G_M26551_IG08
+           dd  G_M26551_IG08
 
 
-; Total bytes of code 84, prolog size 8, PerfScore 119.00, instruction count 35, allocated bytes for code 84 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (Tier0-FullOpts)
+; Total bytes of code 86, prolog size 8, PerfScore 119.50, instruction count 36, allocated bytes for code 86 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -103,7 +106,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 42 (0x0002a) Actual length = 84 (0x000054)
+  Function Length   : 43 (0x0002b) Actual length = 86 (0x000056)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+8 (+2.52%) : 58733.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (Tier0-FullOpts)
@@ -22,7 +22,7 @@
 ;  V12 cse0         [V12,T07] (  8, 11.50)   byref  ->   r0         "CSE - aggressive"
 ;  V13 cse1         [V13,T06] (  3, 11.88)     int  ->   r5         "CSE - aggressive"
 ;  V14 cse2         [V14,T12] (  8,  4.58)     int  ->   lr         "CSE - aggressive"
-;  V15 cse3         [V15,T14] (  3,  1.50)     int  ->   r1         "CSE - moderate"
+;  V15 cse3         [V15,T14] (  3,  1.50)     int  ->  r12         "CSE - moderate"
 ;
 ; Lcl frame size = 4
 
@@ -175,23 +175,23 @@ G_M61408_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, b
             ; byrRegs -[r0]
             cmp     r12, 0
             bne     SHORT G_M61408_IG23
-            ldr     r1, [r3]
-            cmp     r1, 0x80000000
+            ldr     r12, [r3]
+            cmp     r12, 0x80000000
             beq     SHORT G_M61408_IG19
-            rsbs    r0, r1, 0
+            rsbs    r0, r12, 0
             str     r0, [r3]
             b       SHORT G_M61408_IG23
-                      ;; size=20 bbWeight=0.50 PerfScore 4.00
+                       ;; size=24 bbWeight=0.50 PerfScore 4.00
 G_M61408_IG17:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
             ; byrRegs -[r3] +[r0]
             cmp     r2, lr
             bhs     SHORT G_M61408_IG25
             lsls    r3, r2, 1
-            ldrh    r1, [r0+r3]
-            subs    r1, 48
+            ldrh    r12, [r0+r3]
+            sub     r1, r12, 48
             cmp     r1, 9
             bhi     SHORT G_M61408_IG21
-                      ;; size=14 bbWeight=2 PerfScore 14.00
+                     ;; size=18 bbWeight=2 PerfScore 14.00
 G_M61408_IG18:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
             adds    r2, r2, 1
             cmp     r2, r4
@@ -224,7 +224,7 @@ G_M61408_IG25:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 318, prolog size 8, PerfScore 154.70, instruction count 132, allocated bytes for code 318 (MethodHash=3cdf101f) for method Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (Tier0-FullOpts)
+; Total bytes of code 326, prolog size 8, PerfScore 154.70, instruction count 132, allocated bytes for code 326 (MethodHash=3cdf101f) for method Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -236,7 +236,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 159 (0x0009f) Actual length = 318 (0x00013e)
+  Function Length   : 163 (0x000a3) Actual length = 326 (0x000146)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+46 (+2.82%) : 68465.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (Tier0-FullOpts)
@@ -25,10 +25,10 @@
 ;  V14 loc10        [V14,T11] (  7,  7   )     int  ->  [sp+0x9C] 
 ;  V15 loc11        [V15,T12] (  6,  6   )     int  ->  [sp+0x98] 
 ;  V16 loc12        [V16    ] ( 16, 16   )  struct ( 8) [sp+0x90]  do-not-enreg[XS] addr-exposed ld-addr-op double-align <System.DateTime>
-;  V17 loc13        [V17,T22] (  5,  5   )     int  ->   r9        
-;  V18 loc14        [V18,T29] (  4,  4   )     int  ->   r6        
-;  V19 loc15        [V19,T05] (  4, 16   )   ubyte  ->   r6        
-;  V20 loc16        [V20,T01] (  5, 26   )     int  ->   r6        
+;  V17 loc13        [V17,T22] (  5,  5   )     int  ->   r6        
+;  V18 loc14        [V18,T29] (  4,  4   )     int  ->   r9        
+;  V19 loc15        [V19,T05] (  4, 16   )   ubyte  ->   r9        
+;  V20 loc16        [V20,T01] (  5, 26   )     int  ->   r9        
 ;  V21 loc17        [V21,T23] (  5,  5   )   ubyte  ->  [sp+0x8C]  spill-single-def
 ;* V22 loc18        [V22,T64] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[Z] EH-live
 ;* V23 loc19        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op double-align <System.TimeSpan>
@@ -49,8 +49,8 @@
 ;* V38 tmp13        [V38,T58] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V39 tmp14        [V39    ] (  0,  0   )  struct ( 8) zero-ref    "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
 ;* V40 tmp15        [V40    ] (  0,  0   )  struct ( 8) zero-ref    "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
-;  V41 tmp16        [V41,T35] (  3,  3   )     int  ->   r6         "Inline stloc first use temp"
-;  V42 tmp17        [V42,T36] (  3,  3   )     int  ->   r8         "Inline stloc first use temp"
+;  V41 tmp16        [V41,T35] (  3,  3   )     int  ->   r8         "Inline stloc first use temp"
+;  V42 tmp17        [V42,T36] (  3,  3   )     int  ->   r6         "Inline stloc first use temp"
 ;* V43 tmp18        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V44 tmp19        [V44    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V45 tmp20        [V45    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
@@ -116,7 +116,7 @@
 ;  V105 rat9        [V105,T49] (  2,  3   )     int  ->   r2         "field V104.lo (fldOffset=0x0)" P-INDEP
 ;  V106 rat10       [V106,T50] (  2,  3   )     int  ->   r3         "field V104.hi (fldOffset=0x4)" P-INDEP
 ;  V107 rat11       [V107,T18] (  2,  4   )     int  ->   r7         "ReplaceWithLclVar is creating a new local variable"
-;  V108 rat12       [V108,T19] (  3,  6   )     int  ->   r4         "ReplaceWithLclVar is creating a new local variable"
+;  V108 rat12       [V108,T19] (  3,  6   )     int  ->   r6         "ReplaceWithLclVar is creating a new local variable"
 ;  V109 rat13       [V109    ] (  1,  2   )    long  ->  [sp+0x20]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
 ;  V110 rat14       [V110,T51] (  2,  3   )     int  ->   r2         "field V109.lo (fldOffset=0x0)" P-INDEP
 ;  V111 rat15       [V111,T52] (  2,  3   )     int  ->   r3         "field V109.hi (fldOffset=0x4)" P-INDEP
@@ -148,7 +148,7 @@ G_M12053_IG02:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, by
             ldr     r0, [r0]
             and     r0, r0, 1
             cmp     r0, 1
-            bne     G_M12053_IG38
+            bne     G_M12053_IG39
                         ;; size=24 bbWeight=1 PerfScore 7.00
 G_M12053_IG03:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, byref, isz
             movw    r0, 0xd1ff
@@ -164,11 +164,11 @@ G_M12053_IG03:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, by
             ldr     r0, [r9+0x08]
             str     r0, [r6+0x04]
             cmp     r7, 19
-            blt     G_M12053_IG16
+            blt     G_M12053_IG17
             adds    r0, r4, 4
             ldr     r7, [r5+0x04]
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             add     r3, r5, 8
             ; byrRegs +[r3]
             str     r3, [sp+0x0C]
@@ -176,35 +176,35 @@ G_M12053_IG03:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, by
             adds    r0, r4, 4
             ldrb    r0, [r3+r0]
             cmp     r0, 45
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             adds    r0, r4, 7
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             adds    r0, r4, 7
             ldrb    r0, [r3+r0]
             cmp     r0, 45
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             add     r0, r4, 10
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             add     r0, r4, 10
             ldrb    r0, [r3+r0]
             cmp     r0, 84
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             add     r0, r4, 13
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             add     r0, r4, 13
             ldrb    r0, [r3+r0]
             cmp     r0, 58
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             add     r0, r4, 16
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             add     r0, r4, 16
             ldrb    r0, [r3+r0]
             cmp     r0, 58
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             mov     r0, r5
             ; gcrRegs +[r0]
             mov     r1, r4
@@ -279,138 +279,144 @@ G_M12053_IG03:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, by
             str     r3, [sp+0xA8]  // [V10 loc6]
             orrs    r0, r3
             cmp     r0, 0
-            blt     G_M12053_IG16
+            blt     G_M12053_IG17
             movs    r0, 0
             str     r0, [sp+0xA4]  // [V11 loc7]
             adds    r4, 19
             mov     r9, 0
             cmp     r4, r8
-            bge     SHORT G_M12053_IG10
+            bge     SHORT G_M12053_IG07
             cmp     r4, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             ldr     r1, [sp+0x0C]  // [V94 cse3]
             ; byrRegs +[r1]
             ldrb    r6, [r1+r4]
             cmp     r6, 46
+            mov     r6, r9
             bne     SHORT G_M12053_IG06
             adds    r4, r4, 1
-            mov     r9, r4
-            cmp     r9, r8
-            bge     SHORT G_M12053_IG08
-            orrs    r6, r9, r8
-            cmp     r6, 0
-            blt     SHORT G_M12053_IG07
+            mov     r6, r4
+            cmp     r6, r8
+            bge     SHORT G_M12053_IG09
+            orrs    r9, r6, r8
+            cmp     r9, 0
+            blt     SHORT G_M12053_IG08
             cmp     r7, r8
-            blt     SHORT G_M12053_IG07
-                       ;; size=352 bbWeight=1 PerfScore 126.00
+            blt     SHORT G_M12053_IG08
+                       ;; size=356 bbWeight=1 PerfScore 127.00
 G_M12053_IG04:        ; bbWeight=7.92, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
-            ldrb    r6, [r1+r4]
-            subs    r6, 48
-            cmp     r6, 9
-            bhi     SHORT G_M12053_IG08
+            ldrb    r9, [r1+r4]
+            sub     r9, r9, 48
+            cmp     r9, 9
+            bhi     SHORT G_M12053_IG09
             adds    r4, r4, 1
             cmp     r4, r8
             blt     SHORT G_M12053_IG04
-                      ;; size=14 bbWeight=7.92 PerfScore 55.44
+                      ;; size=20 bbWeight=7.92 PerfScore 55.44
 G_M12053_IG05:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
-            b       SHORT G_M12053_IG08
+            b       SHORT G_M12053_IG09
                       ;; size=2 bbWeight=1 PerfScore 1.00
 G_M12053_IG06:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
-            b       SHORT G_M12053_IG10
+            b       SHORT G_M12053_IG11
                       ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M12053_IG07:        ; bbWeight=0.08, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
+G_M12053_IG07:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs -[r1]
+            mov     r6, r9
+            b       SHORT G_M12053_IG11
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M12053_IG08:        ; bbWeight=0.08, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
+            ; byrRegs +[r1]
             cmp     r4, r7
-            bhs     G_M12053_IG37
-            ldrb    r6, [r1+r4]
-            subs    r6, 48
-            cmp     r6, 9
-            bhi     SHORT G_M12053_IG11
+            bhs     G_M12053_IG38
+            ldrb    r9, [r1+r4]
+            sub     r9, r9, 48
+            cmp     r9, 9
+            bhi     SHORT G_M12053_IG12
             adds    r4, r4, 1
             cmp     r4, r8
             ldr     r1, [sp+0x0C]  // [V94 cse3]
-            blt     SHORT G_M12053_IG07
-                       ;; size=22 bbWeight=0.08 PerfScore 0.80
-G_M12053_IG08:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
-            sub     r6, r4, r9
-            subs    r3, r6, 1
+            blt     SHORT G_M12053_IG08
+                       ;; size=28 bbWeight=0.08 PerfScore 0.80
+G_M12053_IG09:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
+            sub     r9, r4, r6
+            sub     r3, r9, 1
             cmp     r3, 6
-            bhi     SHORT G_M12053_IG16
+            bhi     SHORT G_M12053_IG17
             mov     r0, r5
             ; gcrRegs +[r0]
-            mov     r1, r9
+            mov     r1, r6
             ; byrRegs -[r1]
-            mov     r2, r6
+            mov     r2, r9
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // System.Xml.XmlConverter:ToInt32D7(ubyte[],int,int):int
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            mov     r9, r0
-            cmp     r9, 0
-            blt     SHORT G_M12053_IG16
-            cmp     r6, 7
-            bge     SHORT G_M12053_IG10
-                       ;; size=40 bbWeight=1 PerfScore 16.00
-G_M12053_IG09:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r6, r0
+            cmp     r6, 0
+            blt     SHORT G_M12053_IG17
+            cmp     r9, 7
+            bge     SHORT G_M12053_IG11
+                       ;; size=42 bbWeight=1 PerfScore 16.00
+G_M12053_IG10:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             movs    r0, 10
-            mul     r9, r9, r0
-            adds    r6, r6, 1
-            cmp     r6, 7
-            blt     SHORT G_M12053_IG09
-                       ;; size=12 bbWeight=8 PerfScore 40.00
-G_M12053_IG10:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
-            movs    r6, 0
+            mul     r6, r6, r0
+            add     r9, r9, 1
+            cmp     r9, 7
+            blt     SHORT G_M12053_IG10
+                       ;; size=16 bbWeight=8 PerfScore 40.00
+G_M12053_IG11:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r9, 0
             movs    r3, 0
             movs    r2, 0
             cmp     r4, r8
-            bge     SHORT G_M12053_IG15
+            bge     SHORT G_M12053_IG16
             cmp     r4, r7
-            bhs     G_M12053_IG37
-            ldr     r0, [sp+0x0C]  // [V94 cse3]
...
  
  
benchmarks.run_tiered.linux.arm.checked.mch
-20 (-6.45%) : 6059.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (Tier0-FullOpts)
@@ -17,13 +17,13 @@
 ;  V07 tmp2         [V07,T09] (  4,  2   )     ref  ->   lr         "field V03.Cert (fldOffset=0x0)" P-INDEP
 ;  V08 tmp3         [V08,T10] (  4,  2   )     ref  ->  [sp+0x00]  "field V03.Key (fldOffset=0x4)" P-INDEP
 ;  V09 tmp4         [V09,T05] (  3,  3   )   byref  ->   r3         single-def "BlockOp address local"
-;  V10 tmp5         [V10,T07] (  3,  3   )     int  ->   r0         "index expr"
+;  V10 tmp5         [V10,T07] (  3,  3   )     int  ->   r4         "index expr"
 ;  V11 tmp6         [V11,T06] (  3,  3   )   byref  ->   r3         single-def "BlockOp address local"
 ;* V12 tmp7         [V12,T13] (  0,  0   )     int  ->  zero-ref    "index expr"
 ;  V13 tmp8         [V13,T15] (  2,  0   )     ref  ->   r1         single-def "argument with side effect"
 ;  V14 cse0         [V14,T11] (  3,  1.50)   byref  ->   r0         "CSE - moderate"
 ;  V15 cse1         [V15,T12] (  3,  1.50)   byref  ->   r0         "CSE - moderate"
-;  V16 cse2         [V16,T04] (  3,  2.50)     int  ->   r0         "CSE - aggressive"
+;  V16 cse2         [V16,T04] (  3,  2.50)     int  ->   r4         "CSE - aggressive"
 ;  V17 cse3         [V17,T08] (  3,  3   )     int  ->   r0         "CSE - aggressive"
 ;
 ; Lcl frame size = 12
@@ -42,57 +42,57 @@ G_M3164_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0002 {r1}, byr
             ; gcrRegs -[r0]
             cmp     r0, 0
             ble     SHORT G_M3164_IG11
-            subs    r0, r0, 1
-            mov     r3, r0
+            subs    r4, r0, 1
+            mov     r3, r4
             cmp     r3, 0
             blt     SHORT G_M3164_IG06
             cmp     r2, 0
             beq     SHORT G_M3164_IG05
-            ldr     lr, [r2+0x04]
-            cmp     lr, r3
+            ldr     r0, [r2+0x04]
+            cmp     r0, r3
             ble     SHORT G_M3164_IG05
-                     ;; size=28 bbWeight=1 PerfScore 13.00
+                     ;; size=26 bbWeight=1 PerfScore 13.00
 G_M3164_IG03:        ; bbWeight=3.96, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            lsl     lr, r3, 3
-            add     lr, lr, 8
-            add     lr, r2
-            ; byrRegs +[lr]
-            ldr     lr, [lr+0x04]
-            ; gcrRegs +[lr]
-            ; byrRegs -[lr]
-            cmp     lr, 0
+            lsls    r0, r3, 3
+            adds    r0, 8
+            adds    r0, r2, r0
+            ; byrRegs +[r0]
+            ldr     r0, [r0+0x04]
+            ; gcrRegs +[r0]
+            ; byrRegs -[r0]
+            cmp     r0, 0
             bne     SHORT G_M3164_IG08
             subs    r3, r3, 1
             cmp     r3, 0
             bge     SHORT G_M3164_IG03
-                       ;; size=26 bbWeight=3.96 PerfScore 35.64
-G_M3164_IG04:        ; bbWeight=1, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            ; gcrRegs -[lr]
+                      ;; size=18 bbWeight=3.96 PerfScore 35.64
+G_M3164_IG04:        ; bbWeight=0.50, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
+            ; gcrRegs -[r0]
             b       SHORT G_M3164_IG06
-                        ;; size=2 bbWeight=1 PerfScore 1.00
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M3164_IG05:        ; bbWeight=0.04, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            ldr     lr, [r2+0x04]
-            cmp     r3, lr
+            ldr     r0, [r2+0x04]
+            cmp     r3, r0
             bhs     SHORT G_M3164_IG10
-            lsl     lr, r3, 3
-            add     lr, lr, 8
-            add     lr, r2
-            ; byrRegs +[lr]
-            ldr     lr, [lr+0x04]
-            ; gcrRegs +[lr]
-            ; byrRegs -[lr]
-            cmp     lr, 0
+            lsls    r0, r3, 3
+            adds    r0, 8
+            adds    r0, r2, r0
+            ; byrRegs +[r0]
+            ldr     r0, [r0+0x04]
+            ; gcrRegs +[r0]
+            ; byrRegs -[r0]
+            cmp     r0, 0
             bne     SHORT G_M3164_IG08
             subs    r3, r3, 1
             cmp     r3, 0
             bge     SHORT G_M3164_IG05
-                       ;; size=34 bbWeight=0.04 PerfScore 0.48
+                       ;; size=24 bbWeight=0.04 PerfScore 0.48
 G_M3164_IG06:        ; bbWeight=0.50, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            ; gcrRegs -[lr]
-            ldr     r3, [r2+0x04]
-            cmp     r0, r3
+            ; gcrRegs -[r0]
+            ldr     r0, [r2+0x04]
+            cmp     r4, r0
             bhs     SHORT G_M3164_IG10
-            lsls    r0, r0, 3
+            lsls    r0, r4, 3
             adds    r0, 8
             adds    r0, r2, r0
             ; byrRegs +[r0]
@@ -228,7 +228,7 @@ G_M3164_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=62 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 310, prolog size 10, PerfScore 80.12, instruction count 116, allocated bytes for code 310 (MethodHash=f732f3a3) for method System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (Tier0-FullOpts)
+; Total bytes of code 290, prolog size 10, PerfScore 79.62, instruction count 116, allocated bytes for code 290 (MethodHash=f732f3a3) for method System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -240,7 +240,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 155 (0x0009b) Actual length = 310 (0x000136)
+  Function Length   : 145 (0x00091) Actual length = 290 (0x000122)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
-30 (-5.77%) : 14820.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int
@@ -15,15 +15,15 @@
 ;  V04 loc0         [V04,T14] (  4,  3   )     int  ->  [sp+0x04]  spill-single-def
 ;  V05 loc1         [V05,T13] (  8,  4   )     int  ->   r8        
 ;  V06 loc2         [V06,T07] ( 13,  8.68)     ref  ->   r9         class-hnd single-def <int[]>
-;  V07 loc3         [V07,T10] (  4,  5   )     int  ->   r0        
+;  V07 loc3         [V07,T10] (  4,  5   )     int  ->  r10        
 ;  V08 loc4         [V08,T19] (  3,  1.50)     ref  ->   r4         class-hnd single-def <int[]>
 ;* V09 loc5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Span`1[int]>
-;  V10 loc6         [V10,T04] (  6, 18.50)     int  ->   r1        
+;  V10 loc6         [V10,T04] (  6, 18.50)     int  ->   r3        
 ;* V11 loc7         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V12 loc8         [V12,T03] (  6, 20   )     int  ->  [sp+0x00]  spill-single-def
+;  V12 loc8         [V12,T03] (  6, 20   )     int  ->   r0        
 ;  V13 loc9         [V13,T02] (  7, 32   )     int  ->  r12        
-;  V14 loc10        [V14,T00] ( 12, 74.16)     int  ->   r5        
-;  V15 loc11        [V15,T01] (  5, 34   )   byref  ->  r10        
+;  V14 loc10        [V14,T00] ( 12, 74.16)     int  ->   r2        
+;  V15 loc11        [V15,T01] (  5, 34   )   byref  ->   r1        
 ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V17 tmp1         [V17    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V18 tmp2         [V18    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
@@ -39,9 +39,9 @@
 ;  V28 tmp12        [V28,T17] (  2,  2   )     ref  ->   r0         single-def "argument with side effect"
 ;  V29 tmp13        [V29,T18] (  2,  2   )     ref  ->   r0         single-def "argument with side effect"
 ;* V30 cse0         [V30,T22] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
-;  V31 cse1         [V31,T05] (  3, 16.50)   byref  ->   r3         hoist "CSE - aggressive"
+;  V31 cse1         [V31,T05] (  3, 16.50)   byref  ->   lr         hoist "CSE - aggressive"
 ;  V32 cse2         [V32,T08] (  4,  6.50)     int  ->   r7         "CSE - aggressive"
-;  V33 cse3         [V33,T12] (  2,  4.50)   byref  ->   r2         hoist "CSE - moderate"
+;  V33 cse3         [V33,T12] (  2,  4.50)   byref  ->   r5         hoist "CSE - moderate"
 ;
 ; Lcl frame size = 12
 
@@ -65,7 +65,7 @@ G_M57321_IG02:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byre
             blx     r3     // CORINFO_HELP_DIV
             ; gcr arg pop 0
             cmp     r0, 5
-            bgt     G_M57321_IG19
+            bgt     G_M57321_IG17
                         ;; size=28 bbWeight=1 PerfScore 11.00
 G_M57321_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             movs    r0, 5
@@ -73,7 +73,7 @@ G_M57321_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             cmp     r8, r0
-            bgt     G_M57321_IG19
+            bgt     G_M57321_IG17
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movs    r1, 27
@@ -97,7 +97,7 @@ G_M57321_IG03:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, b
             cmp     r9, 0
             bne     SHORT G_M57321_IG04
             cmp     r8, 0
-            bne     G_M57321_IG24
+            bne     G_M57321_IG22
             movs    r0, 0
             ; gcrRegs -[r0]
             movs    r1, 0
@@ -107,7 +107,7 @@ G_M57321_IG04:        ; bbWeight=0.50, gcrefRegs=0220 {r5 r9}, byrefRegs=0000 {}
             ldr     r0, [r9+0x04]
             ldr     r1, [r9+0x04]
             cmp     r1, r8
-            blo     G_M57321_IG24
+            blo     G_M57321_IG22
             add     r0, r9, 8
             ; byrRegs +[r0]
             mov     r1, r8
@@ -120,100 +120,92 @@ G_M57321_IG05:        ; bbWeight=0.50, gcrefRegs=0220 {r5 r9}, byrefRegs=0001 {r
             blx     r3     // <unknown method>
             ; byrRegs -[r0]
             ; gcr arg pop 0
-            movs    r0, 0
-            movs    r1, 0
+            mov     r10, 0
+            movs    r3, 0
             cmp     r7, 0
-            ble     SHORT G_M57321_IG17
-            add     r2, r5, 8
-            ; byrRegs +[r2]
-            add     r3, r9, 8
-            ; byrRegs +[r3]
-                       ;; size=32 bbWeight=0.50 PerfScore 5.50
-G_M57321_IG06:        ; bbWeight=4, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref, isz
+            ble     SHORT G_M57321_IG15
+            adds    r5, 8
             ; gcrRegs -[r5]
-            lsl     lr, r1, 2
-            ldr     lr, [r2+lr]
-            ; gcrRegs +[lr]
-            ldr     lr, [lr+0x04]
-            ; gcrRegs -[lr]
-            sub     lr, lr, r4
-            mov     r12, 5
-            mul     lr, lr, r12
-            str     lr, [sp]
-            add     r12, lr, 5
-            mov     r5, lr
-            cmp     lr, r12
-            bge     SHORT G_M57321_IG16
-                       ;; size=38 bbWeight=4 PerfScore 44.00
-G_M57321_IG07:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref, isz
+            ; byrRegs +[r5]
+            add     lr, r9, 8
+            ; byrRegs +[lr]
+                       ;; size=32 bbWeight=0.50 PerfScore 5.50
+G_M57321_IG06:        ; bbWeight=4, gcrefRegs=0200 {r9}, byrefRegs=4020 {r5 lr}, byref, isz
+            lsls    r0, r3, 2
+            ldr     r0, [r5+r0]
+            ; gcrRegs +[r0]
+            ldr     r0, [r0+0x04]
+            ; gcrRegs -[r0]
+            subs    r0, r0, r4
+            movs    r1, 5
+            mul     r0, r0, r1
+            add     r12, r0, 5
+            mov     r2, r0
+            cmp     r0, r12
+            bge     SHORT G_M57321_IG14
+                       ;; size=24 bbWeight=4 PerfScore 40.00
+G_M57321_IG07:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=4020 {r5 lr}, byref, isz
             cmp     r9, 0
             beq     SHORT G_M57321_IG10
-            orrs    r10, lr, r12
-            cmp     r10, 0
+            orrs    r1, r0, r12
+            cmp     r1, 0
             blt     SHORT G_M57321_IG10
-            ldr     r10, [r9+0x04]
-            cmp     r10, r12
+            ldr     r1, [r9+0x04]
+            cmp     r1, r12
             blt     SHORT G_M57321_IG10
-                       ;; size=24 bbWeight=2 PerfScore 16.00
-G_M57321_IG08:        ; bbWeight=15.84, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref, isz
-            lsl     r10, r5, 2
-            add     r10, r3
-            ; byrRegs +[r10]
-            ldr     r6, [r10]
+                        ;; size=22 bbWeight=2 PerfScore 16.00
+G_M57321_IG08:        ; bbWeight=15.84, gcrefRegs=0200 {r9}, byrefRegs=4020 {r5 lr}, byref, isz
+            lsls    r1, r2, 2
+            add     r1, lr
+            ; byrRegs +[r1]
+            ldr     r6, [r1]
             cmp     r6, 0
-            blt     SHORT G_M57321_IG14
-            adds    r5, r5, 1
-            cmp     r5, r12
+            blt     SHORT G_M57321_IG12
+            adds    r2, r2, 1
+            cmp     r2, r12
             blt     SHORT G_M57321_IG08
-                       ;; size=20 bbWeight=15.84 PerfScore 126.72
-G_M57321_IG09:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref, isz
-            ; byrRegs -[r10]
-            b       SHORT G_M57321_IG16
-                       ;; size=2 bbWeight=2 PerfScore 2.00
-G_M57321_IG10:        ; bbWeight=0.02, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref
-            ldr     r10, [r9+0x04]
+                       ;; size=16 bbWeight=15.84 PerfScore 126.72
+G_M57321_IG09:        ; bbWeight=4, gcrefRegs=0200 {r9}, byrefRegs=4020 {r5 lr}, byref, isz
+            ; byrRegs -[r1]
+            b       SHORT G_M57321_IG14
+                       ;; size=2 bbWeight=4 PerfScore 4.00
+G_M57321_IG10:        ; bbWeight=0.02, gcrefRegs=0200 {r9}, byrefRegs=4020 {r5 lr}, byref
+            ldr     r1, [r9+0x04]
                       ;; size=4 bbWeight=0.02 PerfScore 0.02
-G_M57321_IG11:        ; bbWeight=0.16, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref, isz
-            ldr     r10, [r9+0x04]
-            cmp     r5, r10
-            bhs     SHORT G_M57321_IG23
-            lsl     r10, r5, 2
-            add     r10, r3
-            ; byrRegs +[r10]
-            ldr     lr, [r10]
-            cmp     lr, 0
-            blt     SHORT G_M57321_IG13
-            adds    r5, r5, 1
-            cmp     r5, r12
+G_M57321_IG11:        ; bbWeight=0.16, gcrefRegs=0200 {r9}, byrefRegs=4020 {r5 lr}, byref, isz
+            ldr     r1, [r9+0x04]
+            cmp     r2, r1
+            bhs     SHORT G_M57321_IG21
+            lsls    r1, r2, 2
+            add     r1, lr
+            ; byrRegs +[r1]
+            ldr     r6, [r1]
+            cmp     r6, 0
+            blt     SHORT G_M57321_IG12
+            adds    r2, r2, 1
+            cmp     r2, r12
             blt     SHORT G_M57321_IG11
-                       ;; size=30 bbWeight=0.16 PerfScore 1.76
-G_M57321_IG12:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref, isz
-            ; byrRegs -[r10]
-            b       SHORT G_M57321_IG16
+            b       SHORT G_M57321_IG14
+                       ;; size=26 bbWeight=0.16 PerfScore 1.92
+G_M57321_IG12:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=4022 {r1 r5 lr}, byref, isz
+            cmp     r2, r0
+            bne     SHORT G_M57321_IG13
+            add     r10, r10, 1
+                       ;; size=8 bbWeight=2 PerfScore 6.00
+G_M57321_IG13:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=4022 {r1 r5 lr}, byref
+            str     r3, [r1]
                        ;; size=2 bbWeight=2 PerfScore 2.00
-G_M57321_IG13:        ; bbWeight=0.08, gcrefRegs=0200 {r9}, byrefRegs=040C {r2 r3 r10}, byref
-            ; byrRegs +[r10]
-            ldr     lr, [sp]   // [V12 loc8]
-                       ;; size=4 bbWeight=0.08 PerfScore 0.08
-G_M57321_IG14:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=040C {r2 r3 r10}, byref, isz
-            cmp     r5, lr
-            bne     SHORT G_M57321_IG15
-            adds    r0, r0, 1
-                       ;; size=6 bbWeight=2 PerfScore 6.00
-G_M57321_IG15:        ; bbWeight=2, gcrefRegs=0200 {r9}, byrefRegs=040C {r2 r3 r10}, byref
-            str     r1, [r10]
-                       ;; size=4 bbWeight=2 PerfScore 2.00
-G_M57321_IG16:        ; bbWeight=4, gcrefRegs=0200 {r9}, byrefRegs=000C {r2 r3}, byref, isz
-            ; byrRegs -[r10]
-            cmp     r5, r12
-            beq     SHORT G_M57321_IG18
-            adds    r1, r1, 1
-            cmp     r7, r1
+G_M57321_IG14:        ; bbWeight=4, gcrefRegs=0200 {r9}, byrefRegs=4020 {r5 lr}, byref, isz
+            ; byrRegs -[r1]
+            cmp     r2, r12
+            beq     SHORT G_M57321_IG16
+            adds    r3, r3, 1
+            cmp     r7, r3
             bgt     SHORT G_M57321_IG06
                        ;; size=10 bbWeight=4 PerfScore 20.00
-G_M57321_IG17:        ; bbWeight=0.50, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r2-r3]
-            vmov.i2f s8, r0
+G_M57321_IG15:        ; bbWeight=0.50, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs -[r5 lr]
+            vmov.i2f s8, r10
             vcvt.i2d d4, s8
             ldr     r6, [sp+0x04]  // [V04 loc0]
             vmov.i2f s10, r6
@@ -226,9 +218,9 @@ G_M57321_IG17:        ; bbWeight=0.50, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, b
             vmov.i2d d5, r0, r1
             vcmp    d4, d5
             vmrs    APSR, FPSCR
-            bhs     SHORT G_M57321_IG21
+            bhs     SHORT G_M57321_IG19
                       ;; size=52 bbWeight=0.50 PerfScore 7.00
...
  
-12 (-4.62%) : 64418.dasm - Benchstone.BenchI.XposMatrix:Test():ubyte:this (Tier0-FullOpts)
@@ -10,18 +10,18 @@
 ;  V00 this         [V00,T06] (  3,  3   )     ref  ->   r0         this class-hnd single-def <Benchstone.BenchI.XposMatrix>
 ;  V01 loc0         [V01,T07] (  7,  4.58)     ref  ->   r0         class-hnd single-def <int[][]>
 ;* V02 loc1         [V02,T11] (  0,  0   )     int  ->  zero-ref    single-def
-;  V03 loc2         [V03,T03] ( 12, 19.04)     int  ->   r1        
-;  V04 loc3         [V04,T00] ( 16, 68.32)     int  ->   r2        
+;  V03 loc2         [V03,T03] ( 12, 19.04)     int  ->   r4        
+;  V04 loc3         [V04,T00] ( 16, 68.32)     int  ->   r1        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06,T01] (  8, 64.64)     ref  ->  registers   "arr expr"
 ;  V07 tmp2         [V07,T05] (  3,  6   )     ref  ->   r1         single-def "arr expr"
 ;  V08 tmp3         [V08,T10] (  3,  3   )     ref  ->   r0         single-def "arr expr"
-;  V09 cse0         [V09,T12] (  2,  0.20)     ref  ->   lr         hoist "CSE - conservative"
-;  V10 cse1         [V10,T02] (  6, 21.80)     ref  ->  r12         hoist multi-def "CSE - aggressive"
-;  V11 cse2         [V11,T08] (  7,  4.58)   byref  ->   r4         hoist multi-def "CSE - aggressive"
-;  V12 cse3         [V12,T09] (  4,  4.00)     int  ->   lr         hoist multi-def "CSE - aggressive"
-;  V13 cse4         [V13,T04] (  6,  7.04)     int  ->   r3         hoist multi-def "CSE - aggressive"
-;  V14 cse5         [V14,T13] (  2,  0.08)     int  ->   lr         hoist "CSE - conservative"
+;  V09 cse0         [V09,T12] (  2,  0.20)     ref  ->   r3         hoist "CSE - conservative"
+;  V10 cse1         [V10,T02] (  6, 21.80)     ref  ->   r2         hoist multi-def "CSE - aggressive"
+;  V11 cse2         [V11,T08] (  7,  4.58)   byref  ->   r6         hoist multi-def "CSE - aggressive"
+;  V12 cse3         [V12,T09] (  4,  4.00)     int  ->   r3         hoist multi-def "CSE - aggressive"
+;  V13 cse4         [V13,T04] (  6,  7.04)     int  ->   r5         hoist multi-def "CSE - aggressive"
+;  V14 cse5         [V14,T13] (  2,  0.08)     int  ->   r3         hoist "CSE - conservative"
 ;
 ; Lcl frame size = 4
 
@@ -32,119 +32,119 @@ G_M49643_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M49643_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0]
             ldr     r0, [r0+0x04]
-            movs    r1, 1
+            movs    r4, 1
             cmp     r0, 0
             beq     SHORT G_M49643_IG11
-            ldr     r3, [r0+0x04]
-            cmp     r3, 100
+            ldr     r5, [r0+0x04]
+            cmp     r5, 100
             ble     SHORT G_M49643_IG11
-            add     r4, r0, 8
-            ; byrRegs +[r4]
+            add     r6, r0, 8
+            ; byrRegs +[r6]
                         ;; size=18 bbWeight=1 PerfScore 8.00
-G_M49643_IG03:        ; bbWeight=3.96, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
-            movs    r2, 1
-            cmp     r3, r1
+G_M49643_IG03:        ; bbWeight=3.96, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref, isz
+            movs    r1, 1
+            cmp     r5, r4
             bls     SHORT G_M49643_IG07
                        ;; size=6 bbWeight=3.96 PerfScore 11.88
-G_M49643_IG04:        ; bbWeight=1.98, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
-            lsl     lr, r1, 2
-            ldr     r12, [r4+lr]
-            ; gcrRegs +[r12]
-            cmp     r12, 0
+G_M49643_IG04:        ; bbWeight=1.98, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref, isz
+            lsls    r3, r4, 2
+            ldr     r2, [r6+r3]
+            ; gcrRegs +[r2]
+            cmp     r2, 0
             beq     SHORT G_M49643_IG07
-            ldr     lr, [r12+0x04]
-            cmp     lr, 100
+            ldr     r3, [r2+0x04]
+            cmp     r3, 100
             ble     SHORT G_M49643_IG07
-                       ;; size=24 bbWeight=1.98 PerfScore 13.86
-G_M49643_IG05:        ; bbWeight=15.68, gcrefRegs=1001 {r0 r12}, byrefRegs=0010 {r4}, byref, isz
-            mov     lr, r12
-            ; gcrRegs +[lr]
-            add     lr, lr, 8
-            ; gcrRegs -[lr]
-            ; byrRegs +[lr]
-            lsls    r5, r2, 2
-            movs    r6, 1
-            str     r6, [lr+r5]
-            adds    r2, r2, 1
-            cmp     r2, 100
-            ble     SHORT G_M49643_IG05
-                       ;; size=20 bbWeight=15.68 PerfScore 125.45
-G_M49643_IG06:        ; bbWeight=1.98, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
-            ; gcrRegs -[r12]
-            ; byrRegs -[lr]
-            b       SHORT G_M49643_IG09
-                       ;; size=2 bbWeight=1.98 PerfScore 1.98
-G_M49643_IG07:        ; bbWeight=0.02, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref
+                       ;; size=14 bbWeight=1.98 PerfScore 13.86
+G_M49643_IG05:        ; bbWeight=15.68, gcrefRegs=0005 {r0 r2}, byrefRegs=0040 {r6}, byref, isz
+            mov     r3, r2
+            ; gcrRegs +[r3]
+            adds    r3, 8
+            ; gcrRegs -[r3]
+            ; byrRegs +[r3]
             lsl     lr, r1, 2
-            ldr     r12, [r4+lr]
-            ; gcrRegs +[r12]
-                       ;; size=8 bbWeight=0.02 PerfScore 0.04
-G_M49643_IG08:        ; bbWeight=0.16, gcrefRegs=1001 {r0 r12}, byrefRegs=0010 {r4}, byref, isz
-            mov     lr, r12
-            ; gcrRegs +[lr]
-            ldr     r5, [lr+0x04]
-            cmp     r2, r5
-            bhs     SHORT G_M49643_IG19
-            add     lr, lr, 8
-            ; gcrRegs -[lr]
-            ; byrRegs +[lr]
-            lsls    r5, r2, 2
-            movs    r6, 1
-            str     r6, [lr+r5]
-            adds    r2, r2, 1
-            cmp     r2, 100
-            ble     SHORT G_M49643_IG08
-                       ;; size=28 bbWeight=0.16 PerfScore 1.74
-G_M49643_IG09:        ; bbWeight=3.96, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
-            ; gcrRegs -[r12]
-            ; byrRegs -[lr]
+            mov     r12, 1
+            str     r12, [r3+lr]
             adds    r1, r1, 1
             cmp     r1, 100
+            ble     SHORT G_M49643_IG05
+                       ;; size=22 bbWeight=15.68 PerfScore 125.45
+G_M49643_IG06:        ; bbWeight=3.96, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref, isz
+            ; gcrRegs -[r2]
+            ; byrRegs -[r3]
+            b       SHORT G_M49643_IG09
+                       ;; size=2 bbWeight=3.96 PerfScore 3.96
+G_M49643_IG07:        ; bbWeight=0.02, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref
+            lsls    r3, r4, 2
+            ldr     r2, [r6+r3]
+            ; gcrRegs +[r2]
+                       ;; size=4 bbWeight=0.02 PerfScore 0.04
+G_M49643_IG08:        ; bbWeight=0.16, gcrefRegs=0005 {r0 r2}, byrefRegs=0040 {r6}, byref, isz
+            mov     r3, r2
+            ; gcrRegs +[r3]
+            ldr     lr, [r3+0x04]
+            cmp     r1, lr
+            bhs     SHORT G_M49643_IG19
+            adds    r3, 8
+            ; gcrRegs -[r3]
+            ; byrRegs +[r3]
+            lsl     lr, r1, 2
+            mov     r12, 1
+            str     r12, [r3+lr]
+            adds    r1, r1, 1
+            cmp     r1, 100
+            ble     SHORT G_M49643_IG08
+                       ;; size=30 bbWeight=0.16 PerfScore 1.74
+G_M49643_IG09:        ; bbWeight=3.96, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref, isz
+            ; gcrRegs -[r2]
+            ; byrRegs -[r3]
+            adds    r4, r4, 1
+            cmp     r4, 100
             ble     SHORT G_M49643_IG03
                        ;; size=6 bbWeight=3.96 PerfScore 11.88
-G_M49643_IG10:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
+G_M49643_IG10:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref, isz
             b       SHORT G_M49643_IG14
                        ;; size=2 bbWeight=1 PerfScore 1.00
 G_M49643_IG11:        ; bbWeight=0.04, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r4]
-            movs    r2, 1
-            ldr     r3, [r0+0x04]
-            add     r4, r0, 8
-            ; byrRegs +[r4]
+            ; byrRegs -[r6]
+            movs    r1, 1
+            ldr     r5, [r0+0x04]
+            add     r6, r0, 8
+            ; byrRegs +[r6]
+            lsls    r3, r4, 2
+            cmp     r4, r5
+            bhs     SHORT G_M49643_IG19
+            ldr     r3, [r6+r3]
+            ; gcrRegs +[r3]
+                       ;; size=16 bbWeight=0.04 PerfScore 0.28
+G_M49643_IG12:        ; bbWeight=0.16, gcrefRegs=0009 {r0 r3}, byrefRegs=0040 {r6}, byref, isz
+            mov     r2, r3
+            ; gcrRegs +[r2]
+            ldr     lr, [r2+0x04]
+            cmp     r1, lr
+            bhs     SHORT G_M49643_IG19
+            adds    r2, 8
+            ; gcrRegs -[r2]
+            ; byrRegs +[r2]
             lsl     lr, r1, 2
-            cmp     r1, r3
-            bhs     SHORT G_M49643_IG19
-            ldr     lr, [r4+lr]
-            ; gcrRegs +[lr]
-                       ;; size=20 bbWeight=0.04 PerfScore 0.28
-G_M49643_IG12:        ; bbWeight=0.16, gcrefRegs=4001 {r0 lr}, byrefRegs=0010 {r4}, byref, isz
-            mov     r12, lr
-            ; gcrRegs +[r12]
-            ldr     r5, [r12+0x04]
-            cmp     r2, r5
-            bhs     SHORT G_M49643_IG19
-            add     r12, r12, 8
-            ; gcrRegs -[r12]
-            ; byrRegs +[r12]
-            lsls    r5, r2, 2
-            movs    r6, 1
-            str     r6, [r12+r5]
-            adds    r2, r2, 1
-            cmp     r2, 100
-            ble     SHORT G_M49643_IG12
-                       ;; size=28 bbWeight=0.16 PerfScore 1.76
-G_M49643_IG13:        ; bbWeight=0.04, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
-            ; gcrRegs -[lr]
-            ; byrRegs -[r12]
+            mov     r12, 1
+            str     r12, [r2+lr]
             adds    r1, r1, 1
             cmp     r1, 100
+            ble     SHORT G_M49643_IG12
+                       ;; size=30 bbWeight=0.16 PerfScore 1.76
+G_M49643_IG13:        ; bbWeight=0.04, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref, isz
+            ; gcrRegs -[r3]
+            ; byrRegs -[r2]
+            adds    r4, r4, 1
+            cmp     r4, 100
             ble     SHORT G_M49643_IG11
                        ;; size=6 bbWeight=0.04 PerfScore 0.12
-G_M49643_IG14:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, byref, isz
+G_M49643_IG14:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, byref, isz
             movs    r1, 100
-            cmp     r1, r3
+            cmp     r1, r5
             bhs     SHORT G_M49643_IG19
-            ldr     r1, [r4+0x190]
+            ldr     r1, [r6+0x190]
             ; gcrRegs +[r1]
             movs    r3, 100
             ldr     r2, [r1+0x04]
@@ -157,15 +157,15 @@ G_M49643_IG14:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, by
                        ;; size=26 bbWeight=1 PerfScore 11.00
 G_M49643_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
-            ; byrRegs -[r4]
+            ; byrRegs -[r6]
             movs    r0, 0
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M49643_IG16:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r3,r4,r5,r6,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M49643_IG17:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref, isz
+G_M49643_IG17:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0040 {r6}, gcvars, byref, isz
...
  
+2 (+2.38%) : 34467.dasm - System.Xml.XmlReader:MoveToContent():int:this (Tier0-FullOpts)
@@ -39,17 +39,17 @@ G_M26551_IG03:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             movt    r0, HIGH ADDRESS J_M26551_DS00
 
     J_M26551_DS00 LABEL   DWORD
-            DD      G_M26551_IG05
-            DD      G_M26551_IG07
-            DD      G_M26551_IG05
-            DD      G_M26551_IG05
-            DD      G_M26551_IG05
+            DD      G_M26551_IG08
+            DD      G_M26551_IG06
+            DD      G_M26551_IG08
+            DD      G_M26551_IG08
+            DD      G_M26551_IG08
             ldr     pc, [r0+4*r7]
                        ;; size=24 bbWeight=8 PerfScore 72.00
 G_M26551_IG04:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             subs    r0, 15
             cmp     r0, 1
-            bls     SHORT G_M26551_IG05
+            bls     SHORT G_M26551_IG08
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r5+0x4C]
@@ -59,17 +59,10 @@ G_M26551_IG04:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             cmp     r0, 0
             bne     SHORT G_M26551_IG03
                        ;; size=18 bbWeight=4 PerfScore 36.00
-G_M26551_IG05:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
-            mov     r0, r4
-            ; gcrRegs +[r0]
-            ldr     r3, [r6+0x14]
-                       ;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M26551_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r4,r5,r6,r7,r11,lr}
-            bx      r3     // <unknown method>
-                       ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M26551_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r0]
+G_M26551_IG05:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M26551_IG08
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M26551_IG06:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             mov     r0, r4
             ; gcrRegs +[r0]
             ldr     r3, [r5+0x4C]
@@ -80,18 +73,28 @@ G_M26551_IG07:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4},
             ; gcrRegs +[r0]
             ldr     r3, [r6+0x14]
                        ;; size=12 bbWeight=0.50 PerfScore 3.00
-G_M26551_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+G_M26551_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r4,r5,r6,r7,r11,lr}
             bx      r3     // <unknown method>
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-RWD00   dd  G_M26551_IG05
-           dd  G_M26551_IG07
-           dd  G_M26551_IG05
-           dd  G_M26551_IG05
-           dd  G_M26551_IG05
+G_M26551_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[r0]
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            ldr     r3, [r6+0x14]
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M26551_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r4,r5,r6,r7,r11,lr}
+            bx      r3     // <unknown method>
+                       ;; size=6 bbWeight=0.50 PerfScore 1.00
+RWD00      dd  G_M26551_IG08
+           dd  G_M26551_IG06
+           dd  G_M26551_IG08
+           dd  G_M26551_IG08
+           dd  G_M26551_IG08
 
 
-; Total bytes of code 84, prolog size 8, PerfScore 119.00, instruction count 35, allocated bytes for code 84 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (Tier0-FullOpts)
+; Total bytes of code 86, prolog size 8, PerfScore 119.50, instruction count 36, allocated bytes for code 86 (MethodHash=17d09848) for method System.Xml.XmlReader:MoveToContent():int:this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -103,7 +106,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 42 (0x0002a) Actual length = 84 (0x000054)
+  Function Length   : 43 (0x0002b) Actual length = 86 (0x000056)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+8 (+2.52%) : 32765.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (Tier0-FullOpts)
@@ -22,7 +22,7 @@
 ;  V12 cse0         [V12,T07] (  8, 11.50)   byref  ->   r0         "CSE - aggressive"
 ;  V13 cse1         [V13,T06] (  3, 11.88)     int  ->   r5         "CSE - aggressive"
 ;  V14 cse2         [V14,T12] (  8,  4.58)     int  ->   lr         "CSE - aggressive"
-;  V15 cse3         [V15,T14] (  3,  1.50)     int  ->   r1         "CSE - moderate"
+;  V15 cse3         [V15,T14] (  3,  1.50)     int  ->  r12         "CSE - moderate"
 ;
 ; Lcl frame size = 4
 
@@ -175,23 +175,23 @@ G_M61408_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {r3}, b
             ; byrRegs -[r0]
             cmp     r12, 0
             bne     SHORT G_M61408_IG23
-            ldr     r1, [r3]
-            cmp     r1, 0x80000000
+            ldr     r12, [r3]
+            cmp     r12, 0x80000000
             beq     SHORT G_M61408_IG19
-            rsbs    r0, r1, 0
+            rsbs    r0, r12, 0
             str     r0, [r3]
             b       SHORT G_M61408_IG23
-                      ;; size=20 bbWeight=0.50 PerfScore 4.00
+                       ;; size=24 bbWeight=0.50 PerfScore 4.00
 G_M61408_IG17:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
             ; byrRegs -[r3] +[r0]
             cmp     r2, lr
             bhs     SHORT G_M61408_IG25
             lsls    r3, r2, 1
-            ldrh    r1, [r0+r3]
-            subs    r1, 48
+            ldrh    r12, [r0+r3]
+            sub     r1, r12, 48
             cmp     r1, 9
             bhi     SHORT G_M61408_IG21
-                      ;; size=14 bbWeight=2 PerfScore 14.00
+                     ;; size=18 bbWeight=2 PerfScore 14.00
 G_M61408_IG18:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {r0}, byref, isz
             adds    r2, r2, 1
             cmp     r2, r4
@@ -224,7 +224,7 @@ G_M61408_IG25:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 318, prolog size 8, PerfScore 154.70, instruction count 132, allocated bytes for code 318 (MethodHash=3cdf101f) for method Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (Tier0-FullOpts)
+; Total bytes of code 326, prolog size 8, PerfScore 154.70, instruction count 132, allocated bytes for code 326 (MethodHash=3cdf101f) for method Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -236,7 +236,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 159 (0x0009f) Actual length = 318 (0x00013e)
+  Function Length   : 163 (0x000a3) Actual length = 326 (0x000146)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+46 (+2.82%) : 35876.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (Tier0-FullOpts)
@@ -25,10 +25,10 @@
 ;  V14 loc10        [V14,T11] (  7,  7   )     int  ->  [sp+0x9C] 
 ;  V15 loc11        [V15,T12] (  6,  6   )     int  ->  [sp+0x98] 
 ;  V16 loc12        [V16    ] ( 16, 16   )  struct ( 8) [sp+0x90]  do-not-enreg[XS] addr-exposed ld-addr-op double-align <System.DateTime>
-;  V17 loc13        [V17,T22] (  5,  5   )     int  ->   r9        
-;  V18 loc14        [V18,T29] (  4,  4   )     int  ->   r6        
-;  V19 loc15        [V19,T05] (  4, 16   )   ubyte  ->   r6        
-;  V20 loc16        [V20,T01] (  5, 26   )     int  ->   r6        
+;  V17 loc13        [V17,T22] (  5,  5   )     int  ->   r6        
+;  V18 loc14        [V18,T29] (  4,  4   )     int  ->   r9        
+;  V19 loc15        [V19,T05] (  4, 16   )   ubyte  ->   r9        
+;  V20 loc16        [V20,T01] (  5, 26   )     int  ->   r9        
 ;  V21 loc17        [V21,T23] (  5,  5   )   ubyte  ->  [sp+0x8C]  spill-single-def
 ;* V22 loc18        [V22,T64] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[Z] EH-live
 ;* V23 loc19        [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op double-align <System.TimeSpan>
@@ -49,8 +49,8 @@
 ;* V38 tmp13        [V38,T58] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V39 tmp14        [V39    ] (  0,  0   )  struct ( 8) zero-ref    "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
 ;* V40 tmp15        [V40    ] (  0,  0   )  struct ( 8) zero-ref    "ReadOnlySpan<T> for CreateSpan<T>" <System.ReadOnlySpan`1[uint]>
-;  V41 tmp16        [V41,T35] (  3,  3   )     int  ->   r6         "Inline stloc first use temp"
-;  V42 tmp17        [V42,T36] (  3,  3   )     int  ->   r8         "Inline stloc first use temp"
+;  V41 tmp16        [V41,T35] (  3,  3   )     int  ->   r8         "Inline stloc first use temp"
+;  V42 tmp17        [V42,T36] (  3,  3   )     int  ->   r6         "Inline stloc first use temp"
 ;* V43 tmp18        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V44 tmp19        [V44    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V45 tmp20        [V45    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
@@ -116,7 +116,7 @@
 ;  V105 rat9        [V105,T49] (  2,  3   )     int  ->   r2         "field V104.lo (fldOffset=0x0)" P-INDEP
 ;  V106 rat10       [V106,T50] (  2,  3   )     int  ->   r3         "field V104.hi (fldOffset=0x4)" P-INDEP
 ;  V107 rat11       [V107,T18] (  2,  4   )     int  ->   r7         "ReplaceWithLclVar is creating a new local variable"
-;  V108 rat12       [V108,T19] (  3,  6   )     int  ->   r4         "ReplaceWithLclVar is creating a new local variable"
+;  V108 rat12       [V108,T19] (  3,  6   )     int  ->   r6         "ReplaceWithLclVar is creating a new local variable"
 ;  V109 rat13       [V109    ] (  1,  2   )    long  ->  [sp+0x20]  multireg-ret "ReplaceWithLclVar is creating a new local variable"
 ;  V110 rat14       [V110,T51] (  2,  3   )     int  ->   r2         "field V109.lo (fldOffset=0x0)" P-INDEP
 ;  V111 rat15       [V111,T52] (  2,  3   )     int  ->   r3         "field V109.hi (fldOffset=0x4)" P-INDEP
@@ -148,7 +148,7 @@ G_M12053_IG02:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, by
             ldr     r0, [r0]
             and     r0, r0, 1
             cmp     r0, 1
-            bne     G_M12053_IG38
+            bne     G_M12053_IG39
                         ;; size=24 bbWeight=1 PerfScore 7.00
 G_M12053_IG03:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, byref, isz
             movw    r0, 0xd1ff
@@ -164,11 +164,11 @@ G_M12053_IG03:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, by
             ldr     r0, [r9+0x08]
             str     r0, [r6+0x04]
             cmp     r7, 19
-            blt     G_M12053_IG16
+            blt     G_M12053_IG17
             adds    r0, r4, 4
             ldr     r7, [r5+0x04]
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             add     r3, r5, 8
             ; byrRegs +[r3]
             str     r3, [sp+0x0C]
@@ -176,35 +176,35 @@ G_M12053_IG03:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, by
             adds    r0, r4, 4
             ldrb    r0, [r3+r0]
             cmp     r0, 45
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             adds    r0, r4, 7
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             adds    r0, r4, 7
             ldrb    r0, [r3+r0]
             cmp     r0, 45
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             add     r0, r4, 10
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             add     r0, r4, 10
             ldrb    r0, [r3+r0]
             cmp     r0, 84
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             add     r0, r4, 13
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             add     r0, r4, 13
             ldrb    r0, [r3+r0]
             cmp     r0, 58
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             add     r0, r4, 16
             cmp     r0, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             add     r0, r4, 16
             ldrb    r0, [r3+r0]
             cmp     r0, 58
-            bne     G_M12053_IG16
+            bne     G_M12053_IG17
             mov     r0, r5
             ; gcrRegs +[r0]
             mov     r1, r4
@@ -279,138 +279,144 @@ G_M12053_IG03:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0040 {r6}, by
             str     r3, [sp+0xA8]  // [V10 loc6]
             orrs    r0, r3
             cmp     r0, 0
-            blt     G_M12053_IG16
+            blt     G_M12053_IG17
             movs    r0, 0
             str     r0, [sp+0xA4]  // [V11 loc7]
             adds    r4, 19
             mov     r9, 0
             cmp     r4, r8
-            bge     SHORT G_M12053_IG10
+            bge     SHORT G_M12053_IG07
             cmp     r4, r7
-            bhs     G_M12053_IG37
+            bhs     G_M12053_IG38
             ldr     r1, [sp+0x0C]  // [V94 cse3]
             ; byrRegs +[r1]
             ldrb    r6, [r1+r4]
             cmp     r6, 46
+            mov     r6, r9
             bne     SHORT G_M12053_IG06
             adds    r4, r4, 1
-            mov     r9, r4
-            cmp     r9, r8
-            bge     SHORT G_M12053_IG08
-            orrs    r6, r9, r8
-            cmp     r6, 0
-            blt     SHORT G_M12053_IG07
+            mov     r6, r4
+            cmp     r6, r8
+            bge     SHORT G_M12053_IG09
+            orrs    r9, r6, r8
+            cmp     r9, 0
+            blt     SHORT G_M12053_IG08
             cmp     r7, r8
-            blt     SHORT G_M12053_IG07
-                       ;; size=352 bbWeight=1 PerfScore 126.00
+            blt     SHORT G_M12053_IG08
+                       ;; size=356 bbWeight=1 PerfScore 127.00
 G_M12053_IG04:        ; bbWeight=7.92, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
-            ldrb    r6, [r1+r4]
-            subs    r6, 48
-            cmp     r6, 9
-            bhi     SHORT G_M12053_IG08
+            ldrb    r9, [r1+r4]
+            sub     r9, r9, 48
+            cmp     r9, 9
+            bhi     SHORT G_M12053_IG09
             adds    r4, r4, 1
             cmp     r4, r8
             blt     SHORT G_M12053_IG04
-                      ;; size=14 bbWeight=7.92 PerfScore 55.44
+                      ;; size=20 bbWeight=7.92 PerfScore 55.44
 G_M12053_IG05:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
-            b       SHORT G_M12053_IG08
+            b       SHORT G_M12053_IG09
                       ;; size=2 bbWeight=1 PerfScore 1.00
 G_M12053_IG06:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
-            b       SHORT G_M12053_IG10
+            b       SHORT G_M12053_IG11
                       ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M12053_IG07:        ; bbWeight=0.08, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
+G_M12053_IG07:        ; bbWeight=0.50, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs -[r1]
+            mov     r6, r9
+            b       SHORT G_M12053_IG11
+                       ;; size=4 bbWeight=0.50 PerfScore 1.00
+G_M12053_IG08:        ; bbWeight=0.08, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
+            ; byrRegs +[r1]
             cmp     r4, r7
-            bhs     G_M12053_IG37
-            ldrb    r6, [r1+r4]
-            subs    r6, 48
-            cmp     r6, 9
-            bhi     SHORT G_M12053_IG11
+            bhs     G_M12053_IG38
+            ldrb    r9, [r1+r4]
+            sub     r9, r9, 48
+            cmp     r9, 9
+            bhi     SHORT G_M12053_IG12
             adds    r4, r4, 1
             cmp     r4, r8
             ldr     r1, [sp+0x0C]  // [V94 cse3]
-            blt     SHORT G_M12053_IG07
-                       ;; size=22 bbWeight=0.08 PerfScore 0.80
-G_M12053_IG08:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
-            sub     r6, r4, r9
-            subs    r3, r6, 1
+            blt     SHORT G_M12053_IG08
+                       ;; size=28 bbWeight=0.08 PerfScore 0.80
+G_M12053_IG09:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0002 {r1}, byref, isz
+            sub     r9, r4, r6
+            sub     r3, r9, 1
             cmp     r3, 6
-            bhi     SHORT G_M12053_IG16
+            bhi     SHORT G_M12053_IG17
             mov     r0, r5
             ; gcrRegs +[r0]
-            mov     r1, r9
+            mov     r1, r6
             ; byrRegs -[r1]
-            mov     r2, r6
+            mov     r2, r9
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // System.Xml.XmlConverter:ToInt32D7(ubyte[],int,int):int
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            mov     r9, r0
-            cmp     r9, 0
-            blt     SHORT G_M12053_IG16
-            cmp     r6, 7
-            bge     SHORT G_M12053_IG10
-                       ;; size=40 bbWeight=1 PerfScore 16.00
-G_M12053_IG09:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r6, r0
+            cmp     r6, 0
+            blt     SHORT G_M12053_IG17
+            cmp     r9, 7
+            bge     SHORT G_M12053_IG11
+                       ;; size=42 bbWeight=1 PerfScore 16.00
+G_M12053_IG10:        ; bbWeight=8, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             movs    r0, 10
-            mul     r9, r9, r0
-            adds    r6, r6, 1
-            cmp     r6, 7
-            blt     SHORT G_M12053_IG09
-                       ;; size=12 bbWeight=8 PerfScore 40.00
-G_M12053_IG10:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
-            movs    r6, 0
+            mul     r6, r6, r0
+            add     r9, r9, 1
+            cmp     r9, 7
+            blt     SHORT G_M12053_IG10
+                       ;; size=16 bbWeight=8 PerfScore 40.00
+G_M12053_IG11:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
+            mov     r9, 0
             movs    r3, 0
             movs    r2, 0
             cmp     r4, r8
-            bge     SHORT G_M12053_IG15
+            bge     SHORT G_M12053_IG16
             cmp     r4, r7
-            bhs     G_M12053_IG37
-            ldr     r0, [sp+0x0C]  // [V94 cse3]
...
  
  
coreclr_tests.run.linux.arm.checked.mch
-26 (-7.83%) : 328571.dasm - Benchstone.BenchF.SqMtx:Bench():ubyte (Tier0-FullOpts)
@@ -9,23 +9,23 @@
 ;
 ;  V00 loc0         [V00,T06] (  7,  5.08)     ref  ->   r4         class-hnd single-def <double[][]>
 ;  V01 loc1         [V01,T07] (  4,  4   )     ref  ->   r5         class-hnd single-def <double[][]>
-;  V02 loc2         [V02,T02] ( 15, 35.04)     int  ->   r0        
-;  V03 loc3         [V03,T00] ( 19, 84.32)     int  ->   r3        
+;  V02 loc2         [V02,T02] ( 15, 35.04)     int  ->   r6        
+;  V03 loc3         [V03,T00] ( 19, 84.32)     int  ->   r0        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T01] (  8, 64.64)     ref  ->   lr         "arr expr"
+;  V05 tmp1         [V05,T01] (  8, 64.64)     ref  ->  registers   "arr expr"
 ;  V06 tmp2         [V06,T05] (  3,  6   )     ref  ->   r0         single-def "arr expr"
 ;  V07 cse0         [V07,T10] (  2,  0.20)     ref  ->   r1         hoist "CSE - conservative"
-;  V08 cse1         [V08,T03] (  6, 21.80)     ref  ->  r12         hoist multi-def "CSE - aggressive"
-;  V09 cse2         [V09,T09] (  5,  3.08)   byref  ->   r2         hoist multi-def "CSE - aggressive"
-;  V10 cse3         [V10,T08] (  4,  4.00)     int  ->   lr         hoist multi-def "CSE - aggressive"
-;  V11 cse4         [V11,T04] (  5,  6.04)     int  ->   r1         hoist multi-def "CSE - aggressive"
-;  V12 cse5         [V12,T11] (  2,  0.08)     int  ->   lr         hoist "CSE - conservative"
+;  V08 cse1         [V08,T03] (  6, 21.80)     ref  ->   r2         hoist multi-def "CSE - aggressive"
+;  V09 cse2         [V09,T09] (  5,  3.08)   byref  ->   r8         hoist multi-def "CSE - aggressive"
+;  V10 cse3         [V10,T08] (  4,  4.00)     int  ->   r1         hoist multi-def "CSE - aggressive"
+;  V11 cse4         [V11,T04] (  5,  6.04)     int  ->   r7         hoist multi-def "CSE - aggressive"
+;  V12 cse5         [V12,T11] (  2,  0.08)     int  ->   r1         hoist "CSE - conservative"
 ;
 ; Lcl frame size = 4
 
 G_M31008_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r5,r6,r11,lr}
-            add     r11, sp, 16
+            push    {r3,r4,r5,r6,r7,r8,r11,lr}
+            add     r11, sp, 24
                         ;; size=8 bbWeight=1 PerfScore 2.00
 G_M31008_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movs    r0, 41
@@ -49,123 +49,123 @@ G_M31008_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcr arg pop 0
             mov     r5, r0
             ; gcrRegs +[r5]
-            movs    r0, 1
-            ; gcrRegs -[r0]
+            movs    r6, 1
             cmp     r4, 0
             beq     SHORT G_M31008_IG11
-            ldr     r1, [r4+0x04]
-            cmp     r1, 40
+            ldr     r7, [r4+0x04]
+            cmp     r7, 40
             ble     SHORT G_M31008_IG11
-            add     r2, r4, 8
-            ; byrRegs +[r2]
+            add     r8, r4, 8
+            ; byrRegs +[r8]
                         ;; size=52 bbWeight=1 PerfScore 21.00
-G_M31008_IG03:        ; bbWeight=3.96, gcrefRegs=0030 {r4 r5}, byrefRegs=0004 {r2}, byref, isz
-            movs    r3, 1
-            cmp     r1, r0
+G_M31008_IG03:        ; bbWeight=3.96, gcrefRegs=0030 {r4 r5}, byrefRegs=0100 {r8}, byref, isz
+            ; gcrRegs -[r0]
+            movs    r0, 1
+            cmp     r7, r6
             bls     SHORT G_M31008_IG07
                        ;; size=6 bbWeight=3.96 PerfScore 11.88
-G_M31008_IG04:        ; bbWeight=1.98, gcrefRegs=0030 {r4 r5}, byrefRegs=0004 {r2}, byref, isz
-            lsl     lr, r0, 2
-            ldr     r12, [r2+lr]
-            ; gcrRegs +[r12]
-            cmp     r12, 0
+G_M31008_IG04:        ; bbWeight=1.98, gcrefRegs=0030 {r4 r5}, byrefRegs=0100 {r8}, byref, isz
+            lsls    r1, r6, 2
+            ldr     r2, [r8+r1]
+            ; gcrRegs +[r2]
+            cmp     r2, 0
             beq     SHORT G_M31008_IG07
-            ldr     lr, [r12+0x04]
-            cmp     lr, 40
+            ldr     r1, [r2+0x04]
+            cmp     r1, 40
             ble     SHORT G_M31008_IG07
-                        ;; size=24 bbWeight=1.98 PerfScore 13.86
-G_M31008_IG05:        ; bbWeight=15.68, gcrefRegs=1030 {r4 r5 r12}, byrefRegs=0004 {r2}, byref, isz
-            mov     lr, r12
-            ; gcrRegs +[lr]
-            add     lr, lr, 8
-            ; gcrRegs -[lr]
-            ; byrRegs +[lr]
-            lsls    r6, r3, 3
-            add     lr, r6
-            adds    r6, r0, r3
-            vmov.i2f s8, r6
+                      ;; size=16 bbWeight=1.98 PerfScore 13.86
+G_M31008_IG05:        ; bbWeight=15.68, gcrefRegs=0034 {r2 r4 r5}, byrefRegs=0100 {r8}, byref, isz
+            mov     r1, r2
+            ; gcrRegs +[r1]
+            adds    r1, 8
+            ; gcrRegs -[r1]
+            ; byrRegs +[r1]
+            lsls    r3, r0, 3
+            adds    r1, r1, r3
+            adds    r3, r6, r0
+            vmov.i2f s8, r3
             vcvt.i2d d4, s8
-            vstr    d4, [lr]
-            adds    r3, r3, 1
-            cmp     r3, 40
-            ble     SHORT G_M31008_IG05
-                       ;; size=30 bbWeight=15.68 PerfScore 172.50
-G_M31008_IG06:        ; bbWeight=1.98, gcrefRegs=0030 {r4 r5}, byrefRegs=0004 {r2}, byref, isz
-            ; gcrRegs -[r12]
-            ; byrRegs -[lr]
-            b       SHORT G_M31008_IG09
-                       ;; size=2 bbWeight=1.98 PerfScore 1.98
-G_M31008_IG07:        ; bbWeight=0.02, gcrefRegs=0030 {r4 r5}, byrefRegs=0004 {r2}, byref
-            lsl     lr, r0, 2
-            ldr     r12, [r2+lr]
-            ; gcrRegs +[r12]
-                       ;; size=8 bbWeight=0.02 PerfScore 0.04
-G_M31008_IG08:        ; bbWeight=0.16, gcrefRegs=1030 {r4 r5 r12}, byrefRegs=0004 {r2}, byref, isz
-            mov     lr, r12
-            ; gcrRegs +[lr]
-            ldr     r6, [lr+0x04]
-            cmp     r3, r6
-            bhs     SHORT G_M31008_IG19
-            add     lr, lr, 8
-            ; gcrRegs -[lr]
-            ; byrRegs +[lr]
-            lsls    r6, r3, 3
-            add     lr, r6
-            adds    r6, r0, r3
-            vmov.i2f s8, r6
-            vcvt.i2d d4, s8
-            vstr    d4, [lr]
-            adds    r3, r3, 1
-            cmp     r3, 40
-            ble     SHORT G_M31008_IG08
-                       ;; size=38 bbWeight=0.16 PerfScore 2.22
-G_M31008_IG09:        ; bbWeight=3.96, gcrefRegs=0030 {r4 r5}, byrefRegs=0004 {r2}, byref, isz
-            ; gcrRegs -[r12]
-            ; byrRegs -[lr]
+            vstr    d4, [r1]
             adds    r0, r0, 1
             cmp     r0, 40
+            ble     SHORT G_M31008_IG05
+                       ;; size=28 bbWeight=15.68 PerfScore 172.50
+G_M31008_IG06:        ; bbWeight=3.96, gcrefRegs=0030 {r4 r5}, byrefRegs=0100 {r8}, byref, isz
+            ; gcrRegs -[r2]
+            ; byrRegs -[r1]
+            b       SHORT G_M31008_IG09
+                       ;; size=2 bbWeight=3.96 PerfScore 3.96
+G_M31008_IG07:        ; bbWeight=0.02, gcrefRegs=0030 {r4 r5}, byrefRegs=0100 {r8}, byref
+            lsls    r1, r6, 2
+            ldr     r2, [r8+r1]
+            ; gcrRegs +[r2]
+                       ;; size=6 bbWeight=0.02 PerfScore 0.04
+G_M31008_IG08:        ; bbWeight=0.16, gcrefRegs=0034 {r2 r4 r5}, byrefRegs=0100 {r8}, byref, isz
+            mov     r1, r2
+            ; gcrRegs +[r1]
+            ldr     r3, [r1+0x04]
+            cmp     r0, r3
+            bhs     SHORT G_M31008_IG19
+            adds    r1, 8
+            ; gcrRegs -[r1]
+            ; byrRegs +[r1]
+            lsls    r3, r0, 3
+            adds    r1, r1, r3
+            adds    r3, r6, r0
+            vmov.i2f s8, r3
+            vcvt.i2d d4, s8
+            vstr    d4, [r1]
+            adds    r0, r0, 1
+            cmp     r0, 40
+            ble     SHORT G_M31008_IG08
+                       ;; size=34 bbWeight=0.16 PerfScore 2.22
+G_M31008_IG09:        ; bbWeight=3.96, gcrefRegs=0030 {r4 r5}, byrefRegs=0100 {r8}, byref, isz
+            ; gcrRegs -[r2]
+            ; byrRegs -[r1]
+            adds    r6, r6, 1
+            cmp     r6, 40
             ble     SHORT G_M31008_IG03
                        ;; size=6 bbWeight=3.96 PerfScore 11.88
 G_M31008_IG10:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r2]
+            ; byrRegs -[r8]
             b       SHORT G_M31008_IG14
                        ;; size=2 bbWeight=1 PerfScore 1.00
 G_M31008_IG11:        ; bbWeight=0.04, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            movs    r3, 1
-            ldr     r1, [r4+0x04]
-            add     r2, r4, 8
-            ; byrRegs +[r2]
-            lsl     lr, r0, 2
-            cmp     r0, r1
+            movs    r0, 1
+            ldr     r7, [r4+0x04]
+            add     r8, r4, 8
+            ; byrRegs +[r8]
+            lsls    r1, r6, 2
+            cmp     r6, r7
             bhs     SHORT G_M31008_IG19
-            ldr     r1, [r2+lr]
+            ldr     r1, [r8+r1]
             ; gcrRegs +[r1]
-                       ;; size=20 bbWeight=0.04 PerfScore 0.28
+                       ;; size=18 bbWeight=0.04 PerfScore 0.28
 G_M31008_IG12:        ; bbWeight=0.16, gcrefRegs=0032 {r1 r4 r5}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r2]
-            mov     lr, r1
-            ; gcrRegs +[lr]
-            ldr     r2, [lr+0x04]
-            cmp     r3, r2
+            ; byrRegs -[r8]
+            mov     r2, r1
+            ; gcrRegs +[r2]
+            ldr     r3, [r2+0x04]
+            cmp     r0, r3
             bhs     SHORT G_M31008_IG19
-            add     r2, lr, 8
+            adds    r2, 8
+            ; gcrRegs -[r2]
             ; byrRegs +[r2]
-            lsl     lr, r3, 3
-            ; gcrRegs -[lr]
-            add     r2, lr
-            add     lr, r0, r3
-            vmov.i2f s8, lr
+            lsls    r3, r0, 3
+            adds    r2, r2, r3
+            adds    r3, r6, r0
+            vmov.i2f s8, r3
             vcvt.i2d d4, s8
             vstr    d4, [r2]
-            adds    r3, r3, 1
-            cmp     r3, 40
+            adds    r0, r0, 1
+            cmp     r0, 40
             ble     SHORT G_M31008_IG12
-                        ;; size=42 bbWeight=0.16 PerfScore 2.24
+                       ;; size=34 bbWeight=0.16 PerfScore 2.24
 G_M31008_IG13:        ; bbWeight=0.04, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r1]
             ; byrRegs -[r2]
-            adds    r0, r0, 1
-            cmp     r0, 40
+            adds    r6, r6, 1
+            cmp     r6, 40
             ble     SHORT G_M31008_IG11
                        ;; size=6 bbWeight=0.04 PerfScore 0.12
 G_M31008_IG14:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
@@ -205,13 +205,13 @@ G_M31008_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             movs    r0, 1
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
...
  
-26 (-7.83%) : 113576.dasm - Benchstone.BenchF.SqMtx:Bench():ubyte (FullOpts)
@@ -9,23 +9,23 @@
 ;
 ;  V00 loc0         [V00,T06] (  7,  5.08)     ref  ->   r4         class-hnd single-def <double[][]>
 ;  V01 loc1         [V01,T07] (  4,  4   )     ref  ->   r5         class-hnd single-def <double[][]>
-;  V02 loc2         [V02,T02] ( 15, 35.04)     int  ->   r0        
-;  V03 loc3         [V03,T00] ( 19, 84.32)     int  ->   r3        
+;  V02 loc2         [V02,T02] ( 15, 35.04)     int  ->   r6        
+;  V03 loc3         [V03,T00] ( 19, 84.32)     int  ->   r0        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T01] (  8, 64.64)     ref  ->   lr         "arr expr"
+;  V05 tmp1         [V05,T01] (  8, 64.64)     ref  ->  registers   "arr expr"
 ;  V06 tmp2         [V06,T05] (  3,  6   )     ref  ->   r0         single-def "arr expr"
 ;  V07 cse0         [V07,T10] (  2,  0.20)     ref  ->   r1         hoist "CSE - conservative"
-;  V08 cse1         [V08,T03] (  6, 21.80)     ref  ->  r12         hoist multi-def "CSE - aggressive"
-;  V09 cse2         [V09,T09] (  5,  3.08)   byref  ->   r2         hoist multi-def "CSE - aggressive"
-;  V10 cse3         [V10,T08] (  4,  4.00)     int  ->   lr         hoist multi-def "CSE - aggressive"
-;  V11 cse4         [V11,T04] (  5,  6.04)     int  ->   r1         hoist multi-def "CSE - aggressive"
-;  V12 cse5         [V12,T11] (  2,  0.08)     int  ->   lr         hoist "CSE - conservative"
+;  V08 cse1         [V08,T03] (  6, 21.80)     ref  ->   r2         hoist multi-def "CSE - aggressive"
+;  V09 cse2         [V09,T09] (  5,  3.08)   byref  ->   r8         hoist multi-def "CSE - aggressive"
+;  V10 cse3         [V10,T08] (  4,  4.00)     int  ->   r1         hoist multi-def "CSE - aggressive"
+;  V11 cse4         [V11,T04] (  5,  6.04)     int  ->   r7         hoist multi-def "CSE - aggressive"
+;  V12 cse5         [V12,T11] (  2,  0.08)     int  ->   r1         hoist "CSE - conservative"
 ;
 ; Lcl frame size = 4
 
 G_M31008_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r5,r6,r11,lr}
-            add     r11, sp, 16
+            push    {r3,r4,r5,r6,r7,r8,r11,lr}
+            add     r11, sp, 24
                         ;; size=8 bbWeight=1 PerfScore 2.00
 G_M31008_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             movs    r0, 41
@@ -49,123 +49,123 @@ G_M31008_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcr arg pop 0
             mov     r5, r0
             ; gcrRegs +[r5]
-            movs    r0, 1
-            ; gcrRegs -[r0]
+            movs    r6, 1
             cmp     r4, 0
             beq     SHORT G_M31008_IG11
-            ldr     r1, [r4+0x04]
-            cmp     r1, 40
+            ldr     r7, [r4+0x04]
+            cmp     r7, 40
             ble     SHORT G_M31008_IG11
-            add     r2, r4, 8
-            ; byrRegs +[r2]
+            add     r8, r4, 8
+            ; byrRegs +[r8]
                         ;; size=52 bbWeight=1 PerfScore 21.00
-G_M31008_IG03:        ; bbWeight=3.96, gcrefRegs=0030 {r4 r5}, byrefRegs=0004 {r2}, byref, isz
-            movs    r3, 1
-            cmp     r1, r0
+G_M31008_IG03:        ; bbWeight=3.96, gcrefRegs=0030 {r4 r5}, byrefRegs=0100 {r8}, byref, isz
+            ; gcrRegs -[r0]
+            movs    r0, 1
+            cmp     r7, r6
             bls     SHORT G_M31008_IG07
                        ;; size=6 bbWeight=3.96 PerfScore 11.88
-G_M31008_IG04:        ; bbWeight=1.98, gcrefRegs=0030 {r4 r5}, byrefRegs=0004 {r2}, byref, isz
-            lsl     lr, r0, 2
-            ldr     r12, [r2+lr]
-            ; gcrRegs +[r12]
-            cmp     r12, 0
+G_M31008_IG04:        ; bbWeight=1.98, gcrefRegs=0030 {r4 r5}, byrefRegs=0100 {r8}, byref, isz
+            lsls    r1, r6, 2
+            ldr     r2, [r8+r1]
+            ; gcrRegs +[r2]
+            cmp     r2, 0
             beq     SHORT G_M31008_IG07
-            ldr     lr, [r12+0x04]
-            cmp     lr, 40
+            ldr     r1, [r2+0x04]
+            cmp     r1, 40
             ble     SHORT G_M31008_IG07
-                        ;; size=24 bbWeight=1.98 PerfScore 13.86
-G_M31008_IG05:        ; bbWeight=15.68, gcrefRegs=1030 {r4 r5 r12}, byrefRegs=0004 {r2}, byref, isz
-            mov     lr, r12
-            ; gcrRegs +[lr]
-            add     lr, lr, 8
-            ; gcrRegs -[lr]
-            ; byrRegs +[lr]
-            lsls    r6, r3, 3
-            add     lr, r6
-            adds    r6, r0, r3
-            vmov.i2f s8, r6
+                      ;; size=16 bbWeight=1.98 PerfScore 13.86
+G_M31008_IG05:        ; bbWeight=15.68, gcrefRegs=0034 {r2 r4 r5}, byrefRegs=0100 {r8}, byref, isz
+            mov     r1, r2
+            ; gcrRegs +[r1]
+            adds    r1, 8
+            ; gcrRegs -[r1]
+            ; byrRegs +[r1]
+            lsls    r3, r0, 3
+            adds    r1, r1, r3
+            adds    r3, r6, r0
+            vmov.i2f s8, r3
             vcvt.i2d d4, s8
-            vstr    d4, [lr]
-            adds    r3, r3, 1
-            cmp     r3, 40
-            ble     SHORT G_M31008_IG05
-                       ;; size=30 bbWeight=15.68 PerfScore 172.50
-G_M31008_IG06:        ; bbWeight=1.98, gcrefRegs=0030 {r4 r5}, byrefRegs=0004 {r2}, byref, isz
-            ; gcrRegs -[r12]
-            ; byrRegs -[lr]
-            b       SHORT G_M31008_IG09
-                       ;; size=2 bbWeight=1.98 PerfScore 1.98
-G_M31008_IG07:        ; bbWeight=0.02, gcrefRegs=0030 {r4 r5}, byrefRegs=0004 {r2}, byref
-            lsl     lr, r0, 2
-            ldr     r12, [r2+lr]
-            ; gcrRegs +[r12]
-                       ;; size=8 bbWeight=0.02 PerfScore 0.04
-G_M31008_IG08:        ; bbWeight=0.16, gcrefRegs=1030 {r4 r5 r12}, byrefRegs=0004 {r2}, byref, isz
-            mov     lr, r12
-            ; gcrRegs +[lr]
-            ldr     r6, [lr+0x04]
-            cmp     r3, r6
-            bhs     SHORT G_M31008_IG19
-            add     lr, lr, 8
-            ; gcrRegs -[lr]
-            ; byrRegs +[lr]
-            lsls    r6, r3, 3
-            add     lr, r6
-            adds    r6, r0, r3
-            vmov.i2f s8, r6
-            vcvt.i2d d4, s8
-            vstr    d4, [lr]
-            adds    r3, r3, 1
-            cmp     r3, 40
-            ble     SHORT G_M31008_IG08
-                       ;; size=38 bbWeight=0.16 PerfScore 2.22
-G_M31008_IG09:        ; bbWeight=3.96, gcrefRegs=0030 {r4 r5}, byrefRegs=0004 {r2}, byref, isz
-            ; gcrRegs -[r12]
-            ; byrRegs -[lr]
+            vstr    d4, [r1]
             adds    r0, r0, 1
             cmp     r0, 40
+            ble     SHORT G_M31008_IG05
+                       ;; size=28 bbWeight=15.68 PerfScore 172.50
+G_M31008_IG06:        ; bbWeight=3.96, gcrefRegs=0030 {r4 r5}, byrefRegs=0100 {r8}, byref, isz
+            ; gcrRegs -[r2]
+            ; byrRegs -[r1]
+            b       SHORT G_M31008_IG09
+                       ;; size=2 bbWeight=3.96 PerfScore 3.96
+G_M31008_IG07:        ; bbWeight=0.02, gcrefRegs=0030 {r4 r5}, byrefRegs=0100 {r8}, byref
+            lsls    r1, r6, 2
+            ldr     r2, [r8+r1]
+            ; gcrRegs +[r2]
+                       ;; size=6 bbWeight=0.02 PerfScore 0.04
+G_M31008_IG08:        ; bbWeight=0.16, gcrefRegs=0034 {r2 r4 r5}, byrefRegs=0100 {r8}, byref, isz
+            mov     r1, r2
+            ; gcrRegs +[r1]
+            ldr     r3, [r1+0x04]
+            cmp     r0, r3
+            bhs     SHORT G_M31008_IG19
+            adds    r1, 8
+            ; gcrRegs -[r1]
+            ; byrRegs +[r1]
+            lsls    r3, r0, 3
+            adds    r1, r1, r3
+            adds    r3, r6, r0
+            vmov.i2f s8, r3
+            vcvt.i2d d4, s8
+            vstr    d4, [r1]
+            adds    r0, r0, 1
+            cmp     r0, 40
+            ble     SHORT G_M31008_IG08
+                       ;; size=34 bbWeight=0.16 PerfScore 2.22
+G_M31008_IG09:        ; bbWeight=3.96, gcrefRegs=0030 {r4 r5}, byrefRegs=0100 {r8}, byref, isz
+            ; gcrRegs -[r2]
+            ; byrRegs -[r1]
+            adds    r6, r6, 1
+            cmp     r6, 40
             ble     SHORT G_M31008_IG03
                        ;; size=6 bbWeight=3.96 PerfScore 11.88
 G_M31008_IG10:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r2]
+            ; byrRegs -[r8]
             b       SHORT G_M31008_IG14
                        ;; size=2 bbWeight=1 PerfScore 1.00
 G_M31008_IG11:        ; bbWeight=0.04, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            movs    r3, 1
-            ldr     r1, [r4+0x04]
-            add     r2, r4, 8
-            ; byrRegs +[r2]
-            lsl     lr, r0, 2
-            cmp     r0, r1
+            movs    r0, 1
+            ldr     r7, [r4+0x04]
+            add     r8, r4, 8
+            ; byrRegs +[r8]
+            lsls    r1, r6, 2
+            cmp     r6, r7
             bhs     SHORT G_M31008_IG19
-            ldr     r1, [r2+lr]
+            ldr     r1, [r8+r1]
             ; gcrRegs +[r1]
-                       ;; size=20 bbWeight=0.04 PerfScore 0.28
+                       ;; size=18 bbWeight=0.04 PerfScore 0.28
 G_M31008_IG12:        ; bbWeight=0.16, gcrefRegs=0032 {r1 r4 r5}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r2]
-            mov     lr, r1
-            ; gcrRegs +[lr]
-            ldr     r2, [lr+0x04]
-            cmp     r3, r2
+            ; byrRegs -[r8]
+            mov     r2, r1
+            ; gcrRegs +[r2]
+            ldr     r3, [r2+0x04]
+            cmp     r0, r3
             bhs     SHORT G_M31008_IG19
-            add     r2, lr, 8
+            adds    r2, 8
+            ; gcrRegs -[r2]
             ; byrRegs +[r2]
-            lsl     lr, r3, 3
-            ; gcrRegs -[lr]
-            add     r2, lr
-            add     lr, r0, r3
-            vmov.i2f s8, lr
+            lsls    r3, r0, 3
+            adds    r2, r2, r3
+            adds    r3, r6, r0
+            vmov.i2f s8, r3
             vcvt.i2d d4, s8
             vstr    d4, [r2]
-            adds    r3, r3, 1
-            cmp     r3, 40
+            adds    r0, r0, 1
+            cmp     r0, 40
             ble     SHORT G_M31008_IG12
-                        ;; size=42 bbWeight=0.16 PerfScore 2.24
+                       ;; size=34 bbWeight=0.16 PerfScore 2.24
 G_M31008_IG13:        ; bbWeight=0.04, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r1]
             ; byrRegs -[r2]
-            adds    r0, r0, 1
-            cmp     r0, 40
+            adds    r6, r6, 1
+            cmp     r6, 40
             ble     SHORT G_M31008_IG11
                        ;; size=6 bbWeight=0.04 PerfScore 0.12
 G_M31008_IG14:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
@@ -205,13 +205,13 @@ G_M31008_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             movs    r0, 1
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
...
  
-44 (-6.96%) : 331970.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:MergeWithGlobalList(System.Canon[]):this (Tier1)
@@ -10,15 +10,15 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T12] (  8,  6.50)     ref  ->   r5         this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  8,457.30)     ref  ->   r4         class-hnd single-def <System.__Canon[]>
-;  V02 loc0         [V02,T06] ( 17, 72.79)     ref  ->   r6         class-hnd <System.__Canon[]>
-;  V03 loc1         [V03,T08] (  6, 62.13)     int  ->   r7        
+;  V01 arg1         [V01,T04] (  8, 63.55)     ref  ->   r4         class-hnd single-def <System.__Canon[]>
+;  V02 loc0         [V02,T03] ( 17, 72.79)     ref  ->   r6         class-hnd <System.__Canon[]>
+;  V03 loc1         [V03,T07] (  5, 62.13)     int  ->   r7        
 ;  V04 loc2         [V04,T11] (  9, 15.83)     int  ->   r8        
-;  V05 loc3         [V05,T02] (  6,458.93)     int  ->   r9        
-;  V06 loc4         [V06,T07] (  9, 62.91)     ref  ->  r10         class-hnd <System.__Canon>
-;  V07 loc5         [V07,T03] (  3,454.07)   ubyte  ->  [sp+0x10] 
-;  V08 loc6         [V08,T04] ( 14,236.01)     int  ->  [sp+0x0C] 
-;  V09 loc7         [V09,T00] ( 10,678   )     ref  ->  [sp+0x00]  class-hnd <System.__Canon>
+;  V05 loc3         [V05,T05] (  6, 65.18)     int  ->   r9        
+;  V06 loc4         [V06,T06] (  9, 62.91)     ref  ->  r10         class-hnd <System.__Canon>
+;  V07 loc5         [V07,T08] (  3, 60.32)   ubyte  ->  [sp+0x10] 
+;  V08 loc6         [V08,T01] ( 11,236.01)     int  ->  [sp+0x0C] 
+;  V09 loc7         [V09,T00] ( 10,284.25)     ref  ->  [sp+0x00]  class-hnd <System.__Canon>
 ;  V10 loc8         [V10,T20] (  3,  0.47)     int  ->  [sp+0x08] 
 ;  V11 loc9         [V11    ] (  3,  0.70)     ref  ->  [sp+0x04]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.__Canon[]>
 ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -27,19 +27,19 @@
 ;* V15 tmp3         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeMethodInfo>
 ;* V16 tmp4         [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V17 tmp5         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Reflection.RuntimeMethodInfo>
-;* V18 tmp6         [V18,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Reflection.RuntimeMethodInfo>
-;  V19 tmp7         [V19,T19] (  4,  0.65)     int  ->   r2         "Inline return value spill temp"
-;  V20 tmp8         [V20,T15] (  3,  1.03)     int  ->   r2         "Inlining Arg"
+;* V18 tmp6         [V18,T02] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Reflection.RuntimeMethodInfo>
+;  V19 tmp7         [V19,T19] (  4,  0.65)     int  ->   r3         "Inline return value spill temp"
+;  V20 tmp8         [V20,T15] (  3,  1.03)     int  ->   r3         "Inlining Arg"
 ;  V21 tmp9         [V21,T21] (  3,  0.47)     int  ->  registers   "Inline return value spill temp"
-;  V22 tmp10        [V22,T16] (  3,  1.03)     int  ->   lr         "Inlining Arg"
+;  V22 tmp10        [V22,T16] (  3,  1.03)     int  ->   r2         "Inlining Arg"
 ;* V23 tmp11        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V24 tmp12        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;  V25 tmp13        [V25,T18] (  2,  0.93)     int  ->   r0         "argument with side effect"
-;  V26 cse0         [V26,T09] (  6, 59.41)     int  ->   r1         multi-def "CSE - aggressive"
+;  V26 cse0         [V26,T09] (  6, 59.41)     int  ->  registers   multi-def "CSE - aggressive"
 ;  V27 cse1         [V27,T10] (  3, 24.40)     ref  ->   r1         "CSE - aggressive"
 ;  V28 rat0         [V28,T14] (  3,  1.03)     int  ->   r0         "Spilling to split statement for tree"
 ;  V29 rat1         [V29,T17] (  3,  0.93)     int  ->   r0         "runtime lookup"
-;  V30 rat2         [V30,T13] (  3,  1.31)     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V30 rat2         [V30,T13] (  3,  1.31)     int  ->  r12         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 28
 
@@ -59,7 +59,7 @@ G_M8298_IG02:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, by
             ldr     r6, [r5+0x04]
             ; gcrRegs +[r6]
             cmp     r6, 0
-            beq     SHORT G_M8298_IG11
+            beq     SHORT G_M8298_IG10
                       ;; size=6 bbWeight=1 PerfScore 3.00
 G_M8298_IG03:        ; bbWeight=0.80, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
             ldr     r7, [r6+0x04]
@@ -67,7 +67,7 @@ G_M8298_IG03:        ; bbWeight=0.80, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000
             mov     r9, 0
             ldr     r0, [r4+0x04]
             cmp     r0, 0
-            ble     G_M8298_IG21
+            ble     G_M8298_IG25
                       ;; size=18 bbWeight=0.80 PerfScore 4.80
 G_M8298_IG04:        ; bbWeight=2.03, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
             add     r0, r4, 8
@@ -78,57 +78,53 @@ G_M8298_IG04:        ; bbWeight=2.03, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000
             movs    r3, 0
             mov     lr, 0
             cmp     r7, 0
-            ble     SHORT G_M8298_IG10
+            ble     SHORT G_M8298_IG18
                       ;; size=22 bbWeight=2.03 PerfScore 14.23
 G_M8298_IG05:        ; bbWeight=1.02, gcrefRegs=0470 {r4 r5 r6 r10}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r0]
             cmp     r6, 0
-            beq     G_M8298_IG31
+            beq     SHORT G_M8298_IG15
             cmp     r10, 0
-            beq     G_M8298_IG31
+            beq     SHORT G_M8298_IG15
             ldr     r0, [r10]
-            movw    r1, 0xd1ff
-            movt    r1, 0xd1ff
-            cmp     r0, r1
-            bne     G_M8298_IG31
+            movw    r12, 0xd1ff
+            movt    r12, 0xd1ff
+            cmp     r0, r12
+            bne     SHORT G_M8298_IG15
             ldr     r0, [r6+0x04]
             cmp     r0, r7
-            blt     G_M8298_IG31
-                       ;; size=40 bbWeight=1.02 PerfScore 12.20
+            blt     SHORT G_M8298_IG15
+                       ;; size=32 bbWeight=1.02 PerfScore 12.20
 G_M8298_IG06:        ; bbWeight=57.17, gcrefRegs=0470 {r4 r5 r6 r10}, byrefRegs=0000 {}, byref, isz
             add     r0, r6, 8
             ; byrRegs +[r0]
-            lsl     r2, lr, 2
-            ldr     r12, [r0+r2]
-            ; gcrRegs +[r12]
-            cmp     r12, 0
-            beq     SHORT G_M8298_IG09
-                       ;; size=18 bbWeight=57.17 PerfScore 285.86
-G_M8298_IG07:        ; bbWeight=55.69, gcrefRegs=1470 {r4 r5 r6 r10 r12}, byrefRegs=0000 {}, byref, isz
+            lsl     r1, lr, 2
+            ldr     r2, [r0+r1]
+            ; gcrRegs +[r2]
+            cmp     r2, 0
+            beq     SHORT G_M8298_IG18
+                       ;; size=14 bbWeight=57.17 PerfScore 285.86
+G_M8298_IG07:        ; bbWeight=55.69, gcrefRegs=0474 {r2 r4 r5 r6 r10}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r0]
-            ldr     r0, [r12]
+            ldr     r0, [r2]
+            cmp     r0, r12
+            bne     SHORT G_M8298_IG13
+            ldr     r0, [r2+0x28]
+            ldr     r1, [r10+0x28]
             cmp     r0, r1
-            bne     SHORT G_M8298_IG23
-            ldr     r0, [r12+0x28]
-            ldr     r2, [r10+0x28]
-            cmp     r0, r2
-            bne     SHORT G_M8298_IG23
-                       ;; size=20 bbWeight=55.69 PerfScore 389.81
-G_M8298_IG08:        ; bbWeight=450, gcrefRegs=1470 {r4 r5 r6 r10 r12}, byrefRegs=0000 {}, byref, isz
-            str     lr, [sp+0x0C]
+            beq     SHORT G_M8298_IG09
+                       ;; size=16 bbWeight=55.69 PerfScore 389.81
+G_M8298_IG08:        ; bbWeight=57.70, gcrefRegs=0470 {r4 r5 r6 r10}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2]
             b       SHORT G_M8298_IG13
-                        ;; size=6 bbWeight=450 PerfScore 900.00
-G_M8298_IG09:        ; bbWeight=28.59, gcrefRegs=0470 {r4 r5 r6 r10}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r12]
+                     ;; size=2 bbWeight=57.70 PerfScore 57.70
+G_M8298_IG09:        ; bbWeight=27.84, gcrefRegs=0474 {r2 r4 r5 r6 r10}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[r2]
             str     lr, [sp+0x0C]
-            b       SHORT G_M8298_IG14
-                       ;; size=6 bbWeight=28.59 PerfScore 57.17
-G_M8298_IG10:        ; bbWeight=1.02, gcrefRegs=0470 {r4 r5 r6 r10}, byrefRegs=0000 {}, byref, isz
-            str     lr, [sp+0x0C]
-            b       SHORT G_M8298_IG14
-                       ;; size=6 bbWeight=1.02 PerfScore 2.03
-G_M8298_IG11:        ; bbWeight=0.20, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r6 r10]
+            b       SHORT G_M8298_IG12
+                       ;; size=6 bbWeight=27.84 PerfScore 55.69
+G_M8298_IG10:        ; bbWeight=0.20, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r2 r6 r10]
             adds    r0, r5, 4
             ; byrRegs +[r0]
             mov     r1, r4
@@ -139,43 +135,92 @@ G_M8298_IG11:        ; bbWeight=0.20, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {},
             ; gcrRegs -[r1 r4]
             ; byrRegs -[r0]
                        ;; size=14 bbWeight=0.20 PerfScore 1.00
-G_M8298_IG12:        ; bbWeight=0.20, epilog, nogc, extend
+G_M8298_IG11:        ; bbWeight=0.20, epilog, nogc, extend
             add     sp, 28
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=0.20 PerfScore 0.40
-G_M8298_IG13:        ; bbWeight=450, gcVars=00000000 {}, gcrefRegs=1470 {r4 r5 r6 r10 r12}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[r4 r6 r10 r12]
+G_M8298_IG12:        ; bbWeight=56.25, gcVars=00000000 {}, gcrefRegs=0474 {r2 r4 r5 r6 r10}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[r2 r4 r6 r10]
             mov     r0, r4
             ; gcrRegs +[r0]
             mov     r1, r9
-            mov     r2, r12
-            ; gcrRegs +[r2]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_ARRADDR_ST
-            ; gcrRegs -[r0 r2 r12]
+            ; gcrRegs -[r0 r2]
             ; gcr arg pop 0
             movs    r3, 1
-                        ;; size=18 bbWeight=450 PerfScore 3150.00
-G_M8298_IG14:        ; bbWeight=2.03, gcrefRegs=0470 {r4 r5 r6 r10}, byrefRegs=0000 {}, byref, isz
-            cmp     r3, 0
-            bne     SHORT G_M8298_IG20
-            cmp     r8, 0
-            bne     SHORT G_M8298_IG16
-                       ;; size=10 bbWeight=2.03 PerfScore 8.13
-G_M8298_IG15:        ; bbWeight=0.80, gcrefRegs=0470 {r4 r5 r6 r10}, byrefRegs=0000 {}, byref
+            mov     r2, r3
+            mov     r3, r2
             ldr     lr, [sp+0x0C]    // [V08 loc6]
+            b       SHORT G_M8298_IG18
+                       ;; size=26 bbWeight=56.25 PerfScore 562.50
+G_M8298_IG13:        ; bbWeight=57.70, gcrefRegs=0470 {r4 r5 r6 r10}, byrefRegs=0000 {}, byref, isz
+            add     lr, lr, 1
+            cmp     lr, r7
+            blt     SHORT G_M8298_IG06
+                       ;; size=8 bbWeight=57.70 PerfScore 173.10
+G_M8298_IG14:        ; bbWeight=2.03, gcrefRegs=0470 {r4 r5 r6 r10}, byrefRegs=0000 {}, byref, isz
+            b       SHORT G_M8298_IG18
+                       ;; size=2 bbWeight=2.03 PerfScore 2.03
+G_M8298_IG15:        ; bbWeight=0.58, gcrefRegs=0470 {r4 r5 r6 r10}, byrefRegs=0000 {}, byref, isz
+            ldr     r2, [r6+0x04]
+            cmp     lr, r2
+            bhs     G_M8298_IG41
+            add     r12, r6, 8
+            ; byrRegs +[r12]
+            lsl     r0, lr, 2
+            ldr     r2, [r12+r0]
+            ; gcrRegs +[r2]
+            mov     r12, r2
+            ; gcrRegs +[r12]
+            ; byrRegs -[r12]
+            cmp     r12, 0
+            beq     SHORT G_M8298_IG18
+                       ;; size=28 bbWeight=0.58 PerfScore 5.20
+G_M8298_IG16:        ; bbWeight=0.56, gcrefRegs=1470 {r4 r5 r6 r10 r12}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2]
+            ldr     r0, [r10]
+            movw    r1, 0xd1ff
+            movt    r1, 0xd1ff
+            cmp     r0, r1
+            bne     G_M8298_IG42
+            ldr     r0, [r12]
+            cmp     r0, r1
+            bne     SHORT G_M8298_IG17
+            ldr     r0, [r12+0x28]
+            ldr     r1, [r10+0x28]
+            cmp     r0, r1
+            mov     r2, r12
+            ; gcrRegs +[r2]
+            beq     SHORT G_M8298_IG27
+                       ;; size=40 bbWeight=0.56 PerfScore 7.31
+G_M8298_IG17:        ; bbWeight=0.58, gcrefRegs=0470 {r4 r5 r6 r10}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r2 r12]
+            add     lr, lr, 1
+            str     lr, [sp+0x0C]  // [V08 loc6]
+            cmp     lr, r7
+            ldr     lr, [sp+0x0C]  // [V08 loc6]
+            blt     SHORT G_M8298_IG15
+                       ;; size=16 bbWeight=0.58 PerfScore 2.91
+G_M8298_IG18:        ; bbWeight=2.03, gcrefRegs=0470 {r4 r5 r6 r10}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
+            bne     SHORT G_M8298_IG24
+            cmp     r8, 0
+            bne     SHORT G_M8298_IG20
+                       ;; size=10 bbWeight=2.03 PerfScore 8.13
...
  
+16 (+2.85%) : 316131.dasm - System.IO.TextWriter:WriteLine(System.String):this (Tier1)
@@ -9,11 +9,11 @@
 ; 20 inlinees with PGO data; 8 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T07] ( 13,102.02)     ref  ->   r4         this class-hnd single-def <System.IO.TextWriter>
+;  V00 this         [V00,T07] ( 15,102.02)     ref  ->   r4         this class-hnd single-def <System.IO.TextWriter>
 ;  V01 arg1         [V01,T23] (  6,  5   )     ref  ->   r5         class-hnd single-def <System.String>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03,T37] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <XUnitWrapperLibrary.TestOutputRecorder>
-;  V04 tmp2         [V04,T22] (  5,  8   )     ref  ->   r5         single-def "guarded devirt arg temp"
+;  V04 tmp2         [V04,T22] (  6,  8   )     ref  ->   r5         single-def "guarded devirt arg temp"
 ;* V05 tmp3         [V05,T38] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <XUnitWrapperLibrary.TestOutputRecorder>
 ;  V06 tmp4         [V06,T20] (  5, 27.25)     ref  ->   r7         class-hnd "Inline return value spill temp" <ushort[]>
 ;  V07 tmp5         [V07,T33] (  3,  3   )     ref  ->   r7         class-hnd exact single-def "Inline stloc first use temp" <ushort[]>
@@ -43,7 +43,7 @@
 ;  V31 tmp29        [V31,T18] (  3, 52.51)     int  ->   r9         "Inlining Arg"
 ;  V32 tmp30        [V32,T10] (  5, 98.02)     int  ->  r10         "Inline stloc first use temp"
 ;* V33 tmp31        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V34 tmp32        [V34,T05] (  3,145.53)  ushort  ->   r6         "Inlining Arg"
+;  V34 tmp32        [V34,T05] (  3,145.53)  ushort  ->   r5         "Inlining Arg"
 ;* V35 tmp33        [V35    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V36 tmp34        [V36,T02] (  3,145.53)     ref  ->   r0         "argument with side effect"
 ;* V37 tmp35        [V37    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
@@ -72,15 +72,15 @@ G_M53633_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=12 bbWeight=1 PerfScore 4.00
 G_M53633_IG02:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             cmp     r5, 0
-            beq     G_M53633_IG13
+            beq     SHORT G_M53633_IG07
             ldr     r1, [r4]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             cmp     r1, r0
-            bne     G_M53633_IG18
+            bne     G_M53633_IG13
             ldr     r6, [r5+0x04]
             cmp     r6, 0
-            beq     G_M53633_IG15
+            beq     G_M53633_IG17
             mov     r1, r6
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -104,15 +104,15 @@ G_M53633_IG02:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ; gcrRegs -[r5]
             ; byrRegs -[r0-r1]
             ; gcr arg pop 0
-                      ;; size=74 bbWeight=1 PerfScore 24.00
+                     ;; size=72 bbWeight=1 PerfScore 24.00
 G_M53633_IG03:        ; bbWeight=1, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref, isz
             cmp     r7, 0
-            beq     G_M53633_IG13
+            beq     SHORT G_M53633_IG07
             ldr     r5, [r7+0x04]
             movs    r6, 0
             cmp     r5, 0
-            ble     G_M53633_IG13
-                       ;; size=16 bbWeight=1 PerfScore 6.00
+            ble     SHORT G_M53633_IG07
+                       ;; size=12 bbWeight=1 PerfScore 6.00
 G_M53633_IG04:        ; bbWeight=24.25, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref, isz
             add     r0, r7, 8
             ; byrRegs +[r0]
@@ -145,24 +145,24 @@ G_M53633_IG04:        ; bbWeight=24.25, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {
             ; byrRegs -[r0]
             mvns    r0, r0
             cmp     r1, 0
-            beq     G_M53633_IG16
+            beq     G_M53633_IG18
             cmp     r0, 0
-            blt     G_M53633_IG16
+            blt     G_M53633_IG18
             ldr     r3, [r1+0x04]
             cmp     r3, r0
-            ble     G_M53633_IG16
+            ble     G_M53633_IG18
             cmp     r0, r3
-            bhs     SHORT G_M53633_IG14
+            bhs     G_M53633_IG16
             lsls    r0, r0, 2
             adds    r0, 8
             ldr     r1, [r1+r0]
             dmb     15
             cmp     r1, 0
-            beq     SHORT G_M53633_IG16
+            beq     G_M53633_IG18
             ldrb    r0, [r9+0x10]
             dmb     15
             cmp     r0, 0
-            beq     SHORT G_M53633_IG16
+            beq     G_M53633_IG18
             ldr     r0, [r1+0x10]
             ; gcrRegs +[r0]
             ldr     r10, [r0+0x0C]
@@ -171,8 +171,8 @@ G_M53633_IG04:        ; bbWeight=24.25, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {
             ; gcrRegs +[r2]
             ldr     lr, [r2+0x04]
             cmp     lr, r3
-            bls     SHORT G_M53633_IG17
-                       ;; size=126 bbWeight=24.25 PerfScore 1115.73
+            bls     G_M53633_IG19
+                       ;; size=134 bbWeight=24.25 PerfScore 1115.73
 G_M53633_IG05:        ; bbWeight=24.25, gcrefRegs=0095 {r0 r2 r4 r7}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r1 r9]
             add     r1, r2, 8
@@ -189,12 +189,22 @@ G_M53633_IG06:        ; bbWeight=24.25, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {
             cmp     r6, r5
             blt     SHORT G_M53633_IG04
                        ;; size=6 bbWeight=24.25 PerfScore 72.77
-G_M53633_IG07:        ; bbWeight=0.96, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M53633_IG07:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r7]
-            b       SHORT G_M53633_IG13
-                       ;; size=2 bbWeight=0.96 PerfScore 0.96
-G_M53633_IG08:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            ldr     r5, [r4+0x08]
             ; gcrRegs +[r5]
+            ldr     r1, [r4]
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+            cmp     r1, r0
+            bne     SHORT G_M53633_IG14
+                       ;; size=16 bbWeight=1 PerfScore 6.00
+G_M53633_IG08:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
+            cmp     r5, 0
+            beq     SHORT G_M53633_IG12
+            ldr     r7, [r5+0x04]
+            cmp     r7, 0
+            beq     G_M53633_IG20
             mov     r1, r7
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -218,7 +228,7 @@ G_M53633_IG08:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ; gcrRegs -[r5]
             ; byrRegs -[r0-r1]
             ; gcr arg pop 0
-                      ;; size=44 bbWeight=1 PerfScore 14.00
+                     ;; size=56 bbWeight=1 PerfScore 19.00
 G_M53633_IG09:        ; bbWeight=1, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, byref, isz
             cmp     r6, 0
             beq     SHORT G_M53633_IG12
@@ -234,10 +244,10 @@ G_M53633_IG10:        ; bbWeight=0.96, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}
 G_M53633_IG11:        ; bbWeight=24.25, gcrefRegs=0010 {r4}, byrefRegs=0100 {r8}, byref, isz
             ; gcrRegs -[r6]
             lsl     r0, r10, 1
-            ldrh    r6, [r8+r0]
+            ldrh    r5, [r8+r0]
             ldr     r0, [r4+0x10]
             ; gcrRegs +[r0]
-            mov     r1, r6
+            mov     r1, r5
             ldr     r3, [r0]
             ldr     r3, [r3+0x30]
             ldr     r3, [r3+0x18]
@@ -252,7 +262,7 @@ G_M53633_IG11:        ; bbWeight=24.25, gcrefRegs=0010 {r4}, byrefRegs=0100 {r8}
             ldr     r2, [r0]
             blx     r3     // System.Threading.ThreadLocal`1[System.__Canon]:get_Value():System.__Canon:this
             ; gcr arg pop 0
-            mov     r1, r6
+            mov     r1, r5
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -268,30 +278,49 @@ G_M53633_IG12:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs -[r8]
             pop     {r3,r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M53633_IG13:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[r4]
+G_M53633_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[r4-r5]
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            mov     r1, r5
+            ; gcrRegs +[r1]
+            ldr     r3, [r4]
+            ldr     r3, [r3+0x38]
+            ldr     r3, [r3+0x08]
+            blx     r3     // System.IO.TextWriter:Write(System.String):this
+            ; gcrRegs -[r0-r1 r5]
+            ; gcr arg pop 0
             ldr     r5, [r4+0x08]
             ; gcrRegs +[r5]
-            ldr     r1, [r4]
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            cmp     r1, r0
-            bne     SHORT G_M53633_IG20
-            cmp     r5, 0
-            beq     SHORT G_M53633_IG12
-            ldr     r7, [r5+0x04]
-            cmp     r7, 0
-            beq     SHORT G_M53633_IG19
-            b       SHORT G_M53633_IG08
-                       ;; size=28 bbWeight=1 PerfScore 12.00
-G_M53633_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r4-r5]
+            ldr     r0, [r4]
+            movw    r1, 0xd1ff
+            movt    r1, 0xd1ff
+            cmp     r0, r1
+            beq     SHORT G_M53633_IG08
+                       ;; size=28 bbWeight=0 PerfScore 0.00
+G_M53633_IG14:        ; bbWeight=0, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            mov     r0, r4
+            ; gcrRegs +[r0]
+            mov     r1, r5
+            ; gcrRegs +[r1]
+            ldr     r3, [r4]
+            ldr     r3, [r3+0x38]
+            ldr     r3, [r3+0x08]
+                       ;; size=10 bbWeight=0 PerfScore 0.00
+G_M53633_IG15:        ; bbWeight=0, epilog, nogc, extend
+            add     sp, 4
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,lr}
+            bx      r3     // System.IO.TextWriter:Write(System.String):this
+            ; gcr arg pop 0
+                       ;; size=8 bbWeight=0 PerfScore 0.00
+G_M53633_IG16:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs -[r0-r1 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_M53633_IG15:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
+G_M53633_IG17:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -306,7 +335,7 @@ G_M53633_IG15:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ; gcrRegs +[r7]
             b       SHORT G_M53633_IG03
                        ;; size=32 bbWeight=0 PerfScore 0.00
-G_M53633_IG16:        ; bbWeight=0, gcrefRegs=0290 {r4 r7 r9}, byrefRegs=0000 {}, byref, isz
+G_M53633_IG18:        ; bbWeight=0, gcrefRegs=0290 {r4 r7 r9}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r9]
             mov     r0, r9
             ; gcrRegs +[r0]
@@ -322,9 +351,9 @@ G_M53633_IG16:        ; bbWeight=0, gcrefRegs=0290 {r4 r7 r9}, byrefRegs=0000 {}
             ; gcrRegs +[r2]
             ldr     lr, [r2+0x04]
             cmp     lr, r3
-            bhi     SHORT G_M53633_IG05
-                       ;; size=30 bbWeight=0 PerfScore 0.00
-G_M53633_IG17:        ; bbWeight=0, gcrefRegs=0091 {r0 r4 r7}, byrefRegs=0000 {}, byref, isz
+            bhi     G_M53633_IG05
+                       ;; size=32 bbWeight=0 PerfScore 0.00
+G_M53633_IG19:        ; bbWeight=0, gcrefRegs=0091 {r0 r4 r7}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r2]
             mov     r1, r8
...
  
+36 (+3.23%) : 465273.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (Tier0-FullOpts)
@@ -22,11 +22,11 @@
 ;  V11 loc8         [V11,T00] ( 19,329.27)     int  ->  [sp+0x38] 
 ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V13 tmp1         [V13    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V14 tmp2         [V14,T20] (  6, 20   )     int  ->  registers   "fgMakeTemp is creating a new local variable"
+;  V14 tmp2         [V14,T20] (  6, 20   )     int  ->   lr         "fgMakeTemp is creating a new local variable"
 ;  V15 tmp3         [V15,T06] ( 10, 60   )     ref  ->  [sp+0x18]  class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
-;  V16 tmp4         [V16,T14] (  6, 36   )     ref  ->   r1         "CASTCLASS eval op1"
+;  V16 tmp4         [V16,T14] (  6, 36   )     ref  ->  registers   "CASTCLASS eval op1"
 ;  V17 tmp5         [V17,T21] (  6, 20   )     int  ->  registers   "fgMakeTemp is creating a new local variable"
-;  V18 tmp6         [V18,T07] ( 10, 60   )     ref  ->  registers   class-hnd "spilling QMark2" <Internal.TypeSystem.GenericParameterDesc>
+;  V18 tmp6         [V18,T07] ( 10, 60   )     ref  ->  r10         class-hnd "spilling QMark2" <Internal.TypeSystem.GenericParameterDesc>
 ;* V19 tmp7         [V19    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <Internal.TypeSystem.Instantiation>
 ;* V20 tmp8         [V20    ] (  0,  0   )  struct ( 8) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <Internal.TypeSystem.TypeSystemContext+RuntimeDeterminedTypeKey>
 ;  V21 tmp9         [V21,T05] (  8, 64   )     ref  ->  [sp+0x14]  class-hnd exact "impAppendStmt" <<unknown class>>
@@ -37,16 +37,16 @@
 ;  V26 tmp14        [V26,T19] (  6, 20   )     ref  ->  [sp+0x6C]  do-not-enreg[] single-def "field V01._genericParameters (fldOffset=0x0)" P-DEP
 ;* V27 tmp15        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V19._genericParameters (fldOffset=0x0)" P-INDEP
 ;  V28 tmp16        [V28,T16] (  6, 24   )     ref  ->  [sp+0x10]  "field V20._plainCanonType (fldOffset=0x0)" P-INDEP
-;  V29 tmp17        [V29,T17] (  6, 24   )     ref  ->  [sp+0x0C]  "field V20._detailsType (fldOffset=0x4)" P-INDEP
+;  V29 tmp17        [V29,T17] (  6, 24   )     ref  ->  r10         "field V20._detailsType (fldOffset=0x4)" P-INDEP
 ;* V30 tmp18        [V30    ] (  0,  0   )     ref  ->  zero-ref    "field V23._plainCanonType (fldOffset=0x0)" P-INDEP
 ;* V31 tmp19        [V31    ] (  0,  0   )     ref  ->  zero-ref    "field V23._detailsType (fldOffset=0x4)" P-INDEP
 ;  V32 cse0         [V32,T03] (  7, 96   )   byref  ->  r10         multi-def "CSE - aggressive"
 ;  V33 cse1         [V33,T11] ( 12, 55.19)     int  ->   r5         "CSE - aggressive"
-;  V34 cse2         [V34,T13] (  6, 40   )   byref  ->  [sp+0x08]  multi-def "CSE - aggressive"
+;  V34 cse2         [V34,T13] (  6, 40   )   byref  ->  [sp+0x0C]  multi-def "CSE - aggressive"
 ;  V35 cse3         [V35,T23] (  4,  6.16)     int  ->   r6         "CSE - moderate"
 ;  V36 cse4         [V36,T10] (  4, 55.44)     int  ->  [sp+0x30]  spill-single-def "CSE - aggressive"
-;  TEMP_02                                     ref  ->  [r11-0x5C]
-;  TEMP_01                                     int  ->  [r11-0x60]
+;  TEMP_02                                     ref  ->  [r11-0x58]
+;  TEMP_01                                     int  ->  [r11-0x5C]
 ;
 ; Lcl frame size = 68
 
@@ -58,7 +58,7 @@ G_M11797_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             movs    r0, 0
             str     r0, [sp+0x3C]  // [V04 loc1]
             str     r0, [sp+0x34]  // [V24 tmp12]
-            str     r0, [sp+0x04]   // [TEMP_02]
+            str     r0, [sp+0x08] // [TEMP_02]
             str     r2, [sp+0x2C]   // [V02 arg2]
             ; GC ptr vars +{V02}
                        ;; size=22 bbWeight=1 PerfScore 9.00
@@ -90,11 +90,11 @@ G_M11797_IG05:        ; bbWeight=8, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byre
             ldr     r8, [sp+0x3C]
             mov     r9, 0
             cmp     r5, 0
-            ble     G_M11797_IG50
+            ble     G_M11797_IG52
                         ;; size=14 bbWeight=8 PerfScore 32.00
 G_M11797_IG06:        ; bbWeight=4, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
             cmp     r6, r5
-            blt     G_M11797_IG30
+            blt     G_M11797_IG31
                        ;; size=6 bbWeight=4 PerfScore 8.00
 G_M11797_IG07:        ; bbWeight=15.84, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [sp+0x68]
@@ -138,18 +138,18 @@ G_M11797_IG07:        ; bbWeight=15.84, gcrefRegs=0080 {r7}, byrefRegs=0000 {},
             ; gcrRegs +[r1]
             add     r12, r1, 8
             ; byrRegs +[r12]
-            str     r12, [sp+0x08]   // [V34 cse2]
+            str     r12, [sp+0x0C]   // [V34 cse2]
             ; GC ptr vars +{V34}
-            ldr     r2, [sp+0x30]    // [V36 cse4]
-            ; gcrRegs -[r2]
-            ldr     r1, [r12+r2]
-            movw    r0, 0xd1ff
+            ldr     r0, [sp+0x30]  // [V36 cse4]
             ; gcrRegs -[r0]
+            ldr     r1, [r12+r0]
+            movw    r0, 0xd1ff
             movt    r0, 0xd1ff
-            movw    r4, 0xd1ff
-            movt    r4, 0xd1ff
+            movw    r2, 0xd1ff
+            ; gcrRegs -[r2]
+            movt    r2, 0xd1ff
             ; GC ptr vars -{V07}
-            blx     r4     // CORINFO_HELP_ISINSTANCEOFCLASS
+            blx     r2       // CORINFO_HELP_ISINSTANCEOFCLASS
             ; gcrRegs -[r1] +[r0]
             ; byrRegs -[r12]
             ; gcr arg pop 0
@@ -191,12 +191,9 @@ G_M11797_IG10:        ; bbWeight=7.92, gcrefRegs=0080 {r7}, byrefRegs=0400 {r10}
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            ldr     r4, [sp+0x1C]   // [V10 loc7]
-            ; gcrRegs +[r4]
-            beq     G_M11797_IG26
-                       ;; size=22 bbWeight=7.92 PerfScore 63.36
+            beq     SHORT G_M11797_IG16
+                       ;; size=18 bbWeight=7.92 PerfScore 55.44
 G_M11797_IG11:        ; bbWeight=7.92, gcVars=01003200 {V02 V08 V09 V34}, gcrefRegs=0080 {r7}, byrefRegs=0400 {r10}, gcvars, byref, isz
-            ; gcrRegs -[r4]
             ; GC ptr vars -{V08 V10}
             ldr     r1, [sp+0x20]  // [V09 loc6]
             ; gcrRegs +[r1]
@@ -223,7 +220,7 @@ G_M11797_IG13:        ; bbWeight=7.92, gcrefRegs=0080 {r7}, byrefRegs=0400 {r10}
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             cmp     r7, 0
-            bne     SHORT G_M11797_IG17
+            bne     SHORT G_M11797_IG18
             mov     r1, r5
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -234,132 +231,154 @@ G_M11797_IG13:        ; bbWeight=7.92, gcrefRegs=0080 {r7}, byrefRegs=0400 {r10}
             ; gcr arg pop 0
             mov     r7, r0
             ; gcrRegs +[r7]
-            movs    r4, 0
+            movs    r3, 0
             cmp     r9, 0
-            ble     SHORT G_M11797_IG17
+            ble     SHORT G_M11797_IG18
             cmp     r5, r9
-            blt     SHORT G_M11797_IG16
+            blt     SHORT G_M11797_IG17
                        ;; size=50 bbWeight=7.92 PerfScore 142.56
 G_M11797_IG14:        ; bbWeight=62.73, gcrefRegs=0080 {r7}, byrefRegs=0400 {r10}, byref, isz
             ; gcrRegs -[r0]
-            lsls    r2, r4, 2
+            lsls    r2, r3, 2
             ldr     r2, [r10+r2]
             ; gcrRegs +[r2]
             mov     r0, r7
             ; gcrRegs +[r0]
-            mov     r1, r4
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_ARRADDR_ST
+            str     r3, [sp+0x38]   // [V11 loc8]
+            mov     r1, r3
+            movw    lr, 0xd1ff
+            movt    lr, 0xd1ff
+            blx     lr     // CORINFO_HELP_ARRADDR_ST
             ; gcrRegs -[r0 r2]
             ; gcr arg pop 0
-            adds    r4, r4, 1
-            cmp     r4, r9
+            ldr     r3, [sp+0x38]  // [V11 loc8]
+            adds    r3, r3, 1
+            cmp     r3, r9
             blt     SHORT G_M11797_IG14
-                        ;; size=26 bbWeight=62.73 PerfScore 627.26
+                        ;; size=30 bbWeight=62.73 PerfScore 752.72
 G_M11797_IG15:        ; bbWeight=7.92, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r10]
-            b       SHORT G_M11797_IG17
+            b       SHORT G_M11797_IG18
                      ;; size=2 bbWeight=7.92 PerfScore 7.92
-G_M11797_IG16:        ; bbWeight=0.63, gcrefRegs=0080 {r7}, byrefRegs=0400 {r10}, byref, isz
+G_M11797_IG16:        ; bbWeight=3.96, gcVars=01000100 {V02 V10}, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; GC ptr vars -{V09 V34} +{V08 V10}
+            ldr     r10, [sp+0x1C] // [V10 loc7]
+            ; gcrRegs +[r10]
+            b       SHORT G_M11797_IG27
+                       ;; size=6 bbWeight=3.96 PerfScore 7.92
+G_M11797_IG17:        ; bbWeight=0.63, gcVars=01003200 {V02 V08 V09 V34}, gcrefRegs=0080 {r7}, byrefRegs=0400 {r10}, gcvars, byref, isz
+            ; gcrRegs -[r10]
             ; byrRegs +[r10]
-            cmp     r4, r5
-            bhs     G_M11797_IG59
-            lsls    r2, r4, 2
+            ; GC ptr vars -{V08 V10} +{V09 V34}
+            cmp     r3, r5
+            bhs     G_M11797_IG61
+            lsls    r2, r3, 2
             ldr     r2, [r10+r2]
             ; gcrRegs +[r2]
             mov     r0, r7
             ; gcrRegs +[r0]
-            mov     r1, r4
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_ARRADDR_ST
+            str     r3, [sp+0x38]   // [V11 loc8]
+            mov     r1, r3
+            movw    lr, 0xd1ff
+            movt    lr, 0xd1ff
+            blx     lr     // CORINFO_HELP_ARRADDR_ST
             ; gcrRegs -[r0 r2]
             ; gcr arg pop 0
-            adds    r4, r4, 1
-            cmp     r4, r9
-            blt     SHORT G_M11797_IG16
-                       ;; size=32 bbWeight=0.63 PerfScore 7.60
-G_M11797_IG17:        ; bbWeight=7.92, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
+            ldr     r3, [sp+0x38]   // [V11 loc8]
+            adds    r3, r3, 1
+            cmp     r3, r9
+            blt     SHORT G_M11797_IG17
+                       ;; size=36 bbWeight=0.63 PerfScore 8.87
+G_M11797_IG18:        ; bbWeight=7.92, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r10]
-            ldr     r4, [sp+0x20]   // [V09 loc6]
-            ; gcrRegs +[r4]
-            mov     r10, r4
+            ldr     r10, [sp+0x20]    // [V09 loc6]
             ; gcrRegs +[r10]
-            cmp     r10, 0
-            beq     SHORT G_M11797_IG20
+            mov     r2, r10
+            ; gcrRegs +[r2]
+            cmp     r2, 0
+            beq     SHORT G_M11797_IG21
                         ;; size=10 bbWeight=7.92 PerfScore 31.68
-G_M11797_IG18:        ; bbWeight=3.96, gcVars=01002200 {V02 V08 V34}, gcrefRegs=0490 {r4 r7 r10}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M11797_IG19:        ; bbWeight=3.96, gcVars=01002200 {V02 V08 V34}, gcrefRegs=0484 {r2 r7 r10}, byrefRegs=0000 {}, gcvars, byref, isz
             ; GC ptr vars -{V09} +{V08}
+            ldr     r0, [r2]
+            movw    lr, 0xd1ff
+            movt    lr, 0xd1ff
+            cmp     r0, lr
+            beq     SHORT G_M11797_IG21
+                       ;; size=14 bbWeight=3.96 PerfScore 19.80
+G_M11797_IG20:        ; bbWeight=1.98, gcrefRegs=0480 {r7 r10}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r2]
+            mov     r0, lr
+            mov     r1, r10
+            ; gcrRegs +[r1]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_CHKCASTCLASS_SPECIAL
+            ; gcrRegs -[r1 r10] +[r0]
+            ; gcr arg pop 0
+            str     r0, [sp+0x18]  // [V15 tmp3]
+            ; GC ptr vars +{V15}
+            ldr     r2, [sp+0x18]  // [V15 tmp3]
+            ; gcrRegs +[r2]
+                       ;; size=18 bbWeight=1.98 PerfScore 13.86
+G_M11797_IG21:        ; bbWeight=7.92, gcrefRegs=0084 {r2 r7}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0]
+            ; GC ptr vars -{V15}
+            ldr     r10, [sp+0x0C] // [V34 cse2]
+            ; byrRegs +[r10]
+            ldr     r3, [sp+0x30]  // [V36 cse4]
+            ldr     r1, [r10+r3]
+            ; gcrRegs +[r1]
+            mov     r10, r1
+            ; gcrRegs +[r10]
+            ; byrRegs -[r10]
+            cmp     r10, 0
+            beq     SHORT G_M11797_IG24
+                       ;; size=18 bbWeight=7.92 PerfScore 47.52
+G_M11797_IG22:        ; bbWeight=3.96, gcVars=01000200 {V02 V08}, gcrefRegs=0486 {r1 r2 r7 r10}, byrefRegs=0000 {}, gcvars, byref, isz
...
  
+36 (+3.23%) : 228464.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (FullOpts)
@@ -22,11 +22,11 @@
 ;  V11 loc8         [V11,T00] ( 19,329.27)     int  ->  [sp+0x38] 
 ;# V12 OutArgs      [V12    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V13 tmp1         [V13    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V14 tmp2         [V14,T20] (  6, 20   )     int  ->  registers   "fgMakeTemp is creating a new local variable"
+;  V14 tmp2         [V14,T20] (  6, 20   )     int  ->   lr         "fgMakeTemp is creating a new local variable"
 ;  V15 tmp3         [V15,T06] ( 10, 60   )     ref  ->  [sp+0x18]  class-hnd "spilling QMark2" <Internal.TypeSystem.DefType>
-;  V16 tmp4         [V16,T14] (  6, 36   )     ref  ->   r1         "CASTCLASS eval op1"
+;  V16 tmp4         [V16,T14] (  6, 36   )     ref  ->  registers   "CASTCLASS eval op1"
 ;  V17 tmp5         [V17,T21] (  6, 20   )     int  ->  registers   "fgMakeTemp is creating a new local variable"
-;  V18 tmp6         [V18,T07] ( 10, 60   )     ref  ->  registers   class-hnd "spilling QMark2" <Internal.TypeSystem.GenericParameterDesc>
+;  V18 tmp6         [V18,T07] ( 10, 60   )     ref  ->  r10         class-hnd "spilling QMark2" <Internal.TypeSystem.GenericParameterDesc>
 ;* V19 tmp7         [V19    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <Internal.TypeSystem.Instantiation>
 ;* V20 tmp8         [V20    ] (  0,  0   )  struct ( 8) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <Internal.TypeSystem.TypeSystemContext+RuntimeDeterminedTypeKey>
 ;  V21 tmp9         [V21,T05] (  8, 64   )     ref  ->  [sp+0x14]  class-hnd exact "impAppendStmt" <<unknown class>>
@@ -37,16 +37,16 @@
 ;  V26 tmp14        [V26,T19] (  6, 20   )     ref  ->  [sp+0x6C]  do-not-enreg[] single-def "field V01._genericParameters (fldOffset=0x0)" P-DEP
 ;* V27 tmp15        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V19._genericParameters (fldOffset=0x0)" P-INDEP
 ;  V28 tmp16        [V28,T16] (  6, 24   )     ref  ->  [sp+0x10]  "field V20._plainCanonType (fldOffset=0x0)" P-INDEP
-;  V29 tmp17        [V29,T17] (  6, 24   )     ref  ->  [sp+0x0C]  "field V20._detailsType (fldOffset=0x4)" P-INDEP
+;  V29 tmp17        [V29,T17] (  6, 24   )     ref  ->  r10         "field V20._detailsType (fldOffset=0x4)" P-INDEP
 ;* V30 tmp18        [V30    ] (  0,  0   )     ref  ->  zero-ref    "field V23._plainCanonType (fldOffset=0x0)" P-INDEP
 ;* V31 tmp19        [V31    ] (  0,  0   )     ref  ->  zero-ref    "field V23._detailsType (fldOffset=0x4)" P-INDEP
 ;  V32 cse0         [V32,T03] (  7, 96   )   byref  ->  r10         multi-def "CSE - aggressive"
 ;  V33 cse1         [V33,T11] ( 12, 55.19)     int  ->   r5         "CSE - aggressive"
-;  V34 cse2         [V34,T13] (  6, 40   )   byref  ->  [sp+0x08]  multi-def "CSE - aggressive"
+;  V34 cse2         [V34,T13] (  6, 40   )   byref  ->  [sp+0x0C]  multi-def "CSE - aggressive"
 ;  V35 cse3         [V35,T23] (  4,  6.16)     int  ->   r6         "CSE - moderate"
 ;  V36 cse4         [V36,T10] (  4, 55.44)     int  ->  [sp+0x30]  spill-single-def "CSE - aggressive"
-;  TEMP_02                                     ref  ->  [r11-0x5C]
-;  TEMP_01                                     int  ->  [r11-0x60]
+;  TEMP_02                                     ref  ->  [r11-0x58]
+;  TEMP_01                                     int  ->  [r11-0x5C]
 ;
 ; Lcl frame size = 68
 
@@ -58,7 +58,7 @@ G_M11797_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             movs    r0, 0
             str     r0, [sp+0x3C]  // [V04 loc1]
             str     r0, [sp+0x34]  // [V24 tmp12]
-            str     r0, [sp+0x04]   // [TEMP_02]
+            str     r0, [sp+0x08] // [TEMP_02]
             str     r2, [sp+0x2C]   // [V02 arg2]
             ; GC ptr vars +{V02}
                        ;; size=22 bbWeight=1 PerfScore 9.00
@@ -90,11 +90,11 @@ G_M11797_IG05:        ; bbWeight=8, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byre
             ldr     r8, [sp+0x3C]
             mov     r9, 0
             cmp     r5, 0
-            ble     G_M11797_IG50
+            ble     G_M11797_IG52
                         ;; size=14 bbWeight=8 PerfScore 32.00
 G_M11797_IG06:        ; bbWeight=4, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
             cmp     r6, r5
-            blt     G_M11797_IG30
+            blt     G_M11797_IG31
                        ;; size=6 bbWeight=4 PerfScore 8.00
 G_M11797_IG07:        ; bbWeight=15.84, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [sp+0x68]
@@ -138,18 +138,18 @@ G_M11797_IG07:        ; bbWeight=15.84, gcrefRegs=0080 {r7}, byrefRegs=0000 {},
             ; gcrRegs +[r1]
             add     r12, r1, 8
             ; byrRegs +[r12]
-            str     r12, [sp+0x08]   // [V34 cse2]
+            str     r12, [sp+0x0C]   // [V34 cse2]
             ; GC ptr vars +{V34}
-            ldr     r2, [sp+0x30]    // [V36 cse4]
-            ; gcrRegs -[r2]
-            ldr     r1, [r12+r2]
-            movw    r0, 0xd1ff
+            ldr     r0, [sp+0x30]  // [V36 cse4]
             ; gcrRegs -[r0]
+            ldr     r1, [r12+r0]
+            movw    r0, 0xd1ff
             movt    r0, 0xd1ff
-            movw    r4, 0xd1ff
-            movt    r4, 0xd1ff
+            movw    r2, 0xd1ff
+            ; gcrRegs -[r2]
+            movt    r2, 0xd1ff
             ; GC ptr vars -{V07}
-            blx     r4     // CORINFO_HELP_ISINSTANCEOFCLASS
+            blx     r2       // CORINFO_HELP_ISINSTANCEOFCLASS
             ; gcrRegs -[r1] +[r0]
             ; byrRegs -[r12]
             ; gcr arg pop 0
@@ -191,12 +191,9 @@ G_M11797_IG10:        ; bbWeight=7.92, gcrefRegs=0080 {r7}, byrefRegs=0400 {r10}
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            ldr     r4, [sp+0x1C]   // [V10 loc7]
-            ; gcrRegs +[r4]
-            beq     G_M11797_IG26
-                       ;; size=22 bbWeight=7.92 PerfScore 63.36
+            beq     SHORT G_M11797_IG16
+                       ;; size=18 bbWeight=7.92 PerfScore 55.44
 G_M11797_IG11:        ; bbWeight=7.92, gcVars=01003200 {V02 V08 V09 V34}, gcrefRegs=0080 {r7}, byrefRegs=0400 {r10}, gcvars, byref, isz
-            ; gcrRegs -[r4]
             ; GC ptr vars -{V08 V10}
             ldr     r1, [sp+0x20]  // [V09 loc6]
             ; gcrRegs +[r1]
@@ -223,7 +220,7 @@ G_M11797_IG13:        ; bbWeight=7.92, gcrefRegs=0080 {r7}, byrefRegs=0400 {r10}
             blx     r3     // <unknown method>
             ; gcr arg pop 0
             cmp     r7, 0
-            bne     SHORT G_M11797_IG17
+            bne     SHORT G_M11797_IG18
             mov     r1, r5
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -234,132 +231,154 @@ G_M11797_IG13:        ; bbWeight=7.92, gcrefRegs=0080 {r7}, byrefRegs=0400 {r10}
             ; gcr arg pop 0
             mov     r7, r0
             ; gcrRegs +[r7]
-            movs    r4, 0
+            movs    r3, 0
             cmp     r9, 0
-            ble     SHORT G_M11797_IG17
+            ble     SHORT G_M11797_IG18
             cmp     r5, r9
-            blt     SHORT G_M11797_IG16
+            blt     SHORT G_M11797_IG17
                        ;; size=50 bbWeight=7.92 PerfScore 142.56
 G_M11797_IG14:        ; bbWeight=62.73, gcrefRegs=0080 {r7}, byrefRegs=0400 {r10}, byref, isz
             ; gcrRegs -[r0]
-            lsls    r2, r4, 2
+            lsls    r2, r3, 2
             ldr     r2, [r10+r2]
             ; gcrRegs +[r2]
             mov     r0, r7
             ; gcrRegs +[r0]
-            mov     r1, r4
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_ARRADDR_ST
+            str     r3, [sp+0x38]   // [V11 loc8]
+            mov     r1, r3
+            movw    lr, 0xd1ff
+            movt    lr, 0xd1ff
+            blx     lr     // CORINFO_HELP_ARRADDR_ST
             ; gcrRegs -[r0 r2]
             ; gcr arg pop 0
-            adds    r4, r4, 1
-            cmp     r4, r9
+            ldr     r3, [sp+0x38]  // [V11 loc8]
+            adds    r3, r3, 1
+            cmp     r3, r9
             blt     SHORT G_M11797_IG14
-                        ;; size=26 bbWeight=62.73 PerfScore 627.26
+                        ;; size=30 bbWeight=62.73 PerfScore 752.72
 G_M11797_IG15:        ; bbWeight=7.92, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r10]
-            b       SHORT G_M11797_IG17
+            b       SHORT G_M11797_IG18
                      ;; size=2 bbWeight=7.92 PerfScore 7.92
-G_M11797_IG16:        ; bbWeight=0.63, gcrefRegs=0080 {r7}, byrefRegs=0400 {r10}, byref, isz
+G_M11797_IG16:        ; bbWeight=3.96, gcVars=01000100 {V02 V10}, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; GC ptr vars -{V09 V34} +{V08 V10}
+            ldr     r10, [sp+0x1C] // [V10 loc7]
+            ; gcrRegs +[r10]
+            b       SHORT G_M11797_IG27
+                       ;; size=6 bbWeight=3.96 PerfScore 7.92
+G_M11797_IG17:        ; bbWeight=0.63, gcVars=01003200 {V02 V08 V09 V34}, gcrefRegs=0080 {r7}, byrefRegs=0400 {r10}, gcvars, byref, isz
+            ; gcrRegs -[r10]
             ; byrRegs +[r10]
-            cmp     r4, r5
-            bhs     G_M11797_IG59
-            lsls    r2, r4, 2
+            ; GC ptr vars -{V08 V10} +{V09 V34}
+            cmp     r3, r5
+            bhs     G_M11797_IG61
+            lsls    r2, r3, 2
             ldr     r2, [r10+r2]
             ; gcrRegs +[r2]
             mov     r0, r7
             ; gcrRegs +[r0]
-            mov     r1, r4
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            blx     r3     // CORINFO_HELP_ARRADDR_ST
+            str     r3, [sp+0x38]   // [V11 loc8]
+            mov     r1, r3
+            movw    lr, 0xd1ff
+            movt    lr, 0xd1ff
+            blx     lr     // CORINFO_HELP_ARRADDR_ST
             ; gcrRegs -[r0 r2]
             ; gcr arg pop 0
-            adds    r4, r4, 1
-            cmp     r4, r9
-            blt     SHORT G_M11797_IG16
-                       ;; size=32 bbWeight=0.63 PerfScore 7.60
-G_M11797_IG17:        ; bbWeight=7.92, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
+            ldr     r3, [sp+0x38]   // [V11 loc8]
+            adds    r3, r3, 1
+            cmp     r3, r9
+            blt     SHORT G_M11797_IG17
+                       ;; size=36 bbWeight=0.63 PerfScore 8.87
+G_M11797_IG18:        ; bbWeight=7.92, gcrefRegs=0080 {r7}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r10]
-            ldr     r4, [sp+0x20]   // [V09 loc6]
-            ; gcrRegs +[r4]
-            mov     r10, r4
+            ldr     r10, [sp+0x20]    // [V09 loc6]
             ; gcrRegs +[r10]
-            cmp     r10, 0
-            beq     SHORT G_M11797_IG20
+            mov     r2, r10
+            ; gcrRegs +[r2]
+            cmp     r2, 0
+            beq     SHORT G_M11797_IG21
                         ;; size=10 bbWeight=7.92 PerfScore 31.68
-G_M11797_IG18:        ; bbWeight=3.96, gcVars=01002200 {V02 V08 V34}, gcrefRegs=0490 {r4 r7 r10}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M11797_IG19:        ; bbWeight=3.96, gcVars=01002200 {V02 V08 V34}, gcrefRegs=0484 {r2 r7 r10}, byrefRegs=0000 {}, gcvars, byref, isz
             ; GC ptr vars -{V09} +{V08}
+            ldr     r0, [r2]
+            movw    lr, 0xd1ff
+            movt    lr, 0xd1ff
+            cmp     r0, lr
+            beq     SHORT G_M11797_IG21
+                       ;; size=14 bbWeight=3.96 PerfScore 19.80
+G_M11797_IG20:        ; bbWeight=1.98, gcrefRegs=0480 {r7 r10}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r2]
+            mov     r0, lr
+            mov     r1, r10
+            ; gcrRegs +[r1]
+            movw    r3, 0xd1ff
+            movt    r3, 0xd1ff
+            blx     r3     // CORINFO_HELP_CHKCASTCLASS_SPECIAL
+            ; gcrRegs -[r1 r10] +[r0]
+            ; gcr arg pop 0
+            str     r0, [sp+0x18]  // [V15 tmp3]
+            ; GC ptr vars +{V15}
+            ldr     r2, [sp+0x18]  // [V15 tmp3]
+            ; gcrRegs +[r2]
+                       ;; size=18 bbWeight=1.98 PerfScore 13.86
+G_M11797_IG21:        ; bbWeight=7.92, gcrefRegs=0084 {r2 r7}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs -[r0]
+            ; GC ptr vars -{V15}
+            ldr     r10, [sp+0x0C] // [V34 cse2]
+            ; byrRegs +[r10]
+            ldr     r3, [sp+0x30]  // [V36 cse4]
+            ldr     r1, [r10+r3]
+            ; gcrRegs +[r1]
+            mov     r10, r1
+            ; gcrRegs +[r10]
+            ; byrRegs -[r10]
+            cmp     r10, 0
+            beq     SHORT G_M11797_IG24
+                       ;; size=18 bbWeight=7.92 PerfScore 47.52
+G_M11797_IG22:        ; bbWeight=3.96, gcVars=01000200 {V02 V08}, gcrefRegs=0486 {r1 r2 r7 r10}, byrefRegs=0000 {}, gcvars, byref, isz
...
  
  
libraries.crossgen2.linux.arm.checked.mch
-4 (-0.14%) : 1296.dasm - System.DirectoryServices.Protocols.BerConverter:Encode(System.String,System.Object[]):ubyte
@@ -279,7 +279,7 @@ G_M1714_IG16:        ; bbWeight=2, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {},
 G_M1714_IG17:        ; bbWeight=2, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r5+0x04]
             cmp     r0, r9
-            ble     G_M1714_IG67
+            ble     G_M1714_IG68
             str     r3, [sp+0x40]    // [V07 loc5]
             add     r0, r5, 8
             ; byrRegs +[r0]
@@ -297,7 +297,7 @@ G_M1714_IG17:        ; bbWeight=2, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {},
             blx     r12        // CORINFO_HELP_READYTORUN_ISINSTANCEOF
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     G_M1714_IG68
+            beq     G_M1714_IG69
             ldr     r0, [sp+0x30] // [V12 loc10]
             ; gcrRegs -[r0]
             movw    r4, LOW RELOC 0xD1FFAB1E
@@ -369,7 +369,7 @@ G_M1714_IG20:        ; bbWeight=2, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {},
             bne     SHORT G_M1714_IG25
             ldr     r0, [r5+0x04]
             cmp     r0, r9
-            ble     G_M1714_IG69
+            ble     G_M1714_IG70
             str     r3, [sp+0x40]    // [V07 loc5]
             add     r0, r5, 8
             ; byrRegs +[r0]
@@ -387,7 +387,7 @@ G_M1714_IG20:        ; bbWeight=2, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {},
             blx     r12        // CORINFO_HELP_READYTORUN_ISINSTANCEOF
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     G_M1714_IG70
+            beq     G_M1714_IG71
             ldr     r0, [sp+0x30] // [V12 loc10]
             ; gcrRegs -[r0]
             movw    r4, LOW RELOC 0xD1FFAB1E
@@ -466,7 +466,7 @@ G_M1714_IG25:        ; bbWeight=2, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {},
             bne     SHORT G_M1714_IG28
             ldr     r0, [r5+0x04]
             cmp     r0, r9
-            ble     G_M1714_IG71
+            ble     G_M1714_IG72
             add     r0, r5, 8
             ; byrRegs +[r0]
             lsl     r1, r9, 2
@@ -491,7 +491,7 @@ G_M1714_IG25:        ; bbWeight=2, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {},
             ldr     r3, [sp+0x40]  // [V07 loc5]
             ldr     r4, [sp+0x08]  // [V73 cse0]
             ; gcrRegs +[r4]
-            beq     G_M1714_IG72
+            beq     G_M1714_IG73
                         ;; size=58 bbWeight=2 PerfScore 46.00
 G_M1714_IG26:        ; bbWeight=2, gcVars=000000000000000000800000 {V00}, gcrefRegs=01B0 {r4 r5 r7 r8}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0]
@@ -551,7 +551,7 @@ G_M1714_IG28:        ; bbWeight=2, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {},
 G_M1714_IG29:        ; bbWeight=2, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [r5+0x04]
             cmp     r0, r9
-            ble     G_M1714_IG73
+            ble     G_M1714_IG74
             add     r0, r5, 8
             ; byrRegs +[r0]
             lsl     r4, r9, 2
@@ -576,7 +576,7 @@ G_M1714_IG29:        ; bbWeight=2, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {},
             cmp     r0, 0
             ldr     r4, [sp+0x08]  // [V73 cse0]
             ; gcrRegs +[r4]
-            beq     G_M1714_IG74
+            beq     G_M1714_IG75
                         ;; size=52 bbWeight=2 PerfScore 38.00
 G_M1714_IG30:        ; bbWeight=2, gcVars=000000000000000000800000 {V00}, gcrefRegs=01B0 {r4 r5 r7 r8}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0]
@@ -611,7 +611,7 @@ G_M1714_IG31:        ; bbWeight=2, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {},
             bne     G_M1714_IG47
             ldr     r0, [r5+0x04]
             cmp     r0, r9
-            ble     G_M1714_IG75
+            ble     G_M1714_IG76
             add     r0, r5, 8
             ; byrRegs +[r0]
             lsl     r1, r9, 2
@@ -638,7 +638,7 @@ G_M1714_IG31:        ; bbWeight=2, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {},
             cmp     r0, 0
             ldr     r1, [sp+0x08]  // [V73 cse0]
             ; gcrRegs +[r1]
-            beq     G_M1714_IG76
+            beq     G_M1714_IG77
                         ;; size=62 bbWeight=2 PerfScore 46.00
 G_M1714_IG32:        ; bbWeight=2, gcVars=000000000000000000800000 {V00}, gcrefRegs=01A2 {r1 r5 r7 r8}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0]
@@ -778,10 +778,10 @@ G_M1714_IG38:        ; bbWeight=15.84, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0002
             cmp     r2, r3
             bgt     SHORT G_M1714_IG40
                        ;; size=48 bbWeight=15.84 PerfScore 285.12
-G_M1714_IG39:        ; bbWeight=2, gcVars=000000000000000000800000 {V00}, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M1714_IG39:        ; bbWeight=8, gcVars=000000000000000000800000 {V00}, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {}, gcvars, byref, isz
             ; GC ptr vars -{V17 V18}
             b       SHORT G_M1714_IG45
-                       ;; size=2 bbWeight=2 PerfScore 2.00
+                       ;; size=2 bbWeight=8 PerfScore 8.00
 G_M1714_IG40:        ; bbWeight=7.92, gcVars=000000000000000000860000 {V00 V17 V18}, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {}, gcvars, byref, isz
             ; GC ptr vars +{V17 V18}
             ldr     r4, [sp+0x14]  // [V18 loc16]
@@ -804,7 +804,7 @@ G_M1714_IG42:        ; bbWeight=0.08, gcrefRegs=01B0 {r4 r5 r7 r8}, byrefRegs=00
             ; byrRegs -[r0]
             ldr     r0, [r4+0x04]
             cmp     r3, r0
-            bhs     G_M1714_IG66
+            bhs     G_M1714_IG67
             add     r1, r4, 8
             ; byrRegs +[r1]
             str     r3, [sp+0x2C]  // [V19 loc17]
@@ -836,7 +836,7 @@ G_M1714_IG43:        ; bbWeight=0.08, gcrefRegs=01B2 {r1 r4 r5 r7 r8}, byrefRegs
             ; gcrRegs -[r0]
             ldr     r2, [sp+0x2C]  // [V19 loc17]
             cmp     r2, r0
-            bhs     G_M1714_IG66
+            bhs     G_M1714_IG67
             add     r0, r4, 8
             ; byrRegs +[r0]
             mov     r3, r0
@@ -904,7 +904,7 @@ G_M1714_IG47:        ; bbWeight=16, gcVars=000000000000000000800000 {V00}, gcref
             bne     SHORT G_M1714_IG50
             ldr     r0, [r5+0x04]
             cmp     r0, r9
-            ble     G_M1714_IG77
+            ble     G_M1714_IG78
             add     r0, r5, 8
             ; byrRegs +[r0]
             lsl     r4, r9, 2
@@ -933,7 +933,7 @@ G_M1714_IG48:        ; bbWeight=8, gcrefRegs=01B0 {r4 r5 r7 r8}, byrefRegs=0000
             cmp     r0, 0
             ldr     r4, [sp+0x08]  // [V73 cse0]
             ; gcrRegs +[r4]
-            beq     G_M1714_IG78
+            beq     G_M1714_IG79
                         ;; size=28 bbWeight=8 PerfScore 80.00
 G_M1714_IG49:        ; bbWeight=16, gcVars=000000000000000000800000 {V00}, gcrefRegs=01B0 {r4 r5 r7 r8}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0]
@@ -965,10 +965,10 @@ G_M1714_IG49:        ; bbWeight=16, gcVars=000000000000000000800000 {V00}, gcref
 G_M1714_IG50:        ; bbWeight=16, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {}, byref, isz
             ldr     r1, [sp+0x30]  // [V12 loc10]
             cmp     r1, 116
-            bne     G_M1714_IG81
+            bne     G_M1714_IG82
             ldr     r0, [r5+0x04]
             cmp     r0, r9
-            ble     G_M1714_IG79
+            ble     G_M1714_IG80
             add     r0, r5, 8
             ; byrRegs +[r0]
             lsl     r3, r9, 2
@@ -988,7 +988,7 @@ G_M1714_IG50:        ; bbWeight=16, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {}
             blx     r3     // CORINFO_HELP_READYTORUN_ISINSTANCEOF
             ; gcr arg pop 0
             cmp     r0, 0
-            beq     G_M1714_IG80
+            beq     G_M1714_IG81
             ldr     r4, [sp+0x08] // [V73 cse0]
             ; gcrRegs +[r4]
             ldr     r0, [r4]
@@ -1037,17 +1037,16 @@ G_M1714_IG52:        ; bbWeight=16, gcrefRegs=01B0 {r4 r5 r7 r8}, byrefRegs=0000
 G_M1714_IG53:        ; bbWeight=4, gcrefRegs=01A0 {r5 r7 r8}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
             cmp     r4, -1
-            beq     G_M1714_IG82
-            ldr     lr, [sp+0x34]  // [V11 loc9]
-            add     lr, lr, 1
-            ldr     r12, [sp+0x20] // [V80 cse7]
-            cmp     r12, lr
-            ldr     r2, [sp+0x3C]  // [V08 loc6]
-            ldr     r3, [sp+0x40]  // [V07 loc5]
+            beq     G_M1714_IG83
+            ldr     r3, [sp+0x34]  // [V11 loc9]
+            adds    r3, r3, 1
+            ldr     r2, [sp+0x20]  // [V80 cse7]
+            cmp     r2, r3
+            mov     lr, r3
             ldr     r6, [sp+0x1C]    // [V00 arg0]
             ; gcrRegs +[r6]
-            bgt     G_M1714_IG05
-                       ;; size=32 bbWeight=4 PerfScore 40.00
+            bgt     SHORT G_M1714_IG66
+                       ;; size=22 bbWeight=4 PerfScore 36.00
 G_M1714_IG54:        ; bbWeight=1, gcVars=000000000000000000000000 {}, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r5-r7]
             movw    r4, LOW RELOC 0xD1FFAB1E
@@ -1194,8 +1193,14 @@ G_M1714_IG65:        ; bbWeight=1, epilog, nogc, extend
             add     sp, 76
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=1 PerfScore 2.00
-G_M1714_IG66:        ; bbWeight=0, gcVars=000000000000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r0 r7]
+G_M1714_IG66:        ; bbWeight=2, gcVars=000000000000000000000000 {}, gcrefRegs=01E0 {r5 r6 r7 r8}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[r0] +[r5-r6 r8]
+            ldr     r2, [sp+0x3C]  // [V08 loc6]
+            ldr     r3, [sp+0x40]  // [V07 loc5]
+            b       SHORT G_M1714_IG05
+                       ;; size=6 bbWeight=2 PerfScore 6.00
+G_M1714_IG67:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r5-r8]
             movw    r3, LOW RELOC 0xD1FFAB1E
             movt    r3, HIGH RELOC 0xD1FFAB1E
             add     r3, pc
@@ -1203,44 +1208,6 @@ G_M1714_IG66:        ; bbWeight=0, gcVars=000000000000000000000000 {}, gcrefRegs
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=14 bbWeight=0 PerfScore 0.00
-G_M1714_IG67:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movw    r4, LOW RELOC 0xD1FFAB1E
-            movt    r4, HIGH RELOC 0xD1FFAB1E
-            add     r4, pc
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs +[r0]
-            ; gcr arg pop 0
-            mov     r5, r0
-            ; gcrRegs +[r5]
-            movw    r4, LOW RELOC 0xD1FFAB1E
-            movt    r4, HIGH RELOC 0xD1FFAB1E
-            add     r4, pc
-            ldr     r3, [r4]
-            blx     r3     // CORINFO_HELP_READYTORUN_NEW
-            ; gcr arg pop 0
-            mov     r6, r0
-            ; gcrRegs +[r6]
-            mov     r0, r6
-            mov     r1, r5
-            ; gcrRegs +[r1]
-            movw    r4, LOW RELOC 0xD1FFAB1E
-            movt    r4, HIGH RELOC 0xD1FFAB1E
-            add     r4, pc
-            ldr     r3, [r4]
-            blx     r3     // <unknown method>
-            ; gcrRegs -[r0-r1 r5]
-            ; gcr arg pop 0
-            mov     r0, r6
-            ; gcrRegs +[r0]
-            movw    r3, LOW RELOC 0xD1FFAB1E
-            movt    r3, HIGH RELOC 0xD1FFAB1E
-            add     r3, pc
-            ldr     r3, [r3]
-            blx     r3     // CORINFO_HELP_THROW
-            ; gcrRegs -[r0 r6]
-            ; gcr arg pop 0
-                       ;; size=66 bbWeight=0 PerfScore 0.00
 G_M1714_IG68:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
@@ -1774,6 +1741,44 @@ G_M1714_IG81:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
...
  
+0 (0.00%) : 806.dasm - System.CommandLine.Helpers:AppendExpandedPaths(System.Collections.Generic.Dictionary`2[System.String,System.String],System.String,ubyte) (FullOpts)
@@ -21,8 +21,8 @@
 ;  V09 loc6         [V09,T02] (  3, 10   )     ref  ->   r8         class-hnd <System.String>
 ;  V10 loc7         [V10    ] (  2,  4   )     ref  ->  [sp+0x04]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T13] (  3,  0   )     ref  ->   r9         class-hnd exact single-def "NewObj constructor temp" <System.CommandLine.CommandLineException>
-;  V13 tmp2         [V13,T14] (  3,  0   )     ref  ->   r6         class-hnd exact "NewObj constructor temp" <System.CommandLine.CommandLineException>
+;  V12 tmp1         [V12,T13] (  3,  0   )     ref  ->  r10         class-hnd exact single-def "NewObj constructor temp" <System.CommandLine.CommandLineException>
+;  V13 tmp2         [V13,T14] (  3,  0   )     ref  ->   r5         class-hnd exact "NewObj constructor temp" <System.CommandLine.CommandLineException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.String>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.String>
 ;  V16 tmp5         [V16,T09] (  2,  2   )     ref  ->   r0         single-def "argument with side effect"
@@ -210,10 +210,10 @@ G_M40753_IG09:        ; bbWeight=4, gcrefRegs=0260 {r5 r6 r9}, byrefRegs=0000 {}
             cmp     r0, 0
             bne     SHORT G_M40753_IG07
                        ;; size=24 bbWeight=4 PerfScore 36.00
-G_M40753_IG10:        ; bbWeight=0.50, gcrefRegs=0240 {r6 r9}, byrefRegs=0000 {}, byref, isz
+G_M40753_IG10:        ; bbWeight=1, gcrefRegs=0240 {r6 r9}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r5]
             b       SHORT G_M40753_IG13
-                      ;; size=2 bbWeight=0.50 PerfScore 0.50
+                        ;; size=2 bbWeight=1 PerfScore 1.00
 G_M40753_IG11:        ; bbWeight=0, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r6] +[r10]
             movw    r4, LOW RELOC 0xD1FFAB1E
@@ -223,8 +223,8 @@ G_M40753_IG11:        ; bbWeight=0, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {},
             blx     r3     // CORINFO_HELP_READYTORUN_NEW
             ; gcrRegs +[r0]
             ; gcr arg pop 0
-            mov     r6, r0
-            ; gcrRegs +[r6]
+            mov     r5, r0
+            ; gcrRegs +[r5]
             movw    r2, LOW RELOC 0xD1FFAB1E
             movt    r2, HIGH RELOC 0xD1FFAB1E
             add     r2, pc
@@ -251,7 +251,7 @@ G_M40753_IG11:        ; bbWeight=0, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {},
             ; gcr arg pop 0
             mov     r1, r0
             ; gcrRegs +[r1]
-            mov     r0, r6
+            mov     r0, r5
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
             add     r4, pc
@@ -259,14 +259,14 @@ G_M40753_IG11:        ; bbWeight=0, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {},
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; gcr arg pop 0
-            mov     r0, r6
+            mov     r0, r5
             ; gcrRegs +[r0]
             movw    r3, LOW RELOC 0xD1FFAB1E
             movt    r3, HIGH RELOC 0xD1FFAB1E
             add     r3, pc
             ldr     r3, [r3]
             blx     r3     // CORINFO_HELP_THROW
-            ; gcrRegs -[r0 r6]
+            ; gcrRegs -[r0 r5]
             ; gcr arg pop 0
                        ;; size=98 bbWeight=0 PerfScore 0.00
 G_M40753_IG12:        ; bbWeight=2, gcrefRegs=0760 {r5 r6 r8 r9 r10}, byrefRegs=0000 {}, byref, isz
@@ -341,8 +341,8 @@ G_M40753_IG16:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0040 {r6}, byr
             blx     r3     // CORINFO_HELP_READYTORUN_NEW
             ; gcrRegs +[r0]
             ; gcr arg pop 0
-            mov     r9, r0
-            ; gcrRegs +[r9]
+            mov     r10, r0
+            ; gcrRegs +[r10]
             movw    r0, LOW RELOC 0xD1FFAB1E
             ; gcrRegs -[r0]
             movt    r0, HIGH RELOC 0xD1FFAB1E
@@ -361,7 +361,7 @@ G_M40753_IG16:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0040 {r6}, byr
             ; gcr arg pop 0
             mov     r1, r0
             ; gcrRegs +[r1]
-            mov     r0, r9
+            mov     r0, r10
             movw    r4, LOW RELOC 0xD1FFAB1E
             movt    r4, HIGH RELOC 0xD1FFAB1E
             add     r4, pc
@@ -369,14 +369,14 @@ G_M40753_IG16:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0040 {r6}, byr
             blx     r3     // <unknown method>
             ; gcrRegs -[r0-r1]
             ; gcr arg pop 0
-            mov     r0, r9
+            mov     r0, r10
             ; gcrRegs +[r0]
             movw    r3, LOW RELOC 0xD1FFAB1E
             movt    r3, HIGH RELOC 0xD1FFAB1E
             add     r3, pc
             ldr     r3, [r3]
             blx     r3     // CORINFO_HELP_THROW
-            ; gcrRegs -[r0 r9]
+            ; gcrRegs -[r0 r10]
             ; gcr arg pop 0
             bkpt    
                        ;; size=82 bbWeight=0 PerfScore 0.00
@@ -406,7 +406,7 @@ G_M40753_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             pop     {r3,r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 628, prolog size 24, PerfScore 267.50, instruction count 236, allocated bytes for code 628 (MethodHash=e8c560ce) for method System.CommandLine.Helpers:AppendExpandedPaths(System.Collections.Generic.Dictionary`2[System.String,System.String],System.String,ubyte) (FullOpts)
+; Total bytes of code 628, prolog size 24, PerfScore 268.00, instruction count 236, allocated bytes for code 628 (MethodHash=e8c560ce) for method System.CommandLine.Helpers:AppendExpandedPaths(System.Collections.Generic.Dictionary`2[System.String,System.String],System.String,ubyte) (FullOpts)
 ; ============================================================
 
 Unwind Info:
  
  
libraries.pmi.linux.arm.checked.mch
-36 (-9.42%) : 223079.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
@@ -13,12 +13,12 @@
 ;  V02 arg2         [V02,T12] (  5,  3.50)   byref  ->   r4         single-def
 ;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->   r5        
 ;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->   r8        
-;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   r3         single-def
+;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   lr         single-def
 ;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   r2        
-;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   lr        
-;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->  r12        
-;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   r2        
-;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->  r12        
+;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   r9        
+;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   r3        
+;  V09 loc6         [V09,T06] (  7, 17   )     int  ->  r10        
+;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->   r3        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->   r5         "impSpillLclRefs"
 ;* V13 tmp2         [V13,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -28,21 +28,21 @@
 ;* V17 tmp6         [V17,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp7         [V18,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp8         [V19,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->  r12         "Inlining Arg"
+;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->   r2         "Inlining Arg"
 ;* V21 tmp10        [V21,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp11        [V22,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
 ;  V24 cse0         [V24,T09] (  4,  9   )     int  ->   r8         "CSE - aggressive"
 ;  V25 cse1         [V25,T02] ( 10, 32   )     int  ->   r6         hoist "CSE - aggressive"
 ;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->   r7         "CSE - aggressive"
-;  TEMP_01                                     ref  ->  [r11-0x1C]
+;  TEMP_01                                     ref  ->  [r11-0x24]
 ;
 ; Lcl frame size = 12
 
 G_M24207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r11,lr}
+            push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             sub     sp, 12
-            add     r11, sp, 32
+            add     r11, sp, 40
             movs    r3, 0
             str     r3, [sp+0x04]
             mov     r4, r2
@@ -56,8 +56,8 @@ G_M24207_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4},
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M24207_IG03:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r6, r5
-            beq     G_M24207_IG29
-                       ;; size=6 bbWeight=8 PerfScore 16.00
+            beq     SHORT G_M24207_IG29
+                       ;; size=4 bbWeight=8 PerfScore 16.00
 G_M24207_IG04:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r5, r6
             bhs     G_M24207_IG35
@@ -99,37 +99,37 @@ G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
             adds    r5, r5, 1
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            mov     r3, r5
+            mov     lr, r5
             mov     r2, r6
-            mov     lr, 0
+            mov     r9, 0
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r6, r5
             ble     SHORT G_M24207_IG17
             cmp     r5, r6
-            bhs     G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 92
+            bhs     SHORT G_M24207_IG35
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 92
             bne     SHORT G_M24207_IG12
-            mov     lr, 1
+            mov     r9, 1
             adds    r5, r5, 2
             b       SHORT G_M24207_IG11
-                      ;; size=32 bbWeight=4 PerfScore 44.00
+                     ;; size=24 bbWeight=4 PerfScore 44.00
 G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG15
                        ;; size=6 bbWeight=4 PerfScore 8.00
 G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG19
-            cmp     r12, 44
+            cmp     r3, 44
             beq     SHORT G_M24207_IG19
-            cmp     r12, 34
+            cmp     r3, 34
             beq     SHORT G_M24207_IG29
-            cmp     r12, 39
+            cmp     r3, 39
             bne     SHORT G_M24207_IG16
-                       ;; size=24 bbWeight=2 PerfScore 16.00
+                     ;; size=16 bbWeight=2 PerfScore 16.00
 G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             ; gcrRegs -[r0]
             ; byrRegs -[r1 r7]
@@ -138,7 +138,7 @@ G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG15:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r1 r7]
-            cmp     r12, r8
+            cmp     r3, r8
             beq     SHORT G_M24207_IG18
                        ;; size=4 bbWeight=2 PerfScore 4.00
 G_M24207_IG16:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
@@ -156,48 +156,48 @@ G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
 G_M24207_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG25
-            subs    r2, r5, 1
+            add     r10, r5, -1
             b       SHORT G_M24207_IG21
-                       ;; size=10 bbWeight=0.50 PerfScore 2.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG20:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            subs    r2, r2, 1
-                       ;; size=2 bbWeight=2 PerfScore 2.00
+            add     r10, r10, -1
+                       ;; size=4 bbWeight=2 PerfScore 2.00
 G_M24207_IG21:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r2, r3
+            cmp     r10, lr
             blt     SHORT G_M24207_IG22
-            cmp     r2, r6
+            cmp     r10, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r2, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsl     r2, r10, 1
+            ldrh    r2, [r7+r2]
+            cmp     r2, 32
             beq     SHORT G_M24207_IG20
-            cmp     r12, 9
+            cmp     r2, 9
             beq     SHORT G_M24207_IG20
-            cmp     r12, 13
+            cmp     r2, 13
             beq     SHORT G_M24207_IG20
-            cmp     r12, 10
+            cmp     r2, 10
             beq     SHORT G_M24207_IG20
-                      ;; size=40 bbWeight=4 PerfScore 56.00
+                     ;; size=30 bbWeight=4 PerfScore 56.00
 G_M24207_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             ; byrRegs -[r7]
-            adds    r2, r2, 1
+            add     r2, r10, 1
             b       SHORT G_M24207_IG28
-                        ;; size=4 bbWeight=0.50 PerfScore 1.00
+                        ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG23:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; byrRegs +[r7]
             cmp     r5, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 32
             beq     SHORT G_M24207_IG24
-            cmp     r12, 9
+            cmp     r3, 9
             beq     SHORT G_M24207_IG24
-            cmp     r12, 13
+            cmp     r3, 13
             beq     SHORT G_M24207_IG24
-            cmp     r12, 10
+            cmp     r3, 10
             bne     SHORT G_M24207_IG27
-                      ;; size=36 bbWeight=2 PerfScore 24.00
+                     ;; size=24 bbWeight=2 PerfScore 24.00
 G_M24207_IG24:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
             adds    r5, r5, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
@@ -210,14 +210,14 @@ G_M24207_IG26:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r
             b       SHORT G_M24207_IG28
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG27:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG28
-            cmp     r12, 44
+            cmp     r3, 44
             bne     SHORT G_M24207_IG29
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG28:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             str     r5, [r1]
-            cmp     r2, r3
+            cmp     r2, lr
             bne     SHORT G_M24207_IG31
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
@@ -229,15 +229,15 @@ G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG30:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[r4]
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            cmp     lr, 0
+            cmp     r9, 0
             bne     SHORT G_M24207_IG33
-            subs    r2, r2, r3
-            mov     r1, r3
+            sub     r2, r2, lr
+            mov     r1, lr
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -255,15 +255,15 @@ G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
             ; gcrRegs -[r1]
             ; byrRegs -[r0 r4]
             movs    r0, 1
-                        ;; size=40 bbWeight=0.50 PerfScore 7.50
+                       ;; size=42 bbWeight=0.50 PerfScore 7.50
 G_M24207_IG32:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            mov     r1, r3
+            mov     r1, lr
             mov     r3, r4
             ; byrRegs +[r3]
             movw    lr, 0xd1ff
@@ -272,7 +272,7 @@ G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 G_M24207_IG34:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,lr}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,lr}
...
  
-20 (-6.45%) : 215900.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (FullOpts)
@@ -17,13 +17,13 @@
 ;  V07 tmp2         [V07,T09] (  4,  2   )     ref  ->   lr         "field V03.Cert (fldOffset=0x0)" P-INDEP
 ;  V08 tmp3         [V08,T10] (  4,  2   )     ref  ->  [sp+0x00]  "field V03.Key (fldOffset=0x4)" P-INDEP
 ;  V09 tmp4         [V09,T05] (  3,  3   )   byref  ->   r3         single-def "BlockOp address local"
-;  V10 tmp5         [V10,T07] (  3,  3   )     int  ->   r0         "index expr"
+;  V10 tmp5         [V10,T07] (  3,  3   )     int  ->   r4         "index expr"
 ;  V11 tmp6         [V11,T06] (  3,  3   )   byref  ->   r3         single-def "BlockOp address local"
 ;* V12 tmp7         [V12,T13] (  0,  0   )     int  ->  zero-ref    "index expr"
 ;  V13 tmp8         [V13,T15] (  2,  0   )     ref  ->   r1         single-def "argument with side effect"
 ;  V14 cse0         [V14,T11] (  3,  1.50)   byref  ->   r0         "CSE - moderate"
 ;  V15 cse1         [V15,T12] (  3,  1.50)   byref  ->   r0         "CSE - moderate"
-;  V16 cse2         [V16,T04] (  3,  2.50)     int  ->   r0         "CSE - aggressive"
+;  V16 cse2         [V16,T04] (  3,  2.50)     int  ->   r4         "CSE - aggressive"
 ;  V17 cse3         [V17,T08] (  3,  3   )     int  ->   r0         "CSE - aggressive"
 ;
 ; Lcl frame size = 12
@@ -42,57 +42,57 @@ G_M3164_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0002 {r1}, byr
             ; gcrRegs -[r0]
             cmp     r0, 0
             ble     SHORT G_M3164_IG11
-            subs    r0, r0, 1
-            mov     r3, r0
+            subs    r4, r0, 1
+            mov     r3, r4
             cmp     r3, 0
             blt     SHORT G_M3164_IG06
             cmp     r2, 0
             beq     SHORT G_M3164_IG05
-            ldr     lr, [r2+0x04]
-            cmp     lr, r3
+            ldr     r0, [r2+0x04]
+            cmp     r0, r3
             ble     SHORT G_M3164_IG05
-                     ;; size=28 bbWeight=1 PerfScore 13.00
+                     ;; size=26 bbWeight=1 PerfScore 13.00
 G_M3164_IG03:        ; bbWeight=3.96, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            lsl     lr, r3, 3
-            add     lr, lr, 8
-            add     lr, r2
-            ; byrRegs +[lr]
-            ldr     lr, [lr+0x04]
-            ; gcrRegs +[lr]
-            ; byrRegs -[lr]
-            cmp     lr, 0
+            lsls    r0, r3, 3
+            adds    r0, 8
+            adds    r0, r2, r0
+            ; byrRegs +[r0]
+            ldr     r0, [r0+0x04]
+            ; gcrRegs +[r0]
+            ; byrRegs -[r0]
+            cmp     r0, 0
             bne     SHORT G_M3164_IG08
             subs    r3, r3, 1
             cmp     r3, 0
             bge     SHORT G_M3164_IG03
-                       ;; size=26 bbWeight=3.96 PerfScore 35.64
-G_M3164_IG04:        ; bbWeight=1, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            ; gcrRegs -[lr]
+                      ;; size=18 bbWeight=3.96 PerfScore 35.64
+G_M3164_IG04:        ; bbWeight=0.50, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
+            ; gcrRegs -[r0]
             b       SHORT G_M3164_IG06
-                        ;; size=2 bbWeight=1 PerfScore 1.00
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M3164_IG05:        ; bbWeight=0.04, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            ldr     lr, [r2+0x04]
-            cmp     r3, lr
+            ldr     r0, [r2+0x04]
+            cmp     r3, r0
             bhs     SHORT G_M3164_IG10
-            lsl     lr, r3, 3
-            add     lr, lr, 8
-            add     lr, r2
-            ; byrRegs +[lr]
-            ldr     lr, [lr+0x04]
-            ; gcrRegs +[lr]
-            ; byrRegs -[lr]
-            cmp     lr, 0
+            lsls    r0, r3, 3
+            adds    r0, 8
+            adds    r0, r2, r0
+            ; byrRegs +[r0]
+            ldr     r0, [r0+0x04]
+            ; gcrRegs +[r0]
+            ; byrRegs -[r0]
+            cmp     r0, 0
             bne     SHORT G_M3164_IG08
             subs    r3, r3, 1
             cmp     r3, 0
             bge     SHORT G_M3164_IG05
-                       ;; size=34 bbWeight=0.04 PerfScore 0.48
+                       ;; size=24 bbWeight=0.04 PerfScore 0.48
 G_M3164_IG06:        ; bbWeight=0.50, gcrefRegs=0004 {r2}, byrefRegs=0002 {r1}, byref, isz
-            ; gcrRegs -[lr]
-            ldr     r3, [r2+0x04]
-            cmp     r0, r3
+            ; gcrRegs -[r0]
+            ldr     r0, [r2+0x04]
+            cmp     r4, r0
             bhs     SHORT G_M3164_IG10
-            lsls    r0, r0, 3
+            lsls    r0, r4, 3
             adds    r0, 8
             adds    r0, r2, r0
             ; byrRegs +[r0]
@@ -228,7 +228,7 @@ G_M3164_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=62 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 310, prolog size 10, PerfScore 80.12, instruction count 116, allocated bytes for code 310 (MethodHash=f732f3a3) for method System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (FullOpts)
+; Total bytes of code 290, prolog size 10, PerfScore 79.62, instruction count 116, allocated bytes for code 290 (MethodHash=f732f3a3) for method System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -240,7 +240,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 155 (0x0009b) Actual length = 310 (0x000136)
+  Function Length   : 145 (0x00091) Actual length = 290 (0x000122)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
-16 (-6.15%) : 223291.dasm - Microsoft.CodeAnalysis.RealParser:ConvertBigIntegerToFloatingPointBits(ubyte[],uint,ubyte,Microsoft.CodeAnalysis.RealParser+FloatingPointType,byref):int (FullOpts)
@@ -13,20 +13,20 @@
 ;  V02 arg2         [V02,T10] (  3,  3   )   ubyte  ->   r2         single-def
 ;  V03 arg3         [V03,T08] (  5,  5   )     ref  ->   r5         class-hnd single-def <Microsoft.CodeAnalysis.RealParser+FloatingPointType>
 ;  V04 arg4         [V04,T16] (  1,  1   )   byref  ->  [sp+0x30]  single-def
-;  V05 loc0         [V05,T14] (  2,  2   )     int  ->   r0         single-def
+;  V05 loc0         [V05,T14] (  2,  2   )     int  ->   r8         single-def
 ;* V06 loc1         [V06    ] (  0,  0   )    long  ->  zero-ref   
 ;  V07 loc2         [V07,T03] (  4, 12   )   ubyte  ->   r6        
 ;  V08 loc3         [V08,T13] (  3,  3   )     int  ->   r7         single-def
-;  V09 loc4         [V09,T07] (  7,  9   )     int  ->   r2         single-def
+;  V09 loc4         [V09,T07] (  7,  9   )     int  ->   r1         single-def
 ;  V10 loc5         [V10,T00] ( 13, 20.04)     int  ->   r7        
-;  V11 loc6         [V11,T02] (  6, 13   )     int  ->   r2        
+;  V11 loc6         [V11,T02] (  6, 13   )     int  ->   r0        
 ;  V12 OutArgs      [V12    ] (  1,  1   )  struct (12) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V13 tmp1         [V13,T12] (  2,  4   )     int  ->   r0         "impAppendStmt"
-;  V14 tmp2         [V14,T15] (  3,  1.50)     int  ->   r2         "Inline return value spill temp"
-;  V15 tmp3         [V15,T11] (  3,  4.20)     int  ->   r2         "Inlining Arg"
-;  V16 cse0         [V16,T06] (  6,  9.04)   byref  ->   lr         hoist multi-def "CSE - aggressive"
-;  V17 rat0         [V17,T01] (  8, 14   )     int  ->   r3         "field V06.lo (fldOffset=0x0)" P-INDEP
-;  V18 rat1         [V18,T05] (  6, 10   )     int  ->   r1         "field V06.hi (fldOffset=0x4)" P-INDEP
+;  V14 tmp2         [V14,T15] (  3,  1.50)     int  ->   r1         "Inline return value spill temp"
+;  V15 tmp3         [V15,T11] (  3,  4.20)     int  ->   r1         "Inlining Arg"
+;  V16 cse0         [V16,T06] (  6,  9.04)   byref  ->  registers   hoist multi-def "CSE - aggressive"
+;  V17 rat0         [V17,T01] (  8, 14   )     int  ->   r2         "field V06.lo (fldOffset=0x0)" P-INDEP
+;  V18 rat1         [V18,T05] (  6, 10   )     int  ->   r3         "field V06.hi (fldOffset=0x4)" P-INDEP
 ;
 ; Lcl frame size = 20
 
@@ -65,115 +65,113 @@ G_M50203_IG04:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            subs    r2, r7, 7
-            cmp     r2, 0
+            subs    r1, r7, 7
+            cmp     r1, 0
             bgt     SHORT G_M50203_IG09
                        ;; size=32 bbWeight=1 PerfScore 14.00
 G_M50203_IG05:        ; bbWeight=0.40, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
-            movs    r2, 0
+            movs    r1, 0
                       ;; size=2 bbWeight=0.40 PerfScore 0.40
 G_M50203_IG06:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            lsls    r3, r2, 3
-            adds    r0, r0, r3
+            lsls    r2, r1, 3
+            add     r8, r0, r2
+            movs    r2, 0
             movs    r3, 0
-            movs    r1, 0
-            cmp     r7, r2
+            cmp     r7, r1
             blt     SHORT G_M50203_IG11
             cmp     r4, 0
             beq     SHORT G_M50203_IG10
-            orrs    lr, r7, r2
-            cmp     lr, 0
+            orrs    r0, r7, r1
+            cmp     r0, 0
             blt     SHORT G_M50203_IG10
-            ldr     lr, [r4+0x04]
-            cmp     lr, r7
+            ldr     r0, [r4+0x04]
+            cmp     r0, r7
             ble     SHORT G_M50203_IG10
-            add     lr, r4, 8
-            ; byrRegs +[lr]
-                       ;; size=38 bbWeight=1 PerfScore 15.00
-G_M50203_IG07:        ; bbWeight=3.96, gcrefRegs=0030 {r4 r5}, byrefRegs=4000 {lr}, byref, isz
-            ldrb    r12, [lr+r7]
-            uxtb    r12, r12
-            lsl     r8, r3, 8
-            lsls    r1, r1, 8
-            orr     r1, r1, r3 LSR 24
-            orr     r3, r12, r8
-            orr     r1, r1, 0
+            add     r0, r4, 8
+            ; byrRegs +[r0]
+                       ;; size=36 bbWeight=1 PerfScore 15.00
+G_M50203_IG07:        ; bbWeight=3.96, gcrefRegs=0030 {r4 r5}, byrefRegs=0001 {r0}, byref, isz
+            ldrb    lr, [r0+r7]
+            uxtb    lr, lr
+            lsl     r12, r2, 8
+            lsls    r3, r3, 8
+            orr     r3, r3, r2 LSR 24
+            orr     r2, lr, r12
+            orr     r3, r3, 0
             subs    r7, r7, 1
-            cmp     r7, r2
+            cmp     r7, r1
             bge     SHORT G_M50203_IG07
                        ;; size=32 bbWeight=3.96 PerfScore 39.60
 G_M50203_IG08:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[lr]
+            ; byrRegs -[r0]
             b       SHORT G_M50203_IG11
                        ;; size=2 bbWeight=1 PerfScore 1.00
 G_M50203_IG09:        ; bbWeight=0.10, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M50203_IG06
                        ;; size=2 bbWeight=0.10 PerfScore 0.10
 G_M50203_IG10:        ; bbWeight=0.04, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ldr     lr, [r4+0x04]
-            cmp     r7, lr
+            ldr     r0, [r4+0x04]
+            cmp     r7, r0
             bhs     SHORT G_M50203_IG18
-            add     lr, r4, 8
-            ; byrRegs +[lr]
-            ldrb    lr, [lr+r7]
-            ; byrRegs -[lr]
-            uxtb    lr, lr
-            lsl     r12, r3, 8
-            lsls    r1, r1, 8
-            orr     r1, r1, r3 LSR 24
-            orr     r3, lr, r12
-            orr     r1, r1, 0
+            add     r0, r4, 8
+            ; byrRegs +[r0]
+            ldrb    r0, [r0+r7]
+            ; byrRegs -[r0]
+            uxtb    r0, r0
+            lsl     lr, r2, 8
+            lsls    r3, r3, 8
+            orr     r3, r3, r2 LSR 24
+            orr     r2, r0, lr
+            orr     r3, r3, 0
             subs    r7, r7, 1
-            cmp     r7, r2
+            cmp     r7, r1
             bge     SHORT G_M50203_IG10
-                        ;; size=44 bbWeight=0.04 PerfScore 0.56
+                       ;; size=38 bbWeight=0.04 PerfScore 0.56
 G_M50203_IG11:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            subs    r2, r2, 1
+            subs    r0, r1, 1
             b       SHORT G_M50203_IG14
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M50203_IG12:        ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            ldr     lr, [r4+0x04]
-            cmp     r2, lr
+            ldr     r1, [r4+0x04]
+            cmp     r0, r1
             bhs     SHORT G_M50203_IG18
-            add     lr, r4, 8
-            ; byrRegs +[lr]
-            ldrb    lr, [lr+r2]
-            ; byrRegs -[lr]
-            cmp     lr, 0
+            add     r1, r4, 8
+            ; byrRegs +[r1]
+            ldrb    r1, [r1+r0]
+            ; byrRegs -[r1]
+            cmp     r1, 0
             beq     SHORT G_M50203_IG13
             movs    r6, 0
-                        ;; size=24 bbWeight=2 PerfScore 16.00
+                     ;; size=18 bbWeight=2 PerfScore 16.00
 G_M50203_IG13:        ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
-            subs    r2, r2, 1
+            subs    r0, r0, 1
                      ;; size=2 bbWeight=2 PerfScore 2.00
 G_M50203_IG14:        ; bbWeight=8, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             cmp     r6, 0
             beq     SHORT G_M50203_IG16
                        ;; size=4 bbWeight=8 PerfScore 16.00
 G_M50203_IG15:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            cmp     r2, 0
+            cmp     r0, 0
             bge     SHORT G_M50203_IG12
                        ;; size=4 bbWeight=4 PerfScore 8.00
 G_M50203_IG16:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r4]
-            str     r0, [sp]
+            str     r8, [sp]
             str     r6, [sp+0x04]
-            ldr     r4, [sp+0x30]    // [V04 arg4]
-            ; byrRegs +[r4]
-            str     r4, [sp+0x08]  // [V12 OutArgs+0x08]
+            ldr     r7, [sp+0x30]    // [V04 arg4]
+            ; byrRegs +[r7]
+            str     r7, [sp+0x08]  // [V12 OutArgs+0x08]
             ; byr arg write
             mov     r0, r5
             ; gcrRegs +[r0]
-            mov     r2, r3
-            mov     r3, r1
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
             ldr     r1, [r1]
             blx     r1     // <unknown method>
             ; gcrRegs -[r0 r5]
-            ; byrRegs -[r4]
+            ; byrRegs -[r7]
             ; gcr arg pop 0
-                      ;; size=26 bbWeight=1 PerfScore 11.00
+                     ;; size=24 bbWeight=1 PerfScore 9.00
 G_M50203_IG17:        ; bbWeight=1, epilog, nogc, extend
             add     sp, 20
             pop     {r4,r5,r6,r7,r8,r11,pc}
@@ -186,7 +184,7 @@ G_M50203_IG18:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 260, prolog size 14, PerfScore 138.66, instruction count 99, allocated bytes for code 260 (MethodHash=28d53be4) for method Microsoft.CodeAnalysis.RealParser:ConvertBigIntegerToFloatingPointBits(ubyte[],uint,ubyte,Microsoft.CodeAnalysis.RealParser+FloatingPointType,byref):int (FullOpts)
+; Total bytes of code 244, prolog size 14, PerfScore 136.66, instruction count 97, allocated bytes for code 244 (MethodHash=28d53be4) for method Microsoft.CodeAnalysis.RealParser:ConvertBigIntegerToFloatingPointBits(ubyte[],uint,ubyte,Microsoft.CodeAnalysis.RealParser+FloatingPointType,byref):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -198,7 +196,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 130 (0x00082) Actual length = 260 (0x000104)
+  Function Length   : 122 (0x0007a) Actual length = 244 (0x0000f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+24 (+5.97%) : 242770.dasm - Microsoft.Build.Shared.FileUtilities:PathsEqual(System.String,System.String):ubyte (FullOpts)
@@ -9,27 +9,27 @@
 ;
 ;  V00 arg0         [V00,T13] (  9,  5.08)     ref  ->   r0         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T12] ( 10,  5.08)     ref  ->   r1         class-hnd single-def <System.String>
-;  V02 loc0         [V02,T05] ( 15, 16.50)     int  ->   r2        
-;  V03 loc1         [V03,T07] (  9, 10.50)     int  ->  r12        
-;  V04 loc2         [V04,T03] ( 10, 16.54)     int  ->   r4        
-;  V05 loc3         [V05,T08] (  6, 10   )  ushort  ->   r6        
-;  V06 loc4         [V06,T04] ( 10, 16.54)     int  ->   r5        
-;  V07 loc5         [V07,T09] (  6, 10   )  ushort  ->   r6        
-;  V08 loc6         [V08,T02] ( 14, 17.62)     int  ->  r12        
-;  V09 loc7         [V09,T00] ( 16, 26   )     int  ->   r6        
-;  V10 loc8         [V10,T01] ( 16, 26   )     int  ->  registers  
+;  V02 loc0         [V02,T05] ( 15, 16.50)     int  ->   r5        
+;  V03 loc1         [V03,T07] (  9, 10.50)     int  ->   r7        
+;  V04 loc2         [V04,T03] ( 10, 16.54)     int  ->   r3        
+;  V05 loc3         [V05,T08] (  6, 10   )  ushort  ->   lr        
+;  V06 loc4         [V06,T04] ( 10, 16.54)     int  ->   r2        
+;  V07 loc5         [V07,T09] (  6, 10   )  ushort  ->   lr        
+;  V08 loc6         [V08,T02] ( 14, 17.62)     int  ->   r2        
+;  V09 loc7         [V09,T00] ( 16, 26   )     int  ->   r7        
+;  V10 loc8         [V10,T01] ( 16, 26   )     int  ->  r12        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V12 tmp1         [V12    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
-;  V13 cse0         [V13,T10] (  8,  9.08)   byref  ->   r5         hoist multi-def "CSE - moderate"
-;  V14 cse1         [V14,T11] (  8,  9.08)   byref  ->   r4         hoist multi-def "CSE - moderate"
-;  V15 cse2         [V15,T06] (  3, 11.88)     int  ->   r3         "CSE - aggressive"
-;  V16 cse3         [V16,T14] (  6,  2.08)     int  ->   r3         "CSE - moderate"
-;  V17 cse4         [V17,T15] (  6,  2.08)     int  ->   lr         "CSE - moderate"
+;  V13 cse0         [V13,T10] (  8,  9.08)   byref  ->  registers   hoist multi-def "CSE - moderate"
+;  V14 cse1         [V14,T11] (  8,  9.08)   byref  ->  registers   hoist multi-def "CSE - moderate"
+;  V15 cse2         [V15,T06] (  3, 11.88)     int  ->  r12         "CSE - aggressive"
+;  V16 cse3         [V16,T14] (  6,  2.08)     int  ->   r4         "CSE - moderate"
+;  V17 cse4         [V17,T15] (  6,  2.08)     int  ->   r6         "CSE - moderate"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M43039_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r5,r6,r11,lr}
+            push    {r4,r5,r6,r7,r11,lr}
             add     r11, sp, 16
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M43039_IG02:        ; bbWeight=1, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
@@ -47,255 +47,253 @@ G_M43039_IG04:        ; bbWeight=0.50, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}
             ; gcrRegs +[r0]
             cmp     r1, 0
             beq     G_M43039_IG44
-            ldr     r3, [r0+0x04]
-            subs    r2, r3, 1
-            ldr     lr, [r1+0x04]
-            add     r12, lr, -1
-            mov     r4, r2
-            cmp     r2, 0
+            ldr     r4, [r0+0x04]
+            subs    r5, r4, 1
+            ldr     r6, [r1+0x04]
+            subs    r7, r6, 1
+            mov     r3, r5
+            cmp     r5, 0
             blt     SHORT G_M43039_IG12
-            cmp     r3, r2
+            cmp     r4, r5
             ble     SHORT G_M43039_IG09
-            add     r5, r0, 8
-            ; byrRegs +[r5]
-                       ;; size=32 bbWeight=0.50 PerfScore 6.00
-G_M43039_IG05:        ; bbWeight=3.96, gcrefRegs=0003 {r0 r1}, byrefRegs=0020 {r5}, byref, isz
-            lsls    r6, r4, 1
-            ldrh    r6, [r5+r6]
-            cmp     r6, 47
+            add     r2, r0, 8
+            ; byrRegs +[r2]
+                       ;; size=28 bbWeight=0.50 PerfScore 6.00
+G_M43039_IG05:        ; bbWeight=3.96, gcrefRegs=0003 {r0 r1}, byrefRegs=0004 {r2}, byref, isz
+            lsl     lr, r3, 1
+            ldrh    lr, [r2+lr]
+            cmp     lr, 47
             beq     SHORT G_M43039_IG07
-                        ;; size=8 bbWeight=3.96 PerfScore 15.84
-G_M43039_IG06:        ; bbWeight=1.98, gcrefRegs=0003 {r0 r1}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r6, 92
+                       ;; size=14 bbWeight=3.96 PerfScore 15.84
+G_M43039_IG06:        ; bbWeight=1.98, gcrefRegs=0003 {r0 r1}, byrefRegs=0004 {r2}, byref, isz
+            cmp     lr, 92
             bne     SHORT G_M43039_IG12
-                        ;; size=4 bbWeight=1.98 PerfScore 3.96
-G_M43039_IG07:        ; bbWeight=3.96, gcrefRegs=0003 {r0 r1}, byrefRegs=0020 {r5}, byref, isz
-            subs    r2, r2, 1
-            subs    r4, r4, 1
-            cmp     r4, 0
+                        ;; size=6 bbWeight=1.98 PerfScore 3.96
+G_M43039_IG07:        ; bbWeight=3.96, gcrefRegs=0003 {r0 r1}, byrefRegs=0004 {r2}, byref, isz
+            subs    r5, r5, 1
+            subs    r3, r3, 1
+            cmp     r3, 0
             bge     SHORT G_M43039_IG05
                        ;; size=8 bbWeight=3.96 PerfScore 15.84
 G_M43039_IG08:        ; bbWeight=0.50, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r5]
+            ; byrRegs -[r2]
             b       SHORT G_M43039_IG12
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M43039_IG09:        ; bbWeight=0.04, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
-            cmp     r4, r3
+            cmp     r3, r4
             bhs     G_M43039_IG46
-            add     r5, r0, 8
-            ; byrRegs +[r5]
-            lsls    r6, r4, 1
-            ldrh    r6, [r5+r6]
-            cmp     r6, 47
+            add     r2, r0, 8
+            ; byrRegs +[r2]
+            lsl     lr, r3, 1
+            ldrh    lr, [r2+lr]
+            cmp     lr, 47
             beq     SHORT G_M43039_IG11
-                        ;; size=18 bbWeight=0.04 PerfScore 0.28
+                       ;; size=24 bbWeight=0.04 PerfScore 0.28
 G_M43039_IG10:        ; bbWeight=0.02, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r5]
-            cmp     r6, 92
+            ; byrRegs -[r2]
+            cmp     lr, 92
             bne     SHORT G_M43039_IG12
-                        ;; size=4 bbWeight=0.02 PerfScore 0.04
+                        ;; size=6 bbWeight=0.02 PerfScore 0.04
 G_M43039_IG11:        ; bbWeight=0.04, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
-            subs    r2, r2, 1
-            subs    r4, r4, 1
-            cmp     r4, 0
+            subs    r5, r5, 1
+            subs    r3, r3, 1
+            cmp     r3, 0
             bge     SHORT G_M43039_IG09
                        ;; size=8 bbWeight=0.04 PerfScore 0.16
 G_M43039_IG12:        ; bbWeight=0.50, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
-            mov     r5, r12
-            cmp     r12, 0
+            mov     r2, r7
+            cmp     r7, 0
             blt     SHORT G_M43039_IG20
-            cmp     lr, r12
+            cmp     r6, r7
             ble     SHORT G_M43039_IG17
-            add     r4, r1, 8
-            ; byrRegs +[r4]
-                       ;; size=16 bbWeight=0.50 PerfScore 3.00
-G_M43039_IG13:        ; bbWeight=3.96, gcrefRegs=0003 {r0 r1}, byrefRegs=0010 {r4}, byref, isz
-            lsls    r6, r5, 1
-            ldrh    r6, [r4+r6]
-            cmp     r6, 47
+            add     r3, r1, 8
+            ; byrRegs +[r3]
+                       ;; size=14 bbWeight=0.50 PerfScore 3.00
+G_M43039_IG13:        ; bbWeight=3.96, gcrefRegs=0003 {r0 r1}, byrefRegs=0008 {r3}, byref, isz
+            lsl     lr, r2, 1
+            ldrh    lr, [r3+lr]
+            cmp     lr, 47
             beq     SHORT G_M43039_IG15
-                        ;; size=8 bbWeight=3.96 PerfScore 15.84
-G_M43039_IG14:        ; bbWeight=1.98, gcrefRegs=0003 {r0 r1}, byrefRegs=0010 {r4}, byref, isz
-            cmp     r6, 92
+                       ;; size=14 bbWeight=3.96 PerfScore 15.84
+G_M43039_IG14:        ; bbWeight=1.98, gcrefRegs=0003 {r0 r1}, byrefRegs=0008 {r3}, byref, isz
+            cmp     lr, 92
             bne     SHORT G_M43039_IG20
-                        ;; size=4 bbWeight=1.98 PerfScore 3.96
-G_M43039_IG15:        ; bbWeight=3.96, gcrefRegs=0003 {r0 r1}, byrefRegs=0010 {r4}, byref, isz
-            add     r12, r12, -1
-            subs    r5, r5, 1
-            cmp     r5, 0
+                        ;; size=6 bbWeight=1.98 PerfScore 3.96
+G_M43039_IG15:        ; bbWeight=3.96, gcrefRegs=0003 {r0 r1}, byrefRegs=0008 {r3}, byref, isz
+            subs    r7, r7, 1
+            subs    r2, r2, 1
+            cmp     r2, 0
             bge     SHORT G_M43039_IG13
-                     ;; size=10 bbWeight=3.96 PerfScore 15.84
+                      ;; size=8 bbWeight=3.96 PerfScore 15.84
 G_M43039_IG16:        ; bbWeight=0.50, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r4]
+            ; byrRegs -[r3]
             b       SHORT G_M43039_IG20
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M43039_IG17:        ; bbWeight=0.04, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
-            cmp     r5, lr
+            cmp     r2, r6
             bhs     SHORT G_M43039_IG46
-            add     r4, r1, 8
-            ; byrRegs +[r4]
-            lsls    r6, r5, 1
-            ldrh    r6, [r4+r6]
-            cmp     r6, 47
+            add     r3, r1, 8
+            ; byrRegs +[r3]
+            lsl     lr, r2, 1
+            ldrh    lr, [r3+lr]
+            cmp     lr, 47
             beq     SHORT G_M43039_IG19
-                        ;; size=16 bbWeight=0.04 PerfScore 0.28
+                       ;; size=22 bbWeight=0.04 PerfScore 0.28
 G_M43039_IG18:        ; bbWeight=0.02, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r4]
-            cmp     r6, 92
+            ; byrRegs -[r3]
+            cmp     lr, 92
             bne     SHORT G_M43039_IG20
-                        ;; size=4 bbWeight=0.02 PerfScore 0.04
+                        ;; size=6 bbWeight=0.02 PerfScore 0.04
 G_M43039_IG19:        ; bbWeight=0.04, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
-            add     r12, r12, -1
-            subs    r5, r5, 1
-            cmp     r5, 0
-            bge     SHORT G_M43039_IG17
-                       ;; size=10 bbWeight=0.04 PerfScore 0.16
-G_M43039_IG20:        ; bbWeight=0.50, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
-            cmp     r2, r12
-            bne     SHORT G_M43039_IG44
-            mov     r12, 0
+            subs    r7, r7, 1
+            subs    r2, r2, 1
             cmp     r2, 0
+            bge     SHORT G_M43039_IG17
+                       ;; size=8 bbWeight=0.04 PerfScore 0.16
+G_M43039_IG20:        ; bbWeight=0.50, gcrefRegs=0003 {r0 r1}, byrefRegs=0000 {}, byref, isz
+            cmp     r5, r7
+            bne     SHORT G_M43039_IG44
+            movs    r2, 0
+            cmp     r5, 0
             blt     SHORT G_M43039_IG40
-            cmp     r3, r2
+            cmp     r4, r5
             ble     SHORT G_M43039_IG31
-            cmp     lr, r2
+            cmp     r6, r5
             ble     SHORT G_M43039_IG31
-            add     r5, r0, 8
-            ; byrRegs +[r5]
-            add     r4, r1, 8
-            ; byrRegs +[r4]
-                       ;; size=28 bbWeight=0.50 PerfScore 5.50
-G_M43039_IG21:        ; bbWeight=3.96, gcrefRegs=0003 {r0 r1}, byrefRegs=0030 {r4 r5}, byref, isz
-            lsl     r3, r12, 1
-            ldrh    r6, [r5+r3]
-            ldrh    r3, [r4+r3]
-            orr     lr, r6, r3
-            cmp     lr, 127
+            add     r3, r0, 8
...
  
+22 (+5.98%) : 70062.dasm - System.Data.SqlTypes.SqlString:CompareBinary(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int (FullOpts)
@@ -15,7 +15,7 @@
 ;  V05 loc3         [V05,T08] (  7,  7.50)     int  ->   lr        
 ;  V06 loc4         [V06,T07] (  7,  8.50)     int  ->  r12        
 ;  V07 loc5         [V07,T00] ( 34, 56.66)     int  ->   r4        
-;  V08 loc6         [V08,T02] (  8, 13   )     int  ->  registers  
+;  V08 loc6         [V08,T02] (  8, 13   )     int  ->  r12        
 ;* V09 loc7         [V09,T22] (  0,  0   )     int  ->  zero-ref   
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V11 tmp1         [V11,T19] (  3,  2   )     int  ->  r12        
@@ -31,7 +31,7 @@
 ;  V21 cse7         [V21,T09] (  7,  7.08)     int  ->   r2         "CSE - aggressive"
 ;  V22 cse8         [V22,T10] (  6,  7.04)     int  ->   r1         "CSE - aggressive"
 ;  V23 cse9         [V23,T05] (  3, 11.88)     int  ->   r0         "CSE - aggressive"
-;  V24 cse10        [V24,T14] (  3,  6   )     int  ->   r0         "CSE - aggressive"
+;  V24 cse10        [V24,T14] (  3,  6   )     int  ->  r12         "CSE - aggressive"
 ;  V25 cse11        [V25,T18] (  3,  3   )     int  ->   r4         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
@@ -111,10 +111,10 @@ G_M16969_IG07:        ; bbWeight=3.96, gcrefRegs=0021 {r0 r5}, byrefRegs=00C0 {r
             cmp     r4, r12
             blt     SHORT G_M16969_IG07
                        ;; size=22 bbWeight=3.96 PerfScore 35.64
-G_M16969_IG08:        ; bbWeight=1, gcrefRegs=0021 {r0 r5}, byrefRegs=0000 {}, byref, isz
+G_M16969_IG08:        ; bbWeight=0.50, gcrefRegs=0021 {r0 r5}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r6-r7]
             b       SHORT G_M16969_IG10
-                      ;; size=2 bbWeight=1 PerfScore 1.00
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M16969_IG09:        ; bbWeight=0.04, gcrefRegs=0021 {r0 r5}, byrefRegs=0000 {}, byref, isz
             cmp     r4, r1
             bhs     SHORT G_M16969_IG25
@@ -156,21 +156,21 @@ G_M16969_IG11:        ; bbWeight=3.96, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, b
             ldrb    r1, [r7+r4]
             add     r0, r1, 8
             and     r0, r0, 31
-            lsl     r1, r3, r0
-            cmp     r1, 32
+            lsl     r12, r3, r0
+            cmp     r12, 32
             bne     SHORT G_M16969_IG15
             adds    r4, r4, 2
             cmp     r4, lr
             blt     SHORT G_M16969_IG11
-                      ;; size=32 bbWeight=3.96 PerfScore 51.48
+                      ;; size=34 bbWeight=3.96 PerfScore 51.48
 G_M16969_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r7]
             b       SHORT G_M16969_IG18
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M16969_IG13:        ; bbWeight=0.04, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0]
-            adds    r1, r4, 1
-            cmp     r1, r2
+            add     r12, r4, 1
+            cmp     r12, r2
             bhs     SHORT G_M16969_IG25
             add     r7, r0, 8
             ; byrRegs +[r7]
@@ -181,41 +181,41 @@ G_M16969_IG13:        ; bbWeight=0.04, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             ldrb    r3, [r7+r4]
             adds    r3, 8
             and     r3, r3, 31
-            lsls    r1, r3
-            cmp     r1, 32
+            lsl     r12, r1, r3
+            cmp     r12, 32
             bne     SHORT G_M16969_IG15
             adds    r4, r4, 2
             cmp     r4, lr
             blt     SHORT G_M16969_IG13
-                      ;; size=38 bbWeight=0.04 PerfScore 0.68
+                       ;; size=44 bbWeight=0.04 PerfScore 0.68
 G_M16969_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
             ; byrRegs -[r7]
             b       SHORT G_M16969_IG18
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M16969_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            cmp     r1, 32
+            cmp     r12, 32
             blt     SHORT G_M16969_IG23
             b       SHORT G_M16969_IG21
-                      ;; size=6 bbWeight=0.50 PerfScore 1.50
+                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 G_M16969_IG16:        ; bbWeight=2, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r5]
-            adds    r0, r4, 1
-            cmp     r0, r1
+            add     r12, r4, 1
+            cmp     r12, r1
             bhs     SHORT G_M16969_IG25
             add     r6, r5, 8
             ; byrRegs +[r6]
-            ldrb    r0, [r6+r0]
+            ldrb    r0, [r6+r12]
             cmp     r4, r1
             bhs     SHORT G_M16969_IG25
             ldrb    r2, [r6+r4]
-            adds    r2, 8
-            and     r2, r2, 31
-            lsls    r0, r2
-            cmp     r0, 32
+            add     lr, r2, 8
+            and     r2, lr, 31
+            lsl     r12, r0, r2
+            cmp     r12, 32
             bne     SHORT G_M16969_IG20
             adds    r4, r4, 2
-                        ;; size=32 bbWeight=2 PerfScore 28.00
+                     ;; size=42 bbWeight=2 PerfScore 28.00
 G_M16969_IG17:        ; bbWeight=4, gcrefRegs=0020 {r5}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r6]
             cmp     r4, r3
@@ -231,9 +231,9 @@ G_M16969_IG19:        ; bbWeight=0.50, epilog, nogc, extend
             bx      lr
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 G_M16969_IG20:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            cmp     r0, 32
+            cmp     r12, 32
             bgt     SHORT G_M16969_IG23
-                      ;; size=4 bbWeight=0.50 PerfScore 1.00
+                        ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M16969_IG21:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     r0, -1
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
@@ -267,7 +267,7 @@ G_M16969_IG26:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             b       SHORT G_M16969_IG03
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 368, prolog size 10, PerfScore 179.40, instruction count 150, allocated bytes for code 368 (MethodHash=d195bdb6) for method System.Data.SqlTypes.SqlString:CompareBinary(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int (FullOpts)
+; Total bytes of code 390, prolog size 10, PerfScore 178.90, instruction count 150, allocated bytes for code 390 (MethodHash=d195bdb6) for method System.Data.SqlTypes.SqlString:CompareBinary(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -279,7 +279,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 184 (0x000b8) Actual length = 368 (0x000170)
+  Function Length   : 195 (0x000c3) Actual length = 390 (0x000186)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+28 (+12.17%) : 201861.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
@@ -11,23 +11,23 @@
 ;  V00 arg0         [V00,T07] (  7, 12   )     ref  ->   r0         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T00] ( 33, 83.50)     int  ->   r1        
 ;  V02 arg2         [V02,T10] (  5,  3.50)   byref  ->   r2         single-def
-;  V03 loc0         [V03,T16] (  3,  2   )     int  ->   lr        
-;  V04 loc1         [V04,T17] (  2,  1   )     int  ->  r12        
+;  V03 loc0         [V03,T16] (  3,  2   )     int  ->   r3        
+;  V04 loc1         [V04,T17] (  2,  1   )     int  ->   lr        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06,T11] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V07 tmp2         [V07,T03] (  3, 24   )  ushort  ->   lr         "Inlining Arg"
+;  V07 tmp2         [V07,T03] (  3, 24   )  ushort  ->   r3         "Inlining Arg"
 ;* V08 tmp3         [V08,T12] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V09 tmp4         [V09,T04] (  3, 24   )  ushort  ->   r4         "Inlining Arg"
+;  V09 tmp4         [V09,T04] (  3, 24   )  ushort  ->   lr         "Inlining Arg"
 ;* V10 tmp5         [V10,T18] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V11 tmp6         [V11,T15] (  3,  3   )  ushort  ->   r5         "Inlining Arg"
+;  V11 tmp6         [V11,T15] (  3,  3   )  ushort  ->  r12         "Inlining Arg"
 ;* V12 tmp7         [V12,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V13 tmp8         [V13,T05] (  3, 24   )  ushort  ->   r5         "Inlining Arg"
+;  V13 tmp8         [V13,T05] (  3, 24   )  ushort  ->  r12         "Inlining Arg"
 ;* V14 tmp9         [V14,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V15 tmp10        [V15,T06] (  3, 24   )  ushort  ->   r6         "Inlining Arg"
-;  V16 cse0         [V16,T09] (  3, 12   )     int  ->   r5         "CSE - aggressive"
+;  V16 cse0         [V16,T09] (  3, 12   )     int  ->  r12         "CSE - aggressive"
 ;  V17 cse1         [V17,T08] (  5, 13   )     int  ->  registers   multi-def "CSE - aggressive"
-;  V18 cse2         [V18,T01] ( 13, 46.50)     int  ->   r3         hoist "CSE - aggressive"
-;  V19 cse3         [V19,T02] (  9, 25.50)   byref  ->  registers   multi-def "CSE - aggressive"
+;  V18 cse2         [V18,T01] ( 13, 46.50)     int  ->   r4         hoist "CSE - aggressive"
+;  V19 cse3         [V19,T02] (  9, 25.50)   byref  ->   r5         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 4
 
@@ -38,57 +38,57 @@ G_M63854_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M63854_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r2]
-            ldr     r3, [r0+0x04]
+            ldr     r4, [r0+0x04]
             b       SHORT G_M63854_IG04
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M63854_IG03:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref
             adds    r1, r1, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
 G_M63854_IG04:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            cmp     r3, r1
+            cmp     r4, r1
             ble     SHORT G_M63854_IG06
                        ;; size=4 bbWeight=8 PerfScore 16.00
 G_M63854_IG05:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            add     lr, r0, 8
-            ; byrRegs +[lr]
-            lsl     r12, r1, 1
-            ldrh    lr, [lr+r12]
-            ; byrRegs -[lr]
-            cmp     lr, 32
+            add     r5, r0, 8
+            ; byrRegs +[r5]
+            lsls    r3, r1, 1
+            ldrh    r3, [r5+r3]
+            cmp     r3, 32
             beq     SHORT G_M63854_IG03
-            cmp     lr, 9
+            cmp     r3, 9
             beq     SHORT G_M63854_IG03
-                       ;; size=28 bbWeight=4 PerfScore 36.00
+                     ;; size=20 bbWeight=4 PerfScore 36.00
 G_M63854_IG06:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            mov     lr, r1
+            ; byrRegs -[r5]
+            mov     r3, r1
             b       SHORT G_M63854_IG08
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M63854_IG07:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref
             adds    r1, r1, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
 G_M63854_IG08:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            cmp     r3, r1
+            cmp     r4, r1
             ble     SHORT G_M63854_IG10
                        ;; size=4 bbWeight=8 PerfScore 16.00
 G_M63854_IG09:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            add     r12, r0, 8
-            ; byrRegs +[r12]
-            lsls    r4, r1, 1
-            ldrh    r4, [r12+r4]
-            cmp     r4, 61
+            add     r5, r0, 8
+            ; byrRegs +[r5]
+            lsl     lr, r1, 1
+            ldrh    lr, [r5+lr]
+            cmp     lr, 61
             beq     SHORT G_M63854_IG10
-            cmp     r4, 32
+            cmp     lr, 32
             beq     SHORT G_M63854_IG10
-            cmp     r4, 9
+            cmp     lr, 9
             bne     SHORT G_M63854_IG07
-                        ;; size=26 bbWeight=4 PerfScore 44.00
+                     ;; size=34 bbWeight=4 PerfScore 44.00
 G_M63854_IG10:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            ; byrRegs -[r12]
-            cmp     r3, r1
+            ; byrRegs -[r5]
+            cmp     r4, r1
             bne     SHORT G_M63854_IG13
                        ;; size=4 bbWeight=4 PerfScore 8.00
 G_M63854_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {r2}, byref
@@ -101,78 +101,78 @@ G_M63854_IG12:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M63854_IG13:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, gcvars, byref, isz
             ; gcrRegs +[r0]
-            sub     r12, r1, lr
-            cmp     r1, r3
+            sub     lr, r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            add     r4, r0, 8
-            ; byrRegs +[r4]
-            lsls    r5, r1, 1
-            ldrh    r5, [r4+r5]
-            cmp     r5, 32
+            add     r5, r0, 8
+            ; byrRegs +[r5]
+            lsl     r12, r1, 1
+            ldrh    r12, [r5+r12]
+            cmp     r12, 32
             beq     SHORT G_M63854_IG15
-            cmp     r5, 9
+            cmp     r12, 9
             bne     SHORT G_M63854_IG20
             b       SHORT G_M63854_IG15
-                      ;; size=26 bbWeight=0.50 PerfScore 5.50
-G_M63854_IG14:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, byref
+                       ;; size=34 bbWeight=0.50 PerfScore 5.50
+G_M63854_IG14:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, byref
             adds    r1, r1, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
-G_M63854_IG15:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, byref, isz
-            cmp     r3, r1
+G_M63854_IG15:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, byref, isz
+            cmp     r4, r1
             ble     SHORT G_M63854_IG16
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            lsls    r5, r1, 1
-            ldrh    r5, [r4+r5]
-            cmp     r5, 32
+            lsl     r12, r1, 1
+            ldrh    r12, [r5+r12]
+            cmp     r12, 32
             beq     SHORT G_M63854_IG14
-            cmp     r5, 9
+            cmp     r12, 9
             beq     SHORT G_M63854_IG14
-                     ;; size=20 bbWeight=4 PerfScore 40.00
-G_M63854_IG16:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, byref, isz
-            cmp     r3, r1
+                       ;; size=28 bbWeight=4 PerfScore 40.00
+G_M63854_IG16:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, byref, isz
+            cmp     r4, r1
             beq     SHORT G_M63854_IG17
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            lsls    r5, r1, 1
-            ldrh    r5, [r4+r5]
-            cmp     r5, 61
+            lsl     r12, r1, 1
+            ldrh    r12, [r5+r12]
+            cmp     r12, 61
             beq     SHORT G_M63854_IG20
-                       ;; size=16 bbWeight=0.50 PerfScore 4.00
+                       ;; size=22 bbWeight=0.50 PerfScore 4.00
 G_M63854_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {r2}, byref
             ; gcrRegs -[r0]
-            ; byrRegs -[r4]
+            ; byrRegs -[r5]
             str     r1, [r2]
             movs    r0, 0
                        ;; size=4 bbWeight=0.50 PerfScore 1.00
 G_M63854_IG18:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r3,r4,r5,r6,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M63854_IG19:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, gcvars, byref
+G_M63854_IG19:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, gcvars, byref
             ; gcrRegs +[r0]
-            ; byrRegs +[r4]
+            ; byrRegs +[r5]
             adds    r1, r1, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
-G_M63854_IG20:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, byref, isz
-            cmp     r3, r1
+G_M63854_IG20:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, byref, isz
+            cmp     r4, r1
             ble     SHORT G_M63854_IG21
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            lsls    r5, r1, 1
-            ldrh    r5, [r4+r5]
-            mov     r6, r5
+            lsl     r12, r1, 1
+            ldrh    r12, [r5+r12]
+            mov     r6, r12
             cmp     r6, 32
             beq     SHORT G_M63854_IG19
             cmp     r6, 9
             beq     SHORT G_M63854_IG19
-            cmp     r5, 61
+            cmp     r12, 61
             beq     SHORT G_M63854_IG19
-                      ;; size=26 bbWeight=4 PerfScore 52.00
+                     ;; size=32 bbWeight=4 PerfScore 52.00
 G_M63854_IG21:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref
-            ; byrRegs -[r4]
+            ; byrRegs -[r5]
             str     r1, [r2]
-            mov     r1, lr
-            mov     r2, r12
+            mov     r1, r3
+            mov     r2, lr
             ; byrRegs -[r2]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -193,7 +193,7 @@ G_M63854_IG23:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 230, prolog size 8, PerfScore 243.00, instruction count 97, allocated bytes for code 230 (MethodHash=532b0691) for method System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
+; Total bytes of code 258, prolog size 8, PerfScore 243.00, instruction count 97, allocated bytes for code 258 (MethodHash=532b0691) for method System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -205,7 +205,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 115 (0x00073) Actual length = 230 (0x0000e6)
+  Function Length   : 129 (0x00081) Actual length = 258 (0x000102)
   ---- Epilog scopes ----
   ---- Scope 0
...
  
  
libraries_tests.run.linux.arm.Release.mch
-36 (-9.42%) : 12886.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (Tier0-FullOpts)
@@ -13,12 +13,12 @@
 ;  V02 arg2         [V02,T12] (  5,  3.50)   byref  ->   r4         single-def
 ;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->   r5        
 ;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->   r8        
-;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   r3         single-def
+;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   lr         single-def
 ;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   r2        
-;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   lr        
-;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->  r12        
-;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   r2        
-;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->  r12        
+;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   r9        
+;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   r3        
+;  V09 loc6         [V09,T06] (  7, 17   )     int  ->  r10        
+;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->   r3        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->   r5         "impSpillLclRefs"
 ;* V13 tmp2         [V13,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -28,21 +28,21 @@
 ;* V17 tmp6         [V17,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp7         [V18,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp8         [V19,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->  r12         "Inlining Arg"
+;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->   r2         "Inlining Arg"
 ;* V21 tmp10        [V21,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp11        [V22,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
 ;  V24 cse0         [V24,T09] (  4,  9   )     int  ->   r8         "CSE - aggressive"
 ;  V25 cse1         [V25,T02] ( 10, 32   )     int  ->   r6         hoist "CSE - aggressive"
 ;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->   r7         "CSE - aggressive"
-;  TEMP_01                                     ref  ->  [r11-0x1C]
+;  TEMP_01                                     ref  ->  [r11-0x24]
 ;
 ; Lcl frame size = 12
 
 G_M24207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r11,lr}
+            push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             sub     sp, 12
-            add     r11, sp, 32
+            add     r11, sp, 40
             movs    r3, 0
             str     r3, [sp+0x04]
             mov     r4, r2
@@ -56,8 +56,8 @@ G_M24207_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4},
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M24207_IG03:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r6, r5
-            beq     G_M24207_IG29
-                       ;; size=6 bbWeight=8 PerfScore 16.00
+            beq     SHORT G_M24207_IG29
+                       ;; size=4 bbWeight=8 PerfScore 16.00
 G_M24207_IG04:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r5, r6
             bhs     G_M24207_IG35
@@ -99,37 +99,37 @@ G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
             adds    r5, r5, 1
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            mov     r3, r5
+            mov     lr, r5
             mov     r2, r6
-            mov     lr, 0
+            mov     r9, 0
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r6, r5
             ble     SHORT G_M24207_IG17
             cmp     r5, r6
-            bhs     G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 92
+            bhs     SHORT G_M24207_IG35
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 92
             bne     SHORT G_M24207_IG12
-            mov     lr, 1
+            mov     r9, 1
             adds    r5, r5, 2
             b       SHORT G_M24207_IG11
-                      ;; size=32 bbWeight=4 PerfScore 44.00
+                     ;; size=24 bbWeight=4 PerfScore 44.00
 G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG15
                        ;; size=6 bbWeight=4 PerfScore 8.00
 G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG19
-            cmp     r12, 44
+            cmp     r3, 44
             beq     SHORT G_M24207_IG19
-            cmp     r12, 34
+            cmp     r3, 34
             beq     SHORT G_M24207_IG29
-            cmp     r12, 39
+            cmp     r3, 39
             bne     SHORT G_M24207_IG16
-                       ;; size=24 bbWeight=2 PerfScore 16.00
+                     ;; size=16 bbWeight=2 PerfScore 16.00
 G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             ; gcrRegs -[r0]
             ; byrRegs -[r1 r7]
@@ -138,7 +138,7 @@ G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG15:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r1 r7]
-            cmp     r12, r8
+            cmp     r3, r8
             beq     SHORT G_M24207_IG18
                        ;; size=4 bbWeight=2 PerfScore 4.00
 G_M24207_IG16:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
@@ -156,48 +156,48 @@ G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
 G_M24207_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG25
-            subs    r2, r5, 1
+            add     r10, r5, -1
             b       SHORT G_M24207_IG21
-                       ;; size=10 bbWeight=0.50 PerfScore 2.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG20:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            subs    r2, r2, 1
-                       ;; size=2 bbWeight=2 PerfScore 2.00
+            add     r10, r10, -1
+                       ;; size=4 bbWeight=2 PerfScore 2.00
 G_M24207_IG21:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r2, r3
+            cmp     r10, lr
             blt     SHORT G_M24207_IG22
-            cmp     r2, r6
+            cmp     r10, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r2, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsl     r2, r10, 1
+            ldrh    r2, [r7+r2]
+            cmp     r2, 32
             beq     SHORT G_M24207_IG20
-            cmp     r12, 9
+            cmp     r2, 9
             beq     SHORT G_M24207_IG20
-            cmp     r12, 13
+            cmp     r2, 13
             beq     SHORT G_M24207_IG20
-            cmp     r12, 10
+            cmp     r2, 10
             beq     SHORT G_M24207_IG20
-                      ;; size=40 bbWeight=4 PerfScore 56.00
+                     ;; size=30 bbWeight=4 PerfScore 56.00
 G_M24207_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             ; byrRegs -[r7]
-            adds    r2, r2, 1
+            add     r2, r10, 1
             b       SHORT G_M24207_IG28
-                        ;; size=4 bbWeight=0.50 PerfScore 1.00
+                        ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG23:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; byrRegs +[r7]
             cmp     r5, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 32
             beq     SHORT G_M24207_IG24
-            cmp     r12, 9
+            cmp     r3, 9
             beq     SHORT G_M24207_IG24
-            cmp     r12, 13
+            cmp     r3, 13
             beq     SHORT G_M24207_IG24
-            cmp     r12, 10
+            cmp     r3, 10
             bne     SHORT G_M24207_IG27
-                      ;; size=36 bbWeight=2 PerfScore 24.00
+                     ;; size=24 bbWeight=2 PerfScore 24.00
 G_M24207_IG24:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
             adds    r5, r5, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
@@ -210,14 +210,14 @@ G_M24207_IG26:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r
             b       SHORT G_M24207_IG28
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG27:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG28
-            cmp     r12, 44
+            cmp     r3, 44
             bne     SHORT G_M24207_IG29
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG28:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             str     r5, [r1]
-            cmp     r2, r3
+            cmp     r2, lr
             bne     SHORT G_M24207_IG31
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
@@ -229,15 +229,15 @@ G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG30:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[r4]
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            cmp     lr, 0
+            cmp     r9, 0
             bne     SHORT G_M24207_IG33
-            subs    r2, r2, r3
-            mov     r1, r3
+            sub     r2, r2, lr
+            mov     r1, lr
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -255,15 +255,15 @@ G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
             ; gcrRegs -[r1]
             ; byrRegs -[r0 r4]
             movs    r0, 1
-                        ;; size=40 bbWeight=0.50 PerfScore 7.50
+                       ;; size=42 bbWeight=0.50 PerfScore 7.50
 G_M24207_IG32:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            mov     r1, r3
+            mov     r1, lr
             mov     r3, r4
             ; byrRegs +[r3]
             movw    lr, 0xd1ff
@@ -272,7 +272,7 @@ G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 G_M24207_IG34:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,lr}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,lr}
...
  
-36 (-9.42%) : 139836.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (Tier0-FullOpts)
@@ -13,12 +13,12 @@
 ;  V02 arg2         [V02,T12] (  5,  3.50)   byref  ->   r4         single-def
 ;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->   r5        
 ;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->   r8        
-;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   r3         single-def
+;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   lr         single-def
 ;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   r2        
-;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   lr        
-;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->  r12        
-;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   r2        
-;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->  r12        
+;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   r9        
+;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   r3        
+;  V09 loc6         [V09,T06] (  7, 17   )     int  ->  r10        
+;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->   r3        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->   r5         "impSpillLclRefs"
 ;* V13 tmp2         [V13,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -28,21 +28,21 @@
 ;* V17 tmp6         [V17,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp7         [V18,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp8         [V19,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->  r12         "Inlining Arg"
+;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->   r2         "Inlining Arg"
 ;* V21 tmp10        [V21,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp11        [V22,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
 ;  V24 cse0         [V24,T09] (  4,  9   )     int  ->   r8         "CSE - aggressive"
 ;  V25 cse1         [V25,T02] ( 10, 32   )     int  ->   r6         hoist "CSE - aggressive"
 ;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->   r7         "CSE - aggressive"
-;  TEMP_01                                     ref  ->  [r11-0x1C]
+;  TEMP_01                                     ref  ->  [r11-0x24]
 ;
 ; Lcl frame size = 12
 
 G_M24207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r11,lr}
+            push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             sub     sp, 12
-            add     r11, sp, 32
+            add     r11, sp, 40
             movs    r3, 0
             str     r3, [sp+0x04]
             mov     r4, r2
@@ -56,8 +56,8 @@ G_M24207_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4},
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M24207_IG03:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r6, r5
-            beq     G_M24207_IG29
-                       ;; size=6 bbWeight=8 PerfScore 16.00
+            beq     SHORT G_M24207_IG29
+                       ;; size=4 bbWeight=8 PerfScore 16.00
 G_M24207_IG04:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r5, r6
             bhs     G_M24207_IG35
@@ -99,37 +99,37 @@ G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
             adds    r5, r5, 1
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            mov     r3, r5
+            mov     lr, r5
             mov     r2, r6
-            mov     lr, 0
+            mov     r9, 0
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r6, r5
             ble     SHORT G_M24207_IG17
             cmp     r5, r6
-            bhs     G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 92
+            bhs     SHORT G_M24207_IG35
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 92
             bne     SHORT G_M24207_IG12
-            mov     lr, 1
+            mov     r9, 1
             adds    r5, r5, 2
             b       SHORT G_M24207_IG11
-                      ;; size=32 bbWeight=4 PerfScore 44.00
+                     ;; size=24 bbWeight=4 PerfScore 44.00
 G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG15
                        ;; size=6 bbWeight=4 PerfScore 8.00
 G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG19
-            cmp     r12, 44
+            cmp     r3, 44
             beq     SHORT G_M24207_IG19
-            cmp     r12, 34
+            cmp     r3, 34
             beq     SHORT G_M24207_IG29
-            cmp     r12, 39
+            cmp     r3, 39
             bne     SHORT G_M24207_IG16
-                       ;; size=24 bbWeight=2 PerfScore 16.00
+                     ;; size=16 bbWeight=2 PerfScore 16.00
 G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             ; gcrRegs -[r0]
             ; byrRegs -[r1 r7]
@@ -138,7 +138,7 @@ G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG15:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r1 r7]
-            cmp     r12, r8
+            cmp     r3, r8
             beq     SHORT G_M24207_IG18
                        ;; size=4 bbWeight=2 PerfScore 4.00
 G_M24207_IG16:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
@@ -156,48 +156,48 @@ G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
 G_M24207_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG25
-            subs    r2, r5, 1
+            add     r10, r5, -1
             b       SHORT G_M24207_IG21
-                       ;; size=10 bbWeight=0.50 PerfScore 2.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG20:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            subs    r2, r2, 1
-                       ;; size=2 bbWeight=2 PerfScore 2.00
+            add     r10, r10, -1
+                       ;; size=4 bbWeight=2 PerfScore 2.00
 G_M24207_IG21:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r2, r3
+            cmp     r10, lr
             blt     SHORT G_M24207_IG22
-            cmp     r2, r6
+            cmp     r10, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r2, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsl     r2, r10, 1
+            ldrh    r2, [r7+r2]
+            cmp     r2, 32
             beq     SHORT G_M24207_IG20
-            cmp     r12, 9
+            cmp     r2, 9
             beq     SHORT G_M24207_IG20
-            cmp     r12, 13
+            cmp     r2, 13
             beq     SHORT G_M24207_IG20
-            cmp     r12, 10
+            cmp     r2, 10
             beq     SHORT G_M24207_IG20
-                      ;; size=40 bbWeight=4 PerfScore 56.00
+                     ;; size=30 bbWeight=4 PerfScore 56.00
 G_M24207_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             ; byrRegs -[r7]
-            adds    r2, r2, 1
+            add     r2, r10, 1
             b       SHORT G_M24207_IG28
-                        ;; size=4 bbWeight=0.50 PerfScore 1.00
+                        ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG23:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; byrRegs +[r7]
             cmp     r5, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 32
             beq     SHORT G_M24207_IG24
-            cmp     r12, 9
+            cmp     r3, 9
             beq     SHORT G_M24207_IG24
-            cmp     r12, 13
+            cmp     r3, 13
             beq     SHORT G_M24207_IG24
-            cmp     r12, 10
+            cmp     r3, 10
             bne     SHORT G_M24207_IG27
-                      ;; size=36 bbWeight=2 PerfScore 24.00
+                     ;; size=24 bbWeight=2 PerfScore 24.00
 G_M24207_IG24:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
             adds    r5, r5, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
@@ -210,14 +210,14 @@ G_M24207_IG26:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r
             b       SHORT G_M24207_IG28
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG27:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG28
-            cmp     r12, 44
+            cmp     r3, 44
             bne     SHORT G_M24207_IG29
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG28:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             str     r5, [r1]
-            cmp     r2, r3
+            cmp     r2, lr
             bne     SHORT G_M24207_IG31
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
@@ -229,15 +229,15 @@ G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG30:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[r4]
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            cmp     lr, 0
+            cmp     r9, 0
             bne     SHORT G_M24207_IG33
-            subs    r2, r2, r3
-            mov     r1, r3
+            sub     r2, r2, lr
+            mov     r1, lr
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -255,15 +255,15 @@ G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
             ; gcrRegs -[r1]
             ; byrRegs -[r0 r4]
             movs    r0, 1
-                        ;; size=40 bbWeight=0.50 PerfScore 7.50
+                       ;; size=42 bbWeight=0.50 PerfScore 7.50
 G_M24207_IG32:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            mov     r1, r3
+            mov     r1, lr
             mov     r3, r4
             ; byrRegs +[r3]
             movw    lr, 0xd1ff
@@ -272,7 +272,7 @@ G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 G_M24207_IG34:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,lr}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,lr}
...
  
-36 (-9.42%) : 153220.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (Tier0-FullOpts)
@@ -13,12 +13,12 @@
 ;  V02 arg2         [V02,T12] (  5,  3.50)   byref  ->   r4         single-def
 ;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->   r5        
 ;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->   r8        
-;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   r3         single-def
+;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   lr         single-def
 ;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   r2        
-;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   lr        
-;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->  r12        
-;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   r2        
-;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->  r12        
+;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   r9        
+;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   r3        
+;  V09 loc6         [V09,T06] (  7, 17   )     int  ->  r10        
+;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->   r3        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->   r5         "impSpillLclRefs"
 ;* V13 tmp2         [V13,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -28,21 +28,21 @@
 ;* V17 tmp6         [V17,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp7         [V18,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp8         [V19,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->  r12         "Inlining Arg"
+;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->   r2         "Inlining Arg"
 ;* V21 tmp10        [V21,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp11        [V22,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
 ;  V24 cse0         [V24,T09] (  4,  9   )     int  ->   r8         "CSE - aggressive"
 ;  V25 cse1         [V25,T02] ( 10, 32   )     int  ->   r6         hoist "CSE - aggressive"
 ;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->   r7         "CSE - aggressive"
-;  TEMP_01                                     ref  ->  [r11-0x1C]
+;  TEMP_01                                     ref  ->  [r11-0x24]
 ;
 ; Lcl frame size = 12
 
 G_M24207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r11,lr}
+            push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             sub     sp, 12
-            add     r11, sp, 32
+            add     r11, sp, 40
             movs    r3, 0
             str     r3, [sp+0x04]
             mov     r4, r2
@@ -56,8 +56,8 @@ G_M24207_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4},
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M24207_IG03:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r6, r5
-            beq     G_M24207_IG29
-                       ;; size=6 bbWeight=8 PerfScore 16.00
+            beq     SHORT G_M24207_IG29
+                       ;; size=4 bbWeight=8 PerfScore 16.00
 G_M24207_IG04:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r5, r6
             bhs     G_M24207_IG35
@@ -99,37 +99,37 @@ G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
             adds    r5, r5, 1
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            mov     r3, r5
+            mov     lr, r5
             mov     r2, r6
-            mov     lr, 0
+            mov     r9, 0
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r6, r5
             ble     SHORT G_M24207_IG17
             cmp     r5, r6
-            bhs     G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 92
+            bhs     SHORT G_M24207_IG35
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 92
             bne     SHORT G_M24207_IG12
-            mov     lr, 1
+            mov     r9, 1
             adds    r5, r5, 2
             b       SHORT G_M24207_IG11
-                      ;; size=32 bbWeight=4 PerfScore 44.00
+                     ;; size=24 bbWeight=4 PerfScore 44.00
 G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG15
                        ;; size=6 bbWeight=4 PerfScore 8.00
 G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG19
-            cmp     r12, 44
+            cmp     r3, 44
             beq     SHORT G_M24207_IG19
-            cmp     r12, 34
+            cmp     r3, 34
             beq     SHORT G_M24207_IG29
-            cmp     r12, 39
+            cmp     r3, 39
             bne     SHORT G_M24207_IG16
-                       ;; size=24 bbWeight=2 PerfScore 16.00
+                     ;; size=16 bbWeight=2 PerfScore 16.00
 G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             ; gcrRegs -[r0]
             ; byrRegs -[r1 r7]
@@ -138,7 +138,7 @@ G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG15:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r1 r7]
-            cmp     r12, r8
+            cmp     r3, r8
             beq     SHORT G_M24207_IG18
                        ;; size=4 bbWeight=2 PerfScore 4.00
 G_M24207_IG16:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
@@ -156,48 +156,48 @@ G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
 G_M24207_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG25
-            subs    r2, r5, 1
+            add     r10, r5, -1
             b       SHORT G_M24207_IG21
-                       ;; size=10 bbWeight=0.50 PerfScore 2.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG20:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            subs    r2, r2, 1
-                       ;; size=2 bbWeight=2 PerfScore 2.00
+            add     r10, r10, -1
+                       ;; size=4 bbWeight=2 PerfScore 2.00
 G_M24207_IG21:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r2, r3
+            cmp     r10, lr
             blt     SHORT G_M24207_IG22
-            cmp     r2, r6
+            cmp     r10, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r2, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsl     r2, r10, 1
+            ldrh    r2, [r7+r2]
+            cmp     r2, 32
             beq     SHORT G_M24207_IG20
-            cmp     r12, 9
+            cmp     r2, 9
             beq     SHORT G_M24207_IG20
-            cmp     r12, 13
+            cmp     r2, 13
             beq     SHORT G_M24207_IG20
-            cmp     r12, 10
+            cmp     r2, 10
             beq     SHORT G_M24207_IG20
-                      ;; size=40 bbWeight=4 PerfScore 56.00
+                     ;; size=30 bbWeight=4 PerfScore 56.00
 G_M24207_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             ; byrRegs -[r7]
-            adds    r2, r2, 1
+            add     r2, r10, 1
             b       SHORT G_M24207_IG28
-                        ;; size=4 bbWeight=0.50 PerfScore 1.00
+                        ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG23:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; byrRegs +[r7]
             cmp     r5, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 32
             beq     SHORT G_M24207_IG24
-            cmp     r12, 9
+            cmp     r3, 9
             beq     SHORT G_M24207_IG24
-            cmp     r12, 13
+            cmp     r3, 13
             beq     SHORT G_M24207_IG24
-            cmp     r12, 10
+            cmp     r3, 10
             bne     SHORT G_M24207_IG27
-                      ;; size=36 bbWeight=2 PerfScore 24.00
+                     ;; size=24 bbWeight=2 PerfScore 24.00
 G_M24207_IG24:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
             adds    r5, r5, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
@@ -210,14 +210,14 @@ G_M24207_IG26:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r
             b       SHORT G_M24207_IG28
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG27:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG28
-            cmp     r12, 44
+            cmp     r3, 44
             bne     SHORT G_M24207_IG29
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG28:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             str     r5, [r1]
-            cmp     r2, r3
+            cmp     r2, lr
             bne     SHORT G_M24207_IG31
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
@@ -229,15 +229,15 @@ G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG30:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[r4]
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            cmp     lr, 0
+            cmp     r9, 0
             bne     SHORT G_M24207_IG33
-            subs    r2, r2, r3
-            mov     r1, r3
+            sub     r2, r2, lr
+            mov     r1, lr
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -255,15 +255,15 @@ G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
             ; gcrRegs -[r1]
             ; byrRegs -[r0 r4]
             movs    r0, 1
-                        ;; size=40 bbWeight=0.50 PerfScore 7.50
+                       ;; size=42 bbWeight=0.50 PerfScore 7.50
 G_M24207_IG32:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            mov     r1, r3
+            mov     r1, lr
             mov     r3, r4
             ; byrRegs +[r3]
             movw    lr, 0xd1ff
@@ -272,7 +272,7 @@ G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 G_M24207_IG34:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,lr}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,lr}
...
  
+22 (+6.79%) : 257571.dasm - System.Data.SqlTypes.Tests.SqlStringSortingTest:CompareBinary(System.String,System.String):int (Tier0-FullOpts)
@@ -15,7 +15,7 @@
 ;  V05 loc3         [V05,T08] (  7,  7.50)     int  ->   lr         single-def
 ;  V06 loc4         [V06,T07] (  7,  8.50)     int  ->  r12         single-def
 ;  V07 loc5         [V07,T00] ( 34, 56.66)     int  ->   r4        
-;  V08 loc6         [V08,T02] (  8, 13   )     int  ->  registers  
+;  V08 loc6         [V08,T02] (  8, 13   )     int  ->  r12        
 ;* V09 loc7         [V09,T19] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V11 tmp1         [V11,T18] (  3,  2   )     int  ->  r12        
@@ -28,7 +28,7 @@
 ;  V18 cse6         [V18,T09] (  7,  7.08)     int  ->   r1         "CSE - aggressive"
 ;  V19 cse7         [V19,T10] (  6,  7.04)     int  ->   r3         "CSE - aggressive"
 ;  V20 cse8         [V20,T05] (  3, 11.88)     int  ->   r0         "CSE - aggressive"
-;  V21 cse9         [V21,T12] (  3,  6   )     int  ->   r0         "CSE - aggressive"
+;  V21 cse9         [V21,T12] (  3,  6   )     int  ->  r12         "CSE - aggressive"
 ;  V22 cse10        [V22,T17] (  3,  3   )     int  ->   r5         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
@@ -104,10 +104,10 @@ G_M33870_IG06:        ; bbWeight=3.96, gcrefRegs=0041 {r0 r6}, byrefRegs=00A0 {r
             cmp     r4, r12
             blt     SHORT G_M33870_IG06
                        ;; size=22 bbWeight=3.96 PerfScore 35.64
-G_M33870_IG07:        ; bbWeight=1, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}, byref, isz
+G_M33870_IG07:        ; bbWeight=0.50, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r5 r7]
             b       SHORT G_M33870_IG09
-                      ;; size=2 bbWeight=1 PerfScore 1.00
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M33870_IG08:        ; bbWeight=0.04, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}, byref, isz
             cmp     r4, r3
             bhs     SHORT G_M33870_IG24
@@ -149,21 +149,21 @@ G_M33870_IG10:        ; bbWeight=3.96, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, b
             ldrb    r3, [r7+r4]
             add     r0, r3, 8
             and     r0, r0, 31
-            lsl     r3, r2, r0
-            cmp     r3, 32
+            lsl     r12, r2, r0
+            cmp     r12, 32
             bne     SHORT G_M33870_IG14
             adds    r4, r4, 2
             cmp     r4, lr
             blt     SHORT G_M33870_IG10
-                      ;; size=32 bbWeight=3.96 PerfScore 51.48
+                      ;; size=34 bbWeight=3.96 PerfScore 51.48
 G_M33870_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r7]
             b       SHORT G_M33870_IG17
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M33870_IG12:        ; bbWeight=0.04, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0]
-            adds    r3, r4, 1
-            cmp     r3, r1
+            add     r12, r4, 1
+            cmp     r12, r1
             bhs     SHORT G_M33870_IG24
             add     r7, r0, 8
             ; byrRegs +[r7]
@@ -174,41 +174,41 @@ G_M33870_IG12:        ; bbWeight=0.04, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             ldrb    r2, [r7+r4]
             adds    r2, 8
             and     r2, r2, 31
-            lsls    r3, r2
-            cmp     r3, 32
+            lsl     r12, r3, r2
+            cmp     r12, 32
             bne     SHORT G_M33870_IG14
             adds    r4, r4, 2
             cmp     r4, lr
             blt     SHORT G_M33870_IG12
-                      ;; size=38 bbWeight=0.04 PerfScore 0.68
+                       ;; size=44 bbWeight=0.04 PerfScore 0.68
 G_M33870_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
             ; byrRegs -[r7]
             b       SHORT G_M33870_IG17
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M33870_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            cmp     r3, 32
+            cmp     r12, 32
             blt     SHORT G_M33870_IG22
             b       SHORT G_M33870_IG20
-                      ;; size=6 bbWeight=0.50 PerfScore 1.50
+                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 G_M33870_IG15:        ; bbWeight=2, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r6]
-            adds    r0, r4, 1
-            cmp     r0, r3
+            add     r12, r4, 1
+            cmp     r12, r3
             bhs     SHORT G_M33870_IG24
             add     r5, r6, 8
             ; byrRegs +[r5]
-            ldrb    r0, [r5+r0]
+            ldrb    r0, [r5+r12]
             cmp     r4, r3
             bhs     SHORT G_M33870_IG24
             ldrb    r1, [r5+r4]
-            adds    r1, 8
-            and     r1, r1, 31
-            lsls    r0, r1
-            cmp     r0, 32
+            add     lr, r1, 8
+            and     r1, lr, 31
+            lsl     r12, r0, r1
+            cmp     r12, 32
             bne     SHORT G_M33870_IG19
             adds    r4, r4, 2
-                        ;; size=32 bbWeight=2 PerfScore 28.00
+                     ;; size=42 bbWeight=2 PerfScore 28.00
 G_M33870_IG16:        ; bbWeight=4, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r5]
             cmp     r4, r2
@@ -222,9 +222,9 @@ G_M33870_IG18:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r4,r5,r6,r7,r8,r9,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M33870_IG19:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            cmp     r0, 32
+            cmp     r12, 32
             bgt     SHORT G_M33870_IG22
-                      ;; size=4 bbWeight=0.50 PerfScore 1.00
+                        ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M33870_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     r0, -1
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
@@ -245,7 +245,7 @@ G_M33870_IG24:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 324, prolog size 12, PerfScore 171.40, instruction count 133, allocated bytes for code 324 (MethodHash=b0cb7bb1) for method System.Data.SqlTypes.Tests.SqlStringSortingTest:CompareBinary(System.String,System.String):int (Tier0-FullOpts)
+; Total bytes of code 346, prolog size 12, PerfScore 170.90, instruction count 133, allocated bytes for code 346 (MethodHash=b0cb7bb1) for method System.Data.SqlTypes.Tests.SqlStringSortingTest:CompareBinary(System.String,System.String):int (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -257,7 +257,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 162 (0x000a2) Actual length = 324 (0x000144)
+  Function Length   : 173 (0x000ad) Actual length = 346 (0x00015a)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+20 (+7.04%) : 10449.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (Tier0-FullOpts)
@@ -15,7 +15,7 @@
 ;  V04 loc2         [V04,T06] (  2,  4.50)     int  ->   r8         single-def
 ;  V05 loc3         [V05,T07] (  4,  3.50)     int  ->   r9         single-def
 ;  V06 loc4         [V06,T16] (  3,  1.50)     int  ->   r3         single-def
-;  V07 loc5         [V07,T01] ( 13, 22.50)  ushort  ->   r0        
+;  V07 loc5         [V07,T01] ( 13, 22.50)  ushort  ->  r10        
 ;* V08 loc6         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V10 tmp1         [V10,T08] (  3,  3   )     ref  ->   r1         class-hnd exact single-def "dup spill" <System.String>
@@ -26,11 +26,11 @@
 ;* V15 tmp6         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;  V16 cse0         [V16,T12] (  4,  2   )     ref  ->   r0         "CSE - aggressive"
 ;  V17 cse1         [V17,T15] (  3,  1.50)     ref  ->   r0         "CSE - moderate"
-;  V18 rat0         [V18,T02] (  3, 12   )     int  ->  r10         "ReplaceWithLclVar is creating a new local variable"
+;  V18 rat0         [V18,T02] (  3, 12   )     int  ->   lr         "ReplaceWithLclVar is creating a new local variable"
 ;  V19 rat1         [V19,T13] (  2,  2   )     int  ->   r0         "ReplaceWithLclVar is creating a new local variable"
 ;  V20 rat2         [V20,T14] (  2,  2   )     int  ->   r0         "ReplaceWithLclVar is creating a new local variable"
-;  V21 rat3         [V21,T10] (  3,  3   )     int  ->   lr         "ReplaceWithLclVar is creating a new local variable"
-;  V22 rat4         [V22,T11] (  3,  3   )     int  ->  r12         "ReplaceWithLclVar is creating a new local variable"
+;  V21 rat3         [V21,T10] (  3,  3   )     int  ->  r12         "ReplaceWithLclVar is creating a new local variable"
+;  V22 rat4         [V22,T11] (  3,  3   )     int  ->   r3         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 4
 
@@ -45,8 +45,8 @@ G_M53059_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M53059_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, byref, isz
             ldrh    r0, [r4+0x34]
             cmp     r0, 2
-            beq     SHORT G_M53059_IG17
-                       ;; size=6 bbWeight=1 PerfScore 3.00
+            beq     G_M53059_IG17
+                       ;; size=8 bbWeight=1 PerfScore 3.00
 G_M53059_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, byref
             ldr     r0, [r4+0x04]
             ; gcrRegs +[r0]
@@ -66,25 +66,25 @@ G_M53059_IG04:        ; bbWeight=4, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5},
             add     r0, r7, 8
             ; byrRegs +[r0]
             lsls    r1, r6, 1
-            ldrh    r0, [r0+r1]
-            ; byrRegs -[r0]
-            cmp     r0, 65
+            ldrh    r10, [r0+r1]
+            cmp     r10, 65
             blt     SHORT G_M53059_IG08
-                       ;; size=22 bbWeight=4 PerfScore 40.00
+                     ;; size=26 bbWeight=4 PerfScore 40.00
 G_M53059_IG05:        ; bbWeight=2, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r0, 97
+            ; byrRegs -[r0]
+            cmp     r10, 97
             blt     SHORT G_M53059_IG07
-            cmp     r0, 122
+            cmp     r10, 122
             ble     SHORT G_M53059_IG09
-                     ;; size=8 bbWeight=2 PerfScore 8.00
+                       ;; size=12 bbWeight=2 PerfScore 8.00
 G_M53059_IG06:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
             b       SHORT G_M53059_IG10
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M53059_IG07:        ; bbWeight=2, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r0, 90
+            cmp     r10, 90
             ble     SHORT G_M53059_IG09
-            sub     r10, r0, 91
-            cmp     r10, 4
+            sub     lr, r10, 91
+            cmp     lr, 4
             bhi     SHORT G_M53059_IG17
             movw    r0, LOW ADDRESS J_M53059_DS00
             movt    r0, HIGH ADDRESS J_M53059_DS00
@@ -95,37 +95,37 @@ G_M53059_IG07:        ; bbWeight=2, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5},
             DD      G_M53059_IG15
             DD      G_M53059_IG15
             DD      G_M53059_IG09
-            ldr     pc, [r0+4*r10]
-                       ;; size=26 bbWeight=2 PerfScore 16.00
+            ldr     pc, [r0+4*lr]
+                       ;; size=28 bbWeight=2 PerfScore 16.00
 G_M53059_IG08:        ; bbWeight=2, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r0, 48
+            cmp     r10, 48
             blt     SHORT G_M53059_IG12
-            cmp     r0, 57
+            cmp     r10, 57
             bgt     SHORT G_M53059_IG11
             cmp     r6, r9
             beq     SHORT G_M53059_IG17
-                      ;; size=12 bbWeight=2 PerfScore 12.00
+                     ;; size=16 bbWeight=2 PerfScore 12.00
 G_M53059_IG09:        ; bbWeight=4, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
             adds    r6, r6, 1
             b       SHORT G_M53059_IG04
                        ;; size=4 bbWeight=4 PerfScore 8.00
 G_M53059_IG10:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
-            subs    r0, 123
+            sub     r0, r10, 123
             cmp     r0, 3
             bhi     SHORT G_M53059_IG17
             b       SHORT G_M53059_IG15
-                      ;; size=8 bbWeight=0.50 PerfScore 2.00
+                        ;; size=10 bbWeight=0.50 PerfScore 2.00
 G_M53059_IG11:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
-            subs    r0, 58
+            sub     r0, r10, 58
             cmp     r0, 5
             bhi     SHORT G_M53059_IG17
             b       SHORT G_M53059_IG15
-                      ;; size=8 bbWeight=0.50 PerfScore 2.00
+                        ;; size=10 bbWeight=0.50 PerfScore 2.00
 G_M53059_IG12:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r0, 0
+            cmp     r10, 0
             beq     SHORT G_M53059_IG15
-            sub     lr, r0, 9
-            cmp     lr, 4
+            sub     r12, r10, 9
+            cmp     r12, 4
             bhi     SHORT G_M53059_IG13
             movw    r0, LOW ADDRESS J_M53059_DS20
             movt    r0, HIGH ADDRESS J_M53059_DS20
@@ -136,11 +136,11 @@ G_M53059_IG12:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r
             DD      G_M53059_IG17
             DD      G_M53059_IG17
             DD      G_M53059_IG15
-            ldr     pc, [r0+4*lr]
-                       ;; size=26 bbWeight=0.50 PerfScore 4.00
+            ldr     pc, [r0+4*r12]
+                       ;; size=28 bbWeight=0.50 PerfScore 4.00
 G_M53059_IG13:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
-            sub     r12, r0, 32
-            cmp     r12, 15
+            sub     r3, r10, 32
+            cmp     r3, 15
             bhi     SHORT G_M53059_IG17
             movw    r0, LOW ADDRESS J_M53059_DS40
             movt    r0, HIGH ADDRESS J_M53059_DS40
@@ -162,8 +162,8 @@ G_M53059_IG13:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r
             DD      G_M53059_IG15
             DD      G_M53059_IG15
             DD      G_M53059_IG15
-            ldr     pc, [r0+4*r12]
-                       ;; size=22 bbWeight=0.50 PerfScore 3.00
+            ldr     pc, [r0+4*r3]
+                       ;; size=20 bbWeight=0.50 PerfScore 3.00
 G_M53059_IG14:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
             mov     r0, r4
             ; gcrRegs +[r0]
@@ -260,7 +260,7 @@ RWD40   dd  G_M53059_IG15
            dd  G_M53059_IG15
 
 
-; Total bytes of code 284, prolog size 12, PerfScore 123.00, instruction count 105, allocated bytes for code 284 (MethodHash=4fac30bc) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (Tier0-FullOpts)
+; Total bytes of code 304, prolog size 12, PerfScore 123.00, instruction count 105, allocated bytes for code 304 (MethodHash=4fac30bc) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -272,7 +272,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 142 (0x0008e) Actual length = 284 (0x00011c)
+  Function Length   : 152 (0x00098) Actual length = 304 (0x000130)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+28 (+12.17%) : 370345.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (Tier0-FullOpts)
@@ -11,23 +11,23 @@
 ;  V00 arg0         [V00,T07] (  7, 12   )     ref  ->   r0         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T00] ( 33, 83.50)     int  ->   r1        
 ;  V02 arg2         [V02,T10] (  5,  3.50)   byref  ->   r2         single-def
-;  V03 loc0         [V03,T16] (  3,  2   )     int  ->   lr         single-def
-;  V04 loc1         [V04,T17] (  2,  1   )     int  ->  r12         single-def
+;  V03 loc0         [V03,T16] (  3,  2   )     int  ->   r3         single-def
+;  V04 loc1         [V04,T17] (  2,  1   )     int  ->   lr         single-def
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06,T11] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V07 tmp2         [V07,T03] (  3, 24   )  ushort  ->   lr         "Inlining Arg"
+;  V07 tmp2         [V07,T03] (  3, 24   )  ushort  ->   r3         "Inlining Arg"
 ;* V08 tmp3         [V08,T12] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V09 tmp4         [V09,T04] (  3, 24   )  ushort  ->   r4         "Inlining Arg"
+;  V09 tmp4         [V09,T04] (  3, 24   )  ushort  ->   lr         "Inlining Arg"
 ;* V10 tmp5         [V10,T18] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V11 tmp6         [V11,T15] (  3,  3   )  ushort  ->   r5         "Inlining Arg"
+;  V11 tmp6         [V11,T15] (  3,  3   )  ushort  ->  r12         "Inlining Arg"
 ;* V12 tmp7         [V12,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V13 tmp8         [V13,T05] (  3, 24   )  ushort  ->   r5         "Inlining Arg"
+;  V13 tmp8         [V13,T05] (  3, 24   )  ushort  ->  r12         "Inlining Arg"
 ;* V14 tmp9         [V14,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V15 tmp10        [V15,T06] (  3, 24   )  ushort  ->   r6         "Inlining Arg"
-;  V16 cse0         [V16,T09] (  3, 12   )     int  ->   r5         "CSE - aggressive"
+;  V16 cse0         [V16,T09] (  3, 12   )     int  ->  r12         "CSE - aggressive"
 ;  V17 cse1         [V17,T08] (  5, 13   )     int  ->  registers   multi-def "CSE - aggressive"
-;  V18 cse2         [V18,T01] ( 13, 46.50)     int  ->   r3         hoist "CSE - aggressive"
-;  V19 cse3         [V19,T02] (  9, 25.50)   byref  ->  registers   multi-def "CSE - aggressive"
+;  V18 cse2         [V18,T01] ( 13, 46.50)     int  ->   r4         hoist "CSE - aggressive"
+;  V19 cse3         [V19,T02] (  9, 25.50)   byref  ->   r5         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 4
 
@@ -38,57 +38,57 @@ G_M63854_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M63854_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r2]
-            ldr     r3, [r0+0x04]
+            ldr     r4, [r0+0x04]
             b       SHORT G_M63854_IG04
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M63854_IG03:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref
             adds    r1, r1, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
 G_M63854_IG04:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            cmp     r3, r1
+            cmp     r4, r1
             ble     SHORT G_M63854_IG06
                        ;; size=4 bbWeight=8 PerfScore 16.00
 G_M63854_IG05:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            add     lr, r0, 8
-            ; byrRegs +[lr]
-            lsl     r12, r1, 1
-            ldrh    lr, [lr+r12]
-            ; byrRegs -[lr]
-            cmp     lr, 32
+            add     r5, r0, 8
+            ; byrRegs +[r5]
+            lsls    r3, r1, 1
+            ldrh    r3, [r5+r3]
+            cmp     r3, 32
             beq     SHORT G_M63854_IG03
-            cmp     lr, 9
+            cmp     r3, 9
             beq     SHORT G_M63854_IG03
-                       ;; size=28 bbWeight=4 PerfScore 36.00
+                     ;; size=20 bbWeight=4 PerfScore 36.00
 G_M63854_IG06:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            mov     lr, r1
+            ; byrRegs -[r5]
+            mov     r3, r1
             b       SHORT G_M63854_IG08
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M63854_IG07:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref
             adds    r1, r1, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
 G_M63854_IG08:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            cmp     r3, r1
+            cmp     r4, r1
             ble     SHORT G_M63854_IG10
                        ;; size=4 bbWeight=8 PerfScore 16.00
 G_M63854_IG09:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            add     r12, r0, 8
-            ; byrRegs +[r12]
-            lsls    r4, r1, 1
-            ldrh    r4, [r12+r4]
-            cmp     r4, 61
+            add     r5, r0, 8
+            ; byrRegs +[r5]
+            lsl     lr, r1, 1
+            ldrh    lr, [r5+lr]
+            cmp     lr, 61
             beq     SHORT G_M63854_IG10
-            cmp     r4, 32
+            cmp     lr, 32
             beq     SHORT G_M63854_IG10
-            cmp     r4, 9
+            cmp     lr, 9
             bne     SHORT G_M63854_IG07
-                        ;; size=26 bbWeight=4 PerfScore 44.00
+                     ;; size=34 bbWeight=4 PerfScore 44.00
 G_M63854_IG10:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            ; byrRegs -[r12]
-            cmp     r3, r1
+            ; byrRegs -[r5]
+            cmp     r4, r1
             bne     SHORT G_M63854_IG13
                        ;; size=4 bbWeight=4 PerfScore 8.00
 G_M63854_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {r2}, byref
@@ -101,78 +101,78 @@ G_M63854_IG12:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M63854_IG13:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, gcvars, byref, isz
             ; gcrRegs +[r0]
-            sub     r12, r1, lr
-            cmp     r1, r3
+            sub     lr, r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            add     r4, r0, 8
-            ; byrRegs +[r4]
-            lsls    r5, r1, 1
-            ldrh    r5, [r4+r5]
-            cmp     r5, 32
+            add     r5, r0, 8
+            ; byrRegs +[r5]
+            lsl     r12, r1, 1
+            ldrh    r12, [r5+r12]
+            cmp     r12, 32
             beq     SHORT G_M63854_IG15
-            cmp     r5, 9
+            cmp     r12, 9
             bne     SHORT G_M63854_IG20
             b       SHORT G_M63854_IG15
-                      ;; size=26 bbWeight=0.50 PerfScore 5.50
-G_M63854_IG14:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, byref
+                       ;; size=34 bbWeight=0.50 PerfScore 5.50
+G_M63854_IG14:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, byref
             adds    r1, r1, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
-G_M63854_IG15:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, byref, isz
-            cmp     r3, r1
+G_M63854_IG15:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, byref, isz
+            cmp     r4, r1
             ble     SHORT G_M63854_IG16
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            lsls    r5, r1, 1
-            ldrh    r5, [r4+r5]
-            cmp     r5, 32
+            lsl     r12, r1, 1
+            ldrh    r12, [r5+r12]
+            cmp     r12, 32
             beq     SHORT G_M63854_IG14
-            cmp     r5, 9
+            cmp     r12, 9
             beq     SHORT G_M63854_IG14
-                     ;; size=20 bbWeight=4 PerfScore 40.00
-G_M63854_IG16:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, byref, isz
-            cmp     r3, r1
+                       ;; size=28 bbWeight=4 PerfScore 40.00
+G_M63854_IG16:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, byref, isz
+            cmp     r4, r1
             beq     SHORT G_M63854_IG17
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            lsls    r5, r1, 1
-            ldrh    r5, [r4+r5]
-            cmp     r5, 61
+            lsl     r12, r1, 1
+            ldrh    r12, [r5+r12]
+            cmp     r12, 61
             beq     SHORT G_M63854_IG20
-                       ;; size=16 bbWeight=0.50 PerfScore 4.00
+                       ;; size=22 bbWeight=0.50 PerfScore 4.00
 G_M63854_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {r2}, byref
             ; gcrRegs -[r0]
-            ; byrRegs -[r4]
+            ; byrRegs -[r5]
             str     r1, [r2]
             movs    r0, 0
                        ;; size=4 bbWeight=0.50 PerfScore 1.00
 G_M63854_IG18:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r3,r4,r5,r6,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M63854_IG19:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, gcvars, byref
+G_M63854_IG19:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, gcvars, byref
             ; gcrRegs +[r0]
-            ; byrRegs +[r4]
+            ; byrRegs +[r5]
             adds    r1, r1, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
-G_M63854_IG20:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, byref, isz
-            cmp     r3, r1
+G_M63854_IG20:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, byref, isz
+            cmp     r4, r1
             ble     SHORT G_M63854_IG21
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            lsls    r5, r1, 1
-            ldrh    r5, [r4+r5]
-            mov     r6, r5
+            lsl     r12, r1, 1
+            ldrh    r12, [r5+r12]
+            mov     r6, r12
             cmp     r6, 32
             beq     SHORT G_M63854_IG19
             cmp     r6, 9
             beq     SHORT G_M63854_IG19
-            cmp     r5, 61
+            cmp     r12, 61
             beq     SHORT G_M63854_IG19
-                      ;; size=26 bbWeight=4 PerfScore 52.00
+                     ;; size=32 bbWeight=4 PerfScore 52.00
 G_M63854_IG21:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref
-            ; byrRegs -[r4]
+            ; byrRegs -[r5]
             str     r1, [r2]
-            mov     r1, lr
-            mov     r2, r12
+            mov     r1, r3
+            mov     r2, lr
             ; byrRegs -[r2]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -193,7 +193,7 @@ G_M63854_IG23:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 230, prolog size 8, PerfScore 243.00, instruction count 97, allocated bytes for code 230 (MethodHash=532b0691) for method System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (Tier0-FullOpts)
+; Total bytes of code 258, prolog size 8, PerfScore 243.00, instruction count 97, allocated bytes for code 258 (MethodHash=532b0691) for method System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -205,7 +205,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 115 (0x00073) Actual length = 230 (0x0000e6)
+  Function Length   : 129 (0x00081) Actual length = 258 (0x000102)
   ---- Epilog scopes ----
   ---- Scope 0
...
  
  
librariestestsnotieredcompilation.run.linux.arm.Release.mch
-36 (-9.42%) : 5329.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
@@ -13,12 +13,12 @@
 ;  V02 arg2         [V02,T12] (  5,  3.50)   byref  ->   r4         single-def
 ;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->   r5        
 ;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->   r8        
-;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   r3         single-def
+;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   lr         single-def
 ;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   r2        
-;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   lr        
-;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->  r12        
-;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   r2        
-;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->  r12        
+;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   r9        
+;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   r3        
+;  V09 loc6         [V09,T06] (  7, 17   )     int  ->  r10        
+;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->   r3        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->   r5         "impSpillLclRefs"
 ;* V13 tmp2         [V13,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -28,21 +28,21 @@
 ;* V17 tmp6         [V17,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp7         [V18,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp8         [V19,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->  r12         "Inlining Arg"
+;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->   r2         "Inlining Arg"
 ;* V21 tmp10        [V21,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp11        [V22,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
 ;  V24 cse0         [V24,T09] (  4,  9   )     int  ->   r8         "CSE - aggressive"
 ;  V25 cse1         [V25,T02] ( 10, 32   )     int  ->   r6         hoist "CSE - aggressive"
 ;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->   r7         "CSE - aggressive"
-;  TEMP_01                                     ref  ->  [r11-0x1C]
+;  TEMP_01                                     ref  ->  [r11-0x24]
 ;
 ; Lcl frame size = 12
 
 G_M24207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r11,lr}
+            push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             sub     sp, 12
-            add     r11, sp, 32
+            add     r11, sp, 40
             movs    r3, 0
             str     r3, [sp+0x04]
             mov     r4, r2
@@ -56,8 +56,8 @@ G_M24207_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4},
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M24207_IG03:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r6, r5
-            beq     G_M24207_IG29
-                       ;; size=6 bbWeight=8 PerfScore 16.00
+            beq     SHORT G_M24207_IG29
+                       ;; size=4 bbWeight=8 PerfScore 16.00
 G_M24207_IG04:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r5, r6
             bhs     G_M24207_IG35
@@ -99,37 +99,37 @@ G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
             adds    r5, r5, 1
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            mov     r3, r5
+            mov     lr, r5
             mov     r2, r6
-            mov     lr, 0
+            mov     r9, 0
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r6, r5
             ble     SHORT G_M24207_IG17
             cmp     r5, r6
-            bhs     G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 92
+            bhs     SHORT G_M24207_IG35
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 92
             bne     SHORT G_M24207_IG12
-            mov     lr, 1
+            mov     r9, 1
             adds    r5, r5, 2
             b       SHORT G_M24207_IG11
-                      ;; size=32 bbWeight=4 PerfScore 44.00
+                     ;; size=24 bbWeight=4 PerfScore 44.00
 G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG15
                        ;; size=6 bbWeight=4 PerfScore 8.00
 G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG19
-            cmp     r12, 44
+            cmp     r3, 44
             beq     SHORT G_M24207_IG19
-            cmp     r12, 34
+            cmp     r3, 34
             beq     SHORT G_M24207_IG29
-            cmp     r12, 39
+            cmp     r3, 39
             bne     SHORT G_M24207_IG16
-                       ;; size=24 bbWeight=2 PerfScore 16.00
+                     ;; size=16 bbWeight=2 PerfScore 16.00
 G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             ; gcrRegs -[r0]
             ; byrRegs -[r1 r7]
@@ -138,7 +138,7 @@ G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG15:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r1 r7]
-            cmp     r12, r8
+            cmp     r3, r8
             beq     SHORT G_M24207_IG18
                        ;; size=4 bbWeight=2 PerfScore 4.00
 G_M24207_IG16:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
@@ -156,48 +156,48 @@ G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
 G_M24207_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG25
-            subs    r2, r5, 1
+            add     r10, r5, -1
             b       SHORT G_M24207_IG21
-                       ;; size=10 bbWeight=0.50 PerfScore 2.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG20:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            subs    r2, r2, 1
-                       ;; size=2 bbWeight=2 PerfScore 2.00
+            add     r10, r10, -1
+                       ;; size=4 bbWeight=2 PerfScore 2.00
 G_M24207_IG21:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r2, r3
+            cmp     r10, lr
             blt     SHORT G_M24207_IG22
-            cmp     r2, r6
+            cmp     r10, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r2, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsl     r2, r10, 1
+            ldrh    r2, [r7+r2]
+            cmp     r2, 32
             beq     SHORT G_M24207_IG20
-            cmp     r12, 9
+            cmp     r2, 9
             beq     SHORT G_M24207_IG20
-            cmp     r12, 13
+            cmp     r2, 13
             beq     SHORT G_M24207_IG20
-            cmp     r12, 10
+            cmp     r2, 10
             beq     SHORT G_M24207_IG20
-                      ;; size=40 bbWeight=4 PerfScore 56.00
+                     ;; size=30 bbWeight=4 PerfScore 56.00
 G_M24207_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             ; byrRegs -[r7]
-            adds    r2, r2, 1
+            add     r2, r10, 1
             b       SHORT G_M24207_IG28
-                        ;; size=4 bbWeight=0.50 PerfScore 1.00
+                        ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG23:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; byrRegs +[r7]
             cmp     r5, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 32
             beq     SHORT G_M24207_IG24
-            cmp     r12, 9
+            cmp     r3, 9
             beq     SHORT G_M24207_IG24
-            cmp     r12, 13
+            cmp     r3, 13
             beq     SHORT G_M24207_IG24
-            cmp     r12, 10
+            cmp     r3, 10
             bne     SHORT G_M24207_IG27
-                      ;; size=36 bbWeight=2 PerfScore 24.00
+                     ;; size=24 bbWeight=2 PerfScore 24.00
 G_M24207_IG24:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
             adds    r5, r5, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
@@ -210,14 +210,14 @@ G_M24207_IG26:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r
             b       SHORT G_M24207_IG28
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG27:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG28
-            cmp     r12, 44
+            cmp     r3, 44
             bne     SHORT G_M24207_IG29
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG28:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             str     r5, [r1]
-            cmp     r2, r3
+            cmp     r2, lr
             bne     SHORT G_M24207_IG31
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
@@ -229,15 +229,15 @@ G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG30:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[r4]
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            cmp     lr, 0
+            cmp     r9, 0
             bne     SHORT G_M24207_IG33
-            subs    r2, r2, r3
-            mov     r1, r3
+            sub     r2, r2, lr
+            mov     r1, lr
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -255,15 +255,15 @@ G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
             ; gcrRegs -[r1]
             ; byrRegs -[r0 r4]
             movs    r0, 1
-                        ;; size=40 bbWeight=0.50 PerfScore 7.50
+                       ;; size=42 bbWeight=0.50 PerfScore 7.50
 G_M24207_IG32:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            mov     r1, r3
+            mov     r1, lr
             mov     r3, r4
             ; byrRegs +[r3]
             movw    lr, 0xd1ff
@@ -272,7 +272,7 @@ G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 G_M24207_IG34:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,lr}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,lr}
...
  
-36 (-9.42%) : 49205.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
@@ -13,12 +13,12 @@
 ;  V02 arg2         [V02,T12] (  5,  3.50)   byref  ->   r4         single-def
 ;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->   r5        
 ;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->   r8        
-;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   r3         single-def
+;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   lr         single-def
 ;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   r2        
-;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   lr        
-;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->  r12        
-;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   r2        
-;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->  r12        
+;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   r9        
+;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   r3        
+;  V09 loc6         [V09,T06] (  7, 17   )     int  ->  r10        
+;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->   r3        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->   r5         "impSpillLclRefs"
 ;* V13 tmp2         [V13,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -28,21 +28,21 @@
 ;* V17 tmp6         [V17,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp7         [V18,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp8         [V19,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->  r12         "Inlining Arg"
+;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->   r2         "Inlining Arg"
 ;* V21 tmp10        [V21,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp11        [V22,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
 ;  V24 cse0         [V24,T09] (  4,  9   )     int  ->   r8         "CSE - aggressive"
 ;  V25 cse1         [V25,T02] ( 10, 32   )     int  ->   r6         hoist "CSE - aggressive"
 ;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->   r7         "CSE - aggressive"
-;  TEMP_01                                     ref  ->  [r11-0x1C]
+;  TEMP_01                                     ref  ->  [r11-0x24]
 ;
 ; Lcl frame size = 12
 
 G_M24207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r11,lr}
+            push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             sub     sp, 12
-            add     r11, sp, 32
+            add     r11, sp, 40
             movs    r3, 0
             str     r3, [sp+0x04]
             mov     r4, r2
@@ -56,8 +56,8 @@ G_M24207_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4},
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M24207_IG03:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r6, r5
-            beq     G_M24207_IG29
-                       ;; size=6 bbWeight=8 PerfScore 16.00
+            beq     SHORT G_M24207_IG29
+                       ;; size=4 bbWeight=8 PerfScore 16.00
 G_M24207_IG04:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r5, r6
             bhs     G_M24207_IG35
@@ -99,37 +99,37 @@ G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
             adds    r5, r5, 1
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            mov     r3, r5
+            mov     lr, r5
             mov     r2, r6
-            mov     lr, 0
+            mov     r9, 0
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r6, r5
             ble     SHORT G_M24207_IG17
             cmp     r5, r6
-            bhs     G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 92
+            bhs     SHORT G_M24207_IG35
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 92
             bne     SHORT G_M24207_IG12
-            mov     lr, 1
+            mov     r9, 1
             adds    r5, r5, 2
             b       SHORT G_M24207_IG11
-                      ;; size=32 bbWeight=4 PerfScore 44.00
+                     ;; size=24 bbWeight=4 PerfScore 44.00
 G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG15
                        ;; size=6 bbWeight=4 PerfScore 8.00
 G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG19
-            cmp     r12, 44
+            cmp     r3, 44
             beq     SHORT G_M24207_IG19
-            cmp     r12, 34
+            cmp     r3, 34
             beq     SHORT G_M24207_IG29
-            cmp     r12, 39
+            cmp     r3, 39
             bne     SHORT G_M24207_IG16
-                       ;; size=24 bbWeight=2 PerfScore 16.00
+                     ;; size=16 bbWeight=2 PerfScore 16.00
 G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             ; gcrRegs -[r0]
             ; byrRegs -[r1 r7]
@@ -138,7 +138,7 @@ G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG15:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r1 r7]
-            cmp     r12, r8
+            cmp     r3, r8
             beq     SHORT G_M24207_IG18
                        ;; size=4 bbWeight=2 PerfScore 4.00
 G_M24207_IG16:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
@@ -156,48 +156,48 @@ G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
 G_M24207_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG25
-            subs    r2, r5, 1
+            add     r10, r5, -1
             b       SHORT G_M24207_IG21
-                       ;; size=10 bbWeight=0.50 PerfScore 2.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG20:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            subs    r2, r2, 1
-                       ;; size=2 bbWeight=2 PerfScore 2.00
+            add     r10, r10, -1
+                       ;; size=4 bbWeight=2 PerfScore 2.00
 G_M24207_IG21:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r2, r3
+            cmp     r10, lr
             blt     SHORT G_M24207_IG22
-            cmp     r2, r6
+            cmp     r10, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r2, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsl     r2, r10, 1
+            ldrh    r2, [r7+r2]
+            cmp     r2, 32
             beq     SHORT G_M24207_IG20
-            cmp     r12, 9
+            cmp     r2, 9
             beq     SHORT G_M24207_IG20
-            cmp     r12, 13
+            cmp     r2, 13
             beq     SHORT G_M24207_IG20
-            cmp     r12, 10
+            cmp     r2, 10
             beq     SHORT G_M24207_IG20
-                      ;; size=40 bbWeight=4 PerfScore 56.00
+                     ;; size=30 bbWeight=4 PerfScore 56.00
 G_M24207_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             ; byrRegs -[r7]
-            adds    r2, r2, 1
+            add     r2, r10, 1
             b       SHORT G_M24207_IG28
-                        ;; size=4 bbWeight=0.50 PerfScore 1.00
+                        ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG23:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; byrRegs +[r7]
             cmp     r5, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 32
             beq     SHORT G_M24207_IG24
-            cmp     r12, 9
+            cmp     r3, 9
             beq     SHORT G_M24207_IG24
-            cmp     r12, 13
+            cmp     r3, 13
             beq     SHORT G_M24207_IG24
-            cmp     r12, 10
+            cmp     r3, 10
             bne     SHORT G_M24207_IG27
-                      ;; size=36 bbWeight=2 PerfScore 24.00
+                     ;; size=24 bbWeight=2 PerfScore 24.00
 G_M24207_IG24:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
             adds    r5, r5, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
@@ -210,14 +210,14 @@ G_M24207_IG26:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r
             b       SHORT G_M24207_IG28
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG27:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG28
-            cmp     r12, 44
+            cmp     r3, 44
             bne     SHORT G_M24207_IG29
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG28:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             str     r5, [r1]
-            cmp     r2, r3
+            cmp     r2, lr
             bne     SHORT G_M24207_IG31
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
@@ -229,15 +229,15 @@ G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG30:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[r4]
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            cmp     lr, 0
+            cmp     r9, 0
             bne     SHORT G_M24207_IG33
-            subs    r2, r2, r3
-            mov     r1, r3
+            sub     r2, r2, lr
+            mov     r1, lr
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -255,15 +255,15 @@ G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
             ; gcrRegs -[r1]
             ; byrRegs -[r0 r4]
             movs    r0, 1
-                        ;; size=40 bbWeight=0.50 PerfScore 7.50
+                       ;; size=42 bbWeight=0.50 PerfScore 7.50
 G_M24207_IG32:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            mov     r1, r3
+            mov     r1, lr
             mov     r3, r4
             ; byrRegs +[r3]
             movw    lr, 0xd1ff
@@ -272,7 +272,7 @@ G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 G_M24207_IG34:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,lr}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,lr}
...
  
-36 (-9.42%) : 43507.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
@@ -13,12 +13,12 @@
 ;  V02 arg2         [V02,T12] (  5,  3.50)   byref  ->   r4         single-def
 ;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->   r5        
 ;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->   r8        
-;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   r3         single-def
+;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   lr         single-def
 ;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   r2        
-;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   lr        
-;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->  r12        
-;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   r2        
-;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->  r12        
+;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   r9        
+;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   r3        
+;  V09 loc6         [V09,T06] (  7, 17   )     int  ->  r10        
+;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->   r3        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->   r5         "impSpillLclRefs"
 ;* V13 tmp2         [V13,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -28,21 +28,21 @@
 ;* V17 tmp6         [V17,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp7         [V18,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp8         [V19,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->  r12         "Inlining Arg"
+;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->   r2         "Inlining Arg"
 ;* V21 tmp10        [V21,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp11        [V22,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
 ;  V24 cse0         [V24,T09] (  4,  9   )     int  ->   r8         "CSE - aggressive"
 ;  V25 cse1         [V25,T02] ( 10, 32   )     int  ->   r6         hoist "CSE - aggressive"
 ;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->   r7         "CSE - aggressive"
-;  TEMP_01                                     ref  ->  [r11-0x1C]
+;  TEMP_01                                     ref  ->  [r11-0x24]
 ;
 ; Lcl frame size = 12
 
 G_M24207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r11,lr}
+            push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             sub     sp, 12
-            add     r11, sp, 32
+            add     r11, sp, 40
             movs    r3, 0
             str     r3, [sp+0x04]
             mov     r4, r2
@@ -56,8 +56,8 @@ G_M24207_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4},
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M24207_IG03:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r6, r5
-            beq     G_M24207_IG29
-                       ;; size=6 bbWeight=8 PerfScore 16.00
+            beq     SHORT G_M24207_IG29
+                       ;; size=4 bbWeight=8 PerfScore 16.00
 G_M24207_IG04:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r5, r6
             bhs     G_M24207_IG35
@@ -99,37 +99,37 @@ G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
             adds    r5, r5, 1
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            mov     r3, r5
+            mov     lr, r5
             mov     r2, r6
-            mov     lr, 0
+            mov     r9, 0
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r6, r5
             ble     SHORT G_M24207_IG17
             cmp     r5, r6
-            bhs     G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 92
+            bhs     SHORT G_M24207_IG35
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 92
             bne     SHORT G_M24207_IG12
-            mov     lr, 1
+            mov     r9, 1
             adds    r5, r5, 2
             b       SHORT G_M24207_IG11
-                      ;; size=32 bbWeight=4 PerfScore 44.00
+                     ;; size=24 bbWeight=4 PerfScore 44.00
 G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG15
                        ;; size=6 bbWeight=4 PerfScore 8.00
 G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG19
-            cmp     r12, 44
+            cmp     r3, 44
             beq     SHORT G_M24207_IG19
-            cmp     r12, 34
+            cmp     r3, 34
             beq     SHORT G_M24207_IG29
-            cmp     r12, 39
+            cmp     r3, 39
             bne     SHORT G_M24207_IG16
-                       ;; size=24 bbWeight=2 PerfScore 16.00
+                     ;; size=16 bbWeight=2 PerfScore 16.00
 G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             ; gcrRegs -[r0]
             ; byrRegs -[r1 r7]
@@ -138,7 +138,7 @@ G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG15:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r1 r7]
-            cmp     r12, r8
+            cmp     r3, r8
             beq     SHORT G_M24207_IG18
                        ;; size=4 bbWeight=2 PerfScore 4.00
 G_M24207_IG16:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
@@ -156,48 +156,48 @@ G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
 G_M24207_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG25
-            subs    r2, r5, 1
+            add     r10, r5, -1
             b       SHORT G_M24207_IG21
-                       ;; size=10 bbWeight=0.50 PerfScore 2.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG20:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            subs    r2, r2, 1
-                       ;; size=2 bbWeight=2 PerfScore 2.00
+            add     r10, r10, -1
+                       ;; size=4 bbWeight=2 PerfScore 2.00
 G_M24207_IG21:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r2, r3
+            cmp     r10, lr
             blt     SHORT G_M24207_IG22
-            cmp     r2, r6
+            cmp     r10, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r2, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsl     r2, r10, 1
+            ldrh    r2, [r7+r2]
+            cmp     r2, 32
             beq     SHORT G_M24207_IG20
-            cmp     r12, 9
+            cmp     r2, 9
             beq     SHORT G_M24207_IG20
-            cmp     r12, 13
+            cmp     r2, 13
             beq     SHORT G_M24207_IG20
-            cmp     r12, 10
+            cmp     r2, 10
             beq     SHORT G_M24207_IG20
-                      ;; size=40 bbWeight=4 PerfScore 56.00
+                     ;; size=30 bbWeight=4 PerfScore 56.00
 G_M24207_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             ; byrRegs -[r7]
-            adds    r2, r2, 1
+            add     r2, r10, 1
             b       SHORT G_M24207_IG28
-                        ;; size=4 bbWeight=0.50 PerfScore 1.00
+                        ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG23:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; byrRegs +[r7]
             cmp     r5, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 32
             beq     SHORT G_M24207_IG24
-            cmp     r12, 9
+            cmp     r3, 9
             beq     SHORT G_M24207_IG24
-            cmp     r12, 13
+            cmp     r3, 13
             beq     SHORT G_M24207_IG24
-            cmp     r12, 10
+            cmp     r3, 10
             bne     SHORT G_M24207_IG27
-                      ;; size=36 bbWeight=2 PerfScore 24.00
+                     ;; size=24 bbWeight=2 PerfScore 24.00
 G_M24207_IG24:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
             adds    r5, r5, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
@@ -210,14 +210,14 @@ G_M24207_IG26:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r
             b       SHORT G_M24207_IG28
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG27:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG28
-            cmp     r12, 44
+            cmp     r3, 44
             bne     SHORT G_M24207_IG29
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG28:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             str     r5, [r1]
-            cmp     r2, r3
+            cmp     r2, lr
             bne     SHORT G_M24207_IG31
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
@@ -229,15 +229,15 @@ G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG30:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[r4]
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            cmp     lr, 0
+            cmp     r9, 0
             bne     SHORT G_M24207_IG33
-            subs    r2, r2, r3
-            mov     r1, r3
+            sub     r2, r2, lr
+            mov     r1, lr
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -255,15 +255,15 @@ G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
             ; gcrRegs -[r1]
             ; byrRegs -[r0 r4]
             movs    r0, 1
-                        ;; size=40 bbWeight=0.50 PerfScore 7.50
+                       ;; size=42 bbWeight=0.50 PerfScore 7.50
 G_M24207_IG32:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            mov     r1, r3
+            mov     r1, lr
             mov     r3, r4
             ; byrRegs +[r3]
             movw    lr, 0xd1ff
@@ -272,7 +272,7 @@ G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 G_M24207_IG34:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,lr}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,lr}
...
  
+22 (+6.79%) : 93515.dasm - System.Data.SqlTypes.Tests.SqlStringSortingTest:CompareBinary(System.String,System.String):int (FullOpts)
@@ -15,7 +15,7 @@
 ;  V05 loc3         [V05,T08] (  7,  7.50)     int  ->   lr         single-def
 ;  V06 loc4         [V06,T07] (  7,  8.50)     int  ->  r12         single-def
 ;  V07 loc5         [V07,T00] ( 34, 56.66)     int  ->   r4        
-;  V08 loc6         [V08,T02] (  8, 13   )     int  ->  registers  
+;  V08 loc6         [V08,T02] (  8, 13   )     int  ->  r12        
 ;* V09 loc7         [V09,T19] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V11 tmp1         [V11,T18] (  3,  2   )     int  ->  r12        
@@ -28,7 +28,7 @@
 ;  V18 cse6         [V18,T09] (  7,  7.08)     int  ->   r1         "CSE - aggressive"
 ;  V19 cse7         [V19,T10] (  6,  7.04)     int  ->   r3         "CSE - aggressive"
 ;  V20 cse8         [V20,T05] (  3, 11.88)     int  ->   r0         "CSE - aggressive"
-;  V21 cse9         [V21,T12] (  3,  6   )     int  ->   r0         "CSE - aggressive"
+;  V21 cse9         [V21,T12] (  3,  6   )     int  ->  r12         "CSE - aggressive"
 ;  V22 cse10        [V22,T17] (  3,  3   )     int  ->   r5         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
@@ -104,10 +104,10 @@ G_M33870_IG06:        ; bbWeight=3.96, gcrefRegs=0041 {r0 r6}, byrefRegs=00A0 {r
             cmp     r4, r12
             blt     SHORT G_M33870_IG06
                        ;; size=22 bbWeight=3.96 PerfScore 35.64
-G_M33870_IG07:        ; bbWeight=1, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}, byref, isz
+G_M33870_IG07:        ; bbWeight=0.50, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r5 r7]
             b       SHORT G_M33870_IG09
-                      ;; size=2 bbWeight=1 PerfScore 1.00
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M33870_IG08:        ; bbWeight=0.04, gcrefRegs=0041 {r0 r6}, byrefRegs=0000 {}, byref, isz
             cmp     r4, r3
             bhs     SHORT G_M33870_IG24
@@ -149,21 +149,21 @@ G_M33870_IG10:        ; bbWeight=3.96, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, b
             ldrb    r3, [r7+r4]
             add     r0, r3, 8
             and     r0, r0, 31
-            lsl     r3, r2, r0
-            cmp     r3, 32
+            lsl     r12, r2, r0
+            cmp     r12, 32
             bne     SHORT G_M33870_IG14
             adds    r4, r4, 2
             cmp     r4, lr
             blt     SHORT G_M33870_IG10
-                      ;; size=32 bbWeight=3.96 PerfScore 51.48
+                      ;; size=34 bbWeight=3.96 PerfScore 51.48
 G_M33870_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r7]
             b       SHORT G_M33870_IG17
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M33870_IG12:        ; bbWeight=0.04, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r0]
-            adds    r3, r4, 1
-            cmp     r3, r1
+            add     r12, r4, 1
+            cmp     r12, r1
             bhs     SHORT G_M33870_IG24
             add     r7, r0, 8
             ; byrRegs +[r7]
@@ -174,41 +174,41 @@ G_M33870_IG12:        ; bbWeight=0.04, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, b
             ldrb    r2, [r7+r4]
             adds    r2, 8
             and     r2, r2, 31
-            lsls    r3, r2
-            cmp     r3, 32
+            lsl     r12, r3, r2
+            cmp     r12, 32
             bne     SHORT G_M33870_IG14
             adds    r4, r4, 2
             cmp     r4, lr
             blt     SHORT G_M33870_IG12
-                      ;; size=38 bbWeight=0.04 PerfScore 0.68
+                       ;; size=44 bbWeight=0.04 PerfScore 0.68
 G_M33870_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r0]
             ; byrRegs -[r7]
             b       SHORT G_M33870_IG17
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M33870_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            cmp     r3, 32
+            cmp     r12, 32
             blt     SHORT G_M33870_IG22
             b       SHORT G_M33870_IG20
-                      ;; size=6 bbWeight=0.50 PerfScore 1.50
+                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 G_M33870_IG15:        ; bbWeight=2, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r6]
-            adds    r0, r4, 1
-            cmp     r0, r3
+            add     r12, r4, 1
+            cmp     r12, r3
             bhs     SHORT G_M33870_IG24
             add     r5, r6, 8
             ; byrRegs +[r5]
-            ldrb    r0, [r5+r0]
+            ldrb    r0, [r5+r12]
             cmp     r4, r3
             bhs     SHORT G_M33870_IG24
             ldrb    r1, [r5+r4]
-            adds    r1, 8
-            and     r1, r1, 31
-            lsls    r0, r1
-            cmp     r0, 32
+            add     lr, r1, 8
+            and     r1, lr, 31
+            lsl     r12, r0, r1
+            cmp     r12, 32
             bne     SHORT G_M33870_IG19
             adds    r4, r4, 2
-                        ;; size=32 bbWeight=2 PerfScore 28.00
+                     ;; size=42 bbWeight=2 PerfScore 28.00
 G_M33870_IG16:        ; bbWeight=4, gcrefRegs=0040 {r6}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r5]
             cmp     r4, r2
@@ -222,9 +222,9 @@ G_M33870_IG18:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r4,r5,r6,r7,r8,r9,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M33870_IG19:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            cmp     r0, 32
+            cmp     r12, 32
             bgt     SHORT G_M33870_IG22
-                      ;; size=4 bbWeight=0.50 PerfScore 1.00
+                        ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M33870_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     r0, -1
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
@@ -245,7 +245,7 @@ G_M33870_IG24:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 324, prolog size 12, PerfScore 171.40, instruction count 133, allocated bytes for code 324 (MethodHash=b0cb7bb1) for method System.Data.SqlTypes.Tests.SqlStringSortingTest:CompareBinary(System.String,System.String):int (FullOpts)
+; Total bytes of code 346, prolog size 12, PerfScore 170.90, instruction count 133, allocated bytes for code 346 (MethodHash=b0cb7bb1) for method System.Data.SqlTypes.Tests.SqlStringSortingTest:CompareBinary(System.String,System.String):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -257,7 +257,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 162 (0x000a2) Actual length = 324 (0x000144)
+  Function Length   : 173 (0x000ad) Actual length = 346 (0x00015a)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+20 (+7.04%) : 3903.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
@@ -15,7 +15,7 @@
 ;  V04 loc2         [V04,T06] (  2,  4.50)     int  ->   r8         single-def
 ;  V05 loc3         [V05,T07] (  4,  3.50)     int  ->   r9         single-def
 ;  V06 loc4         [V06,T16] (  3,  1.50)     int  ->   r3         single-def
-;  V07 loc5         [V07,T01] ( 13, 22.50)  ushort  ->   r0        
+;  V07 loc5         [V07,T01] ( 13, 22.50)  ushort  ->  r10        
 ;* V08 loc6         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.String>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V10 tmp1         [V10,T08] (  3,  3   )     ref  ->   r1         class-hnd exact single-def "dup spill" <System.String>
@@ -26,11 +26,11 @@
 ;* V15 tmp6         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;  V16 cse0         [V16,T12] (  4,  2   )     ref  ->   r0         "CSE - aggressive"
 ;  V17 cse1         [V17,T15] (  3,  1.50)     ref  ->   r0         "CSE - moderate"
-;  V18 rat0         [V18,T02] (  3, 12   )     int  ->  r10         "ReplaceWithLclVar is creating a new local variable"
+;  V18 rat0         [V18,T02] (  3, 12   )     int  ->   lr         "ReplaceWithLclVar is creating a new local variable"
 ;  V19 rat1         [V19,T13] (  2,  2   )     int  ->   r0         "ReplaceWithLclVar is creating a new local variable"
 ;  V20 rat2         [V20,T14] (  2,  2   )     int  ->   r0         "ReplaceWithLclVar is creating a new local variable"
-;  V21 rat3         [V21,T10] (  3,  3   )     int  ->   lr         "ReplaceWithLclVar is creating a new local variable"
-;  V22 rat4         [V22,T11] (  3,  3   )     int  ->  r12         "ReplaceWithLclVar is creating a new local variable"
+;  V21 rat3         [V21,T10] (  3,  3   )     int  ->  r12         "ReplaceWithLclVar is creating a new local variable"
+;  V22 rat4         [V22,T11] (  3,  3   )     int  ->   r3         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 4
 
@@ -45,8 +45,8 @@ G_M53059_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M53059_IG02:        ; bbWeight=1, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, byref, isz
             ldrh    r0, [r4+0x34]
             cmp     r0, 2
-            beq     SHORT G_M53059_IG17
-                       ;; size=6 bbWeight=1 PerfScore 3.00
+            beq     G_M53059_IG17
+                       ;; size=8 bbWeight=1 PerfScore 3.00
 G_M53059_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {r4}, byrefRegs=0020 {r5}, byref
             ldr     r0, [r4+0x04]
             ; gcrRegs +[r0]
@@ -66,25 +66,25 @@ G_M53059_IG04:        ; bbWeight=4, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5},
             add     r0, r7, 8
             ; byrRegs +[r0]
             lsls    r1, r6, 1
-            ldrh    r0, [r0+r1]
-            ; byrRegs -[r0]
-            cmp     r0, 65
+            ldrh    r10, [r0+r1]
+            cmp     r10, 65
             blt     SHORT G_M53059_IG08
-                       ;; size=22 bbWeight=4 PerfScore 40.00
+                     ;; size=26 bbWeight=4 PerfScore 40.00
 G_M53059_IG05:        ; bbWeight=2, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r0, 97
+            ; byrRegs -[r0]
+            cmp     r10, 97
             blt     SHORT G_M53059_IG07
-            cmp     r0, 122
+            cmp     r10, 122
             ble     SHORT G_M53059_IG09
-                     ;; size=8 bbWeight=2 PerfScore 8.00
+                       ;; size=12 bbWeight=2 PerfScore 8.00
 G_M53059_IG06:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
             b       SHORT G_M53059_IG10
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M53059_IG07:        ; bbWeight=2, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r0, 90
+            cmp     r10, 90
             ble     SHORT G_M53059_IG09
-            sub     r10, r0, 91
-            cmp     r10, 4
+            sub     lr, r10, 91
+            cmp     lr, 4
             bhi     SHORT G_M53059_IG17
             movw    r0, LOW ADDRESS J_M53059_DS00
             movt    r0, HIGH ADDRESS J_M53059_DS00
@@ -95,37 +95,37 @@ G_M53059_IG07:        ; bbWeight=2, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5},
             DD      G_M53059_IG15
             DD      G_M53059_IG15
             DD      G_M53059_IG09
-            ldr     pc, [r0+4*r10]
-                       ;; size=26 bbWeight=2 PerfScore 16.00
+            ldr     pc, [r0+4*lr]
+                       ;; size=28 bbWeight=2 PerfScore 16.00
 G_M53059_IG08:        ; bbWeight=2, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r0, 48
+            cmp     r10, 48
             blt     SHORT G_M53059_IG12
-            cmp     r0, 57
+            cmp     r10, 57
             bgt     SHORT G_M53059_IG11
             cmp     r6, r9
             beq     SHORT G_M53059_IG17
-                      ;; size=12 bbWeight=2 PerfScore 12.00
+                     ;; size=16 bbWeight=2 PerfScore 12.00
 G_M53059_IG09:        ; bbWeight=4, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
             adds    r6, r6, 1
             b       SHORT G_M53059_IG04
                        ;; size=4 bbWeight=4 PerfScore 8.00
 G_M53059_IG10:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
-            subs    r0, 123
+            sub     r0, r10, 123
             cmp     r0, 3
             bhi     SHORT G_M53059_IG17
             b       SHORT G_M53059_IG15
-                      ;; size=8 bbWeight=0.50 PerfScore 2.00
+                        ;; size=10 bbWeight=0.50 PerfScore 2.00
 G_M53059_IG11:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
-            subs    r0, 58
+            sub     r0, r10, 58
             cmp     r0, 5
             bhi     SHORT G_M53059_IG17
             b       SHORT G_M53059_IG15
-                      ;; size=8 bbWeight=0.50 PerfScore 2.00
+                        ;; size=10 bbWeight=0.50 PerfScore 2.00
 G_M53059_IG12:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
-            cmp     r0, 0
+            cmp     r10, 0
             beq     SHORT G_M53059_IG15
-            sub     lr, r0, 9
-            cmp     lr, 4
+            sub     r12, r10, 9
+            cmp     r12, 4
             bhi     SHORT G_M53059_IG13
             movw    r0, LOW ADDRESS J_M53059_DS20
             movt    r0, HIGH ADDRESS J_M53059_DS20
@@ -136,11 +136,11 @@ G_M53059_IG12:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r
             DD      G_M53059_IG17
             DD      G_M53059_IG17
             DD      G_M53059_IG15
-            ldr     pc, [r0+4*lr]
-                       ;; size=26 bbWeight=0.50 PerfScore 4.00
+            ldr     pc, [r0+4*r12]
+                       ;; size=28 bbWeight=0.50 PerfScore 4.00
 G_M53059_IG13:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
-            sub     r12, r0, 32
-            cmp     r12, 15
+            sub     r3, r10, 32
+            cmp     r3, 15
             bhi     SHORT G_M53059_IG17
             movw    r0, LOW ADDRESS J_M53059_DS40
             movt    r0, HIGH ADDRESS J_M53059_DS40
@@ -162,8 +162,8 @@ G_M53059_IG13:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r
             DD      G_M53059_IG15
             DD      G_M53059_IG15
             DD      G_M53059_IG15
-            ldr     pc, [r0+4*r12]
-                       ;; size=22 bbWeight=0.50 PerfScore 3.00
+            ldr     pc, [r0+4*r3]
+                       ;; size=20 bbWeight=0.50 PerfScore 3.00
 G_M53059_IG14:        ; bbWeight=0.50, gcrefRegs=0090 {r4 r7}, byrefRegs=0020 {r5}, byref, isz
             mov     r0, r4
             ; gcrRegs +[r0]
@@ -260,7 +260,7 @@ RWD40   dd  G_M53059_IG15
            dd  G_M53059_IG15
 
 
-; Total bytes of code 284, prolog size 12, PerfScore 123.00, instruction count 105, allocated bytes for code 284 (MethodHash=4fac30bc) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
+; Total bytes of code 304, prolog size 12, PerfScore 123.00, instruction count 105, allocated bytes for code 304 (MethodHash=4fac30bc) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -272,7 +272,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 142 (0x0008e) Actual length = 284 (0x00011c)
+  Function Length   : 152 (0x00098) Actual length = 304 (0x000130)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+28 (+12.17%) : 147993.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
@@ -11,23 +11,23 @@
 ;  V00 arg0         [V00,T07] (  7, 12   )     ref  ->   r0         class-hnd single-def <System.String>
 ;  V01 arg1         [V01,T00] ( 33, 83.50)     int  ->   r1        
 ;  V02 arg2         [V02,T10] (  5,  3.50)   byref  ->   r2         single-def
-;  V03 loc0         [V03,T16] (  3,  2   )     int  ->   lr         single-def
-;  V04 loc1         [V04,T17] (  2,  1   )     int  ->  r12         single-def
+;  V03 loc0         [V03,T16] (  3,  2   )     int  ->   r3         single-def
+;  V04 loc1         [V04,T17] (  2,  1   )     int  ->   lr         single-def
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06,T11] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V07 tmp2         [V07,T03] (  3, 24   )  ushort  ->   lr         "Inlining Arg"
+;  V07 tmp2         [V07,T03] (  3, 24   )  ushort  ->   r3         "Inlining Arg"
 ;* V08 tmp3         [V08,T12] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V09 tmp4         [V09,T04] (  3, 24   )  ushort  ->   r4         "Inlining Arg"
+;  V09 tmp4         [V09,T04] (  3, 24   )  ushort  ->   lr         "Inlining Arg"
 ;* V10 tmp5         [V10,T18] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V11 tmp6         [V11,T15] (  3,  3   )  ushort  ->   r5         "Inlining Arg"
+;  V11 tmp6         [V11,T15] (  3,  3   )  ushort  ->  r12         "Inlining Arg"
 ;* V12 tmp7         [V12,T13] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V13 tmp8         [V13,T05] (  3, 24   )  ushort  ->   r5         "Inlining Arg"
+;  V13 tmp8         [V13,T05] (  3, 24   )  ushort  ->  r12         "Inlining Arg"
 ;* V14 tmp9         [V14,T14] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V15 tmp10        [V15,T06] (  3, 24   )  ushort  ->   r6         "Inlining Arg"
-;  V16 cse0         [V16,T09] (  3, 12   )     int  ->   r5         "CSE - aggressive"
+;  V16 cse0         [V16,T09] (  3, 12   )     int  ->  r12         "CSE - aggressive"
 ;  V17 cse1         [V17,T08] (  5, 13   )     int  ->  registers   multi-def "CSE - aggressive"
-;  V18 cse2         [V18,T01] ( 13, 46.50)     int  ->   r3         hoist "CSE - aggressive"
-;  V19 cse3         [V19,T02] (  9, 25.50)   byref  ->  registers   multi-def "CSE - aggressive"
+;  V18 cse2         [V18,T01] ( 13, 46.50)     int  ->   r4         hoist "CSE - aggressive"
+;  V19 cse3         [V19,T02] (  9, 25.50)   byref  ->   r5         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 4
 
@@ -38,57 +38,57 @@ G_M63854_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M63854_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r2]
-            ldr     r3, [r0+0x04]
+            ldr     r4, [r0+0x04]
             b       SHORT G_M63854_IG04
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M63854_IG03:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref
             adds    r1, r1, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
 G_M63854_IG04:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            cmp     r3, r1
+            cmp     r4, r1
             ble     SHORT G_M63854_IG06
                        ;; size=4 bbWeight=8 PerfScore 16.00
 G_M63854_IG05:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            add     lr, r0, 8
-            ; byrRegs +[lr]
-            lsl     r12, r1, 1
-            ldrh    lr, [lr+r12]
-            ; byrRegs -[lr]
-            cmp     lr, 32
+            add     r5, r0, 8
+            ; byrRegs +[r5]
+            lsls    r3, r1, 1
+            ldrh    r3, [r5+r3]
+            cmp     r3, 32
             beq     SHORT G_M63854_IG03
-            cmp     lr, 9
+            cmp     r3, 9
             beq     SHORT G_M63854_IG03
-                       ;; size=28 bbWeight=4 PerfScore 36.00
+                     ;; size=20 bbWeight=4 PerfScore 36.00
 G_M63854_IG06:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            mov     lr, r1
+            ; byrRegs -[r5]
+            mov     r3, r1
             b       SHORT G_M63854_IG08
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M63854_IG07:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref
             adds    r1, r1, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
 G_M63854_IG08:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            cmp     r3, r1
+            cmp     r4, r1
             ble     SHORT G_M63854_IG10
                        ;; size=4 bbWeight=8 PerfScore 16.00
 G_M63854_IG09:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            add     r12, r0, 8
-            ; byrRegs +[r12]
-            lsls    r4, r1, 1
-            ldrh    r4, [r12+r4]
-            cmp     r4, 61
+            add     r5, r0, 8
+            ; byrRegs +[r5]
+            lsl     lr, r1, 1
+            ldrh    lr, [r5+lr]
+            cmp     lr, 61
             beq     SHORT G_M63854_IG10
-            cmp     r4, 32
+            cmp     lr, 32
             beq     SHORT G_M63854_IG10
-            cmp     r4, 9
+            cmp     lr, 9
             bne     SHORT G_M63854_IG07
-                        ;; size=26 bbWeight=4 PerfScore 44.00
+                     ;; size=34 bbWeight=4 PerfScore 44.00
 G_M63854_IG10:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref, isz
-            ; byrRegs -[r12]
-            cmp     r3, r1
+            ; byrRegs -[r5]
+            cmp     r4, r1
             bne     SHORT G_M63854_IG13
                        ;; size=4 bbWeight=4 PerfScore 8.00
 G_M63854_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {r2}, byref
@@ -101,78 +101,78 @@ G_M63854_IG12:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M63854_IG13:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, gcvars, byref, isz
             ; gcrRegs +[r0]
-            sub     r12, r1, lr
-            cmp     r1, r3
+            sub     lr, r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            add     r4, r0, 8
-            ; byrRegs +[r4]
-            lsls    r5, r1, 1
-            ldrh    r5, [r4+r5]
-            cmp     r5, 32
+            add     r5, r0, 8
+            ; byrRegs +[r5]
+            lsl     r12, r1, 1
+            ldrh    r12, [r5+r12]
+            cmp     r12, 32
             beq     SHORT G_M63854_IG15
-            cmp     r5, 9
+            cmp     r12, 9
             bne     SHORT G_M63854_IG20
             b       SHORT G_M63854_IG15
-                      ;; size=26 bbWeight=0.50 PerfScore 5.50
-G_M63854_IG14:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, byref
+                       ;; size=34 bbWeight=0.50 PerfScore 5.50
+G_M63854_IG14:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, byref
             adds    r1, r1, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
-G_M63854_IG15:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, byref, isz
-            cmp     r3, r1
+G_M63854_IG15:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, byref, isz
+            cmp     r4, r1
             ble     SHORT G_M63854_IG16
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            lsls    r5, r1, 1
-            ldrh    r5, [r4+r5]
-            cmp     r5, 32
+            lsl     r12, r1, 1
+            ldrh    r12, [r5+r12]
+            cmp     r12, 32
             beq     SHORT G_M63854_IG14
-            cmp     r5, 9
+            cmp     r12, 9
             beq     SHORT G_M63854_IG14
-                     ;; size=20 bbWeight=4 PerfScore 40.00
-G_M63854_IG16:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, byref, isz
-            cmp     r3, r1
+                       ;; size=28 bbWeight=4 PerfScore 40.00
+G_M63854_IG16:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, byref, isz
+            cmp     r4, r1
             beq     SHORT G_M63854_IG17
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            lsls    r5, r1, 1
-            ldrh    r5, [r4+r5]
-            cmp     r5, 61
+            lsl     r12, r1, 1
+            ldrh    r12, [r5+r12]
+            cmp     r12, 61
             beq     SHORT G_M63854_IG20
-                       ;; size=16 bbWeight=0.50 PerfScore 4.00
+                       ;; size=22 bbWeight=0.50 PerfScore 4.00
 G_M63854_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {r2}, byref
             ; gcrRegs -[r0]
-            ; byrRegs -[r4]
+            ; byrRegs -[r5]
             str     r1, [r2]
             movs    r0, 0
                        ;; size=4 bbWeight=0.50 PerfScore 1.00
 G_M63854_IG18:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r3,r4,r5,r6,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M63854_IG19:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, gcvars, byref
+G_M63854_IG19:        ; bbWeight=2, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, gcvars, byref
             ; gcrRegs +[r0]
-            ; byrRegs +[r4]
+            ; byrRegs +[r5]
             adds    r1, r1, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
-G_M63854_IG20:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0014 {r2 r4}, byref, isz
-            cmp     r3, r1
+G_M63854_IG20:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0024 {r2 r5}, byref, isz
+            cmp     r4, r1
             ble     SHORT G_M63854_IG21
-            cmp     r1, r3
+            cmp     r1, r4
             bhs     SHORT G_M63854_IG23
-            lsls    r5, r1, 1
-            ldrh    r5, [r4+r5]
-            mov     r6, r5
+            lsl     r12, r1, 1
+            ldrh    r12, [r5+r12]
+            mov     r6, r12
             cmp     r6, 32
             beq     SHORT G_M63854_IG19
             cmp     r6, 9
             beq     SHORT G_M63854_IG19
-            cmp     r5, 61
+            cmp     r12, 61
             beq     SHORT G_M63854_IG19
-                      ;; size=26 bbWeight=4 PerfScore 52.00
+                     ;; size=32 bbWeight=4 PerfScore 52.00
 G_M63854_IG21:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0004 {r2}, byref
-            ; byrRegs -[r4]
+            ; byrRegs -[r5]
             str     r1, [r2]
-            mov     r1, lr
-            mov     r2, r12
+            mov     r1, r3
+            mov     r2, lr
             ; byrRegs -[r2]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -193,7 +193,7 @@ G_M63854_IG23:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 230, prolog size 8, PerfScore 243.00, instruction count 97, allocated bytes for code 230 (MethodHash=532b0691) for method System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
+; Total bytes of code 258, prolog size 8, PerfScore 243.00, instruction count 97, allocated bytes for code 258 (MethodHash=532b0691) for method System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -205,7 +205,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 115 (0x00073) Actual length = 230 (0x0000e6)
+  Function Length   : 129 (0x00081) Actual length = 258 (0x000102)
   ---- Epilog scopes ----
   ---- Scope 0
...
  
  
realworld.run.linux.arm.checked.mch
-36 (-9.42%) : 23048.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
@@ -13,12 +13,12 @@
 ;  V02 arg2         [V02,T12] (  5,  3.50)   byref  ->   r4         single-def
 ;  V03 loc0         [V03,T00] ( 26, 69   )     int  ->   r5        
 ;  V04 loc1         [V04,T10] (  5,  7.50)  ushort  ->   r8        
-;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   r3         single-def
+;  V05 loc2         [V05,T11] (  6,  6.50)     int  ->   lr         single-def
 ;  V06 loc3         [V06,T16] (  7,  3.50)     int  ->   r2        
-;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   lr        
-;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->  r12        
-;  V09 loc6         [V09,T06] (  7, 17   )     int  ->   r2        
-;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->  r12        
+;  V07 loc4         [V07,T14] (  3,  5   )   ubyte  ->   r9        
+;  V08 loc5         [V08,T04] (  7, 18   )  ushort  ->   r3        
+;  V09 loc6         [V09,T06] (  7, 17   )     int  ->  r10        
+;  V10 loc7         [V10,T07] (  7, 11   )  ushort  ->   r3        
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V12 tmp1         [V12,T18] (  2,  2   )     int  ->   r5         "impSpillLclRefs"
 ;* V13 tmp2         [V13,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -28,21 +28,21 @@
 ;* V17 tmp6         [V17,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp7         [V18,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp8         [V19,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->  r12         "Inlining Arg"
+;  V20 tmp9         [V20,T01] (  5, 40   )  ushort  ->   r2         "Inlining Arg"
 ;* V21 tmp10        [V21,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V22 tmp11        [V22,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "Single return block return value"
 ;  V24 cse0         [V24,T09] (  4,  9   )     int  ->   r8         "CSE - aggressive"
 ;  V25 cse1         [V25,T02] ( 10, 32   )     int  ->   r6         hoist "CSE - aggressive"
 ;  V26 cse2         [V26,T05] (  5, 18   )   byref  ->   r7         "CSE - aggressive"
-;  TEMP_01                                     ref  ->  [r11-0x1C]
+;  TEMP_01                                     ref  ->  [r11-0x24]
 ;
 ; Lcl frame size = 12
 
 G_M24207_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r11,lr}
+            push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             sub     sp, 12
-            add     r11, sp, 32
+            add     r11, sp, 40
             movs    r3, 0
             str     r3, [sp+0x04]
             mov     r4, r2
@@ -56,8 +56,8 @@ G_M24207_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4},
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M24207_IG03:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r6, r5
-            beq     G_M24207_IG29
-                       ;; size=6 bbWeight=8 PerfScore 16.00
+            beq     SHORT G_M24207_IG29
+                       ;; size=4 bbWeight=8 PerfScore 16.00
 G_M24207_IG04:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             cmp     r5, r6
             bhs     G_M24207_IG35
@@ -99,37 +99,37 @@ G_M24207_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
             adds    r5, r5, 1
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG10:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            mov     r3, r5
+            mov     lr, r5
             mov     r2, r6
-            mov     lr, 0
+            mov     r9, 0
                        ;; size=8 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG11:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r6, r5
             ble     SHORT G_M24207_IG17
             cmp     r5, r6
-            bhs     G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 92
+            bhs     SHORT G_M24207_IG35
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 92
             bne     SHORT G_M24207_IG12
-            mov     lr, 1
+            mov     r9, 1
             adds    r5, r5, 2
             b       SHORT G_M24207_IG11
-                      ;; size=32 bbWeight=4 PerfScore 44.00
+                     ;; size=24 bbWeight=4 PerfScore 44.00
 G_M24207_IG12:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG15
                        ;; size=6 bbWeight=4 PerfScore 8.00
 G_M24207_IG13:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG19
-            cmp     r12, 44
+            cmp     r3, 44
             beq     SHORT G_M24207_IG19
-            cmp     r12, 34
+            cmp     r3, 34
             beq     SHORT G_M24207_IG29
-            cmp     r12, 39
+            cmp     r3, 39
             bne     SHORT G_M24207_IG16
-                       ;; size=24 bbWeight=2 PerfScore 16.00
+                     ;; size=16 bbWeight=2 PerfScore 16.00
 G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             ; gcrRegs -[r0]
             ; byrRegs -[r1 r7]
@@ -138,7 +138,7 @@ G_M24207_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG15:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r1 r7]
-            cmp     r12, r8
+            cmp     r3, r8
             beq     SHORT G_M24207_IG18
                        ;; size=4 bbWeight=2 PerfScore 4.00
 G_M24207_IG16:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
@@ -156,48 +156,48 @@ G_M24207_IG18:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r
 G_M24207_IG19:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             cmp     r8, 0
             bne     SHORT G_M24207_IG25
-            subs    r2, r5, 1
+            add     r10, r5, -1
             b       SHORT G_M24207_IG21
-                       ;; size=10 bbWeight=0.50 PerfScore 2.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG20:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
-            subs    r2, r2, 1
-                       ;; size=2 bbWeight=2 PerfScore 2.00
+            add     r10, r10, -1
+                       ;; size=4 bbWeight=2 PerfScore 2.00
 G_M24207_IG21:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
-            cmp     r2, r3
+            cmp     r10, lr
             blt     SHORT G_M24207_IG22
-            cmp     r2, r6
+            cmp     r10, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r2, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsl     r2, r10, 1
+            ldrh    r2, [r7+r2]
+            cmp     r2, 32
             beq     SHORT G_M24207_IG20
-            cmp     r12, 9
+            cmp     r2, 9
             beq     SHORT G_M24207_IG20
-            cmp     r12, 13
+            cmp     r2, 13
             beq     SHORT G_M24207_IG20
-            cmp     r12, 10
+            cmp     r2, 10
             beq     SHORT G_M24207_IG20
-                      ;; size=40 bbWeight=4 PerfScore 56.00
+                     ;; size=30 bbWeight=4 PerfScore 56.00
 G_M24207_IG22:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             ; byrRegs -[r7]
-            adds    r2, r2, 1
+            add     r2, r10, 1
             b       SHORT G_M24207_IG28
-                        ;; size=4 bbWeight=0.50 PerfScore 1.00
+                        ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG23:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref, isz
             ; byrRegs +[r7]
             cmp     r5, r6
             bhs     SHORT G_M24207_IG35
-            lsl     r12, r5, 1
-            ldrh    r12, [r7+r12]
-            cmp     r12, 32
+            lsls    r3, r5, 1
+            ldrh    r3, [r7+r3]
+            cmp     r3, 32
             beq     SHORT G_M24207_IG24
-            cmp     r12, 9
+            cmp     r3, 9
             beq     SHORT G_M24207_IG24
-            cmp     r12, 13
+            cmp     r3, 13
             beq     SHORT G_M24207_IG24
-            cmp     r12, 10
+            cmp     r3, 10
             bne     SHORT G_M24207_IG27
-                      ;; size=36 bbWeight=2 PerfScore 24.00
+                     ;; size=24 bbWeight=2 PerfScore 24.00
 G_M24207_IG24:        ; bbWeight=2, gcrefRegs=0001 {r0}, byrefRegs=0092 {r1 r4 r7}, byref
             adds    r5, r5, 1
                        ;; size=2 bbWeight=2 PerfScore 2.00
@@ -210,14 +210,14 @@ G_M24207_IG26:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r
             b       SHORT G_M24207_IG28
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M24207_IG27:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
-            cmp     r12, 61
+            cmp     r3, 61
             beq     SHORT G_M24207_IG28
-            cmp     r12, 44
+            cmp     r3, 44
             bne     SHORT G_M24207_IG29
-                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M24207_IG28:        ; bbWeight=0.50, gcrefRegs=0001 {r0}, byrefRegs=0012 {r1 r4}, byref, isz
             str     r5, [r1]
-            cmp     r2, r3
+            cmp     r2, lr
             bne     SHORT G_M24207_IG31
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
 G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref
@@ -229,15 +229,15 @@ G_M24207_IG29:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, b
 G_M24207_IG30:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; byrRegs -[r4]
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref, isz
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            cmp     lr, 0
+            cmp     r9, 0
             bne     SHORT G_M24207_IG33
-            subs    r2, r2, r3
-            mov     r1, r3
+            sub     r2, r2, lr
+            mov     r1, lr
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
@@ -255,15 +255,15 @@ G_M24207_IG31:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
             ; gcrRegs -[r1]
             ; byrRegs -[r0 r4]
             movs    r0, 1
-                        ;; size=40 bbWeight=0.50 PerfScore 7.50
+                       ;; size=42 bbWeight=0.50 PerfScore 7.50
 G_M24207_IG32:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                         ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0}, byrefRegs=0010 {r4}, gcvars, byref
             ; gcrRegs +[r0]
             ; byrRegs +[r4]
-            mov     r1, r3
+            mov     r1, lr
             mov     r3, r4
             ; byrRegs +[r3]
             movw    lr, 0xd1ff
@@ -272,7 +272,7 @@ G_M24207_IG33:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0001 {r0},
                        ;; size=16 bbWeight=0.50 PerfScore 2.50
 G_M24207_IG34:        ; bbWeight=0.50, epilog, nogc, extend
             add     sp, 12
-            pop     {r4,r5,r6,r7,r8,r11,lr}
+            pop     {r4,r5,r6,r7,r8,r9,r10,r11,lr}
...
  
-40 (-4.11%) : 36707.dasm - System.RuntimeType:ValidateGenericArguments(System.Reflection.MemberInfo,System.RuntimeType[],System.Exception) (FullOpts)
@@ -46,11 +46,11 @@
 ;* V35 tmp22        [V35    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.RuntimeTypeHandle>
 ;* V36 tmp23        [V36    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.RuntimeTypeHandle>
 ;  V37 tmp24        [V37,T03] (  6, 12   )     ref  ->   r0         class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-;  V38 tmp25        [V38,T29] (  3,  0   )     ref  ->   r8         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V38 tmp25        [V38,T29] (  3,  0   )     ref  ->   r9         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;* V39 tmp26        [V39    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.RuntimeTypeHandle>
 ;* V40 tmp27        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.RuntimeType>
-;  V41 tmp28        [V41,T04] (  6, 12   )     ref  ->   r8         class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-;  V42 tmp29        [V42,T30] (  3,  0   )     ref  ->   r9         class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V41 tmp28        [V41,T04] (  6, 12   )     ref  ->   r9         class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
+;  V42 tmp29        [V42,T30] (  3,  0   )     ref  ->   r8         class-hnd exact "NewObj constructor temp" <<unknown class>>
 ;  V43 FramesRoot   [V43,T12] (  5,  4   )     int  ->   r5         "Pinvoke FrameListRoot"
 ;  V44 PInvokeFrame [V44    ] (  6,  4.50)  struct (36) [sp+0x04]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
 ;  V45 tmp32        [V45    ] ( 10, 17   )     ref  ->  [sp+0x4C]  do-not-enreg[X] addr-exposed "field V09.m_type (fldOffset=0x0)" P-DEP
@@ -109,7 +109,7 @@ G_M20848_IG03:        ; bbWeight=0.50, gcrefRegs=01C0 {r6 r7 r8}, byrefRegs=0000
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             cmp     r0, r3
-            bne     G_M20848_IG30
+            bne     G_M20848_IG26
             mov     r0, r8
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
@@ -144,7 +144,7 @@ G_M20848_IG05:        ; bbWeight=0.25, gcrefRegs=0191 {r0 r4 r7 r8}, byrefRegs=0
             ; GC ptr vars +{V01}
             str     r4, [sp+0x30]  // [V03 loc0]
             ; GC ptr vars +{V03}
-            bne     G_M20848_IG31
+            bne     G_M20848_IG27
                      ;; size=20 bbWeight=0.25 PerfScore 1.75
 G_M20848_IG06:        ; bbWeight=0.50, gcVars=0000000000002440 {V01 V02 V03}, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r4 r7]
@@ -226,20 +226,16 @@ G_M20848_IG12:        ; bbWeight=0.25, gcVars=0000000000002000 {V02}, gcrefRegs=
 G_M20848_IG13:        ; bbWeight=0.50, gcVars=0000000000002400 {V02 V03}, gcrefRegs=01D0 {r4 r6 r7 r8}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[r6]
             ; GC ptr vars -{V01}
-            str     r8, [sp+0x3C]    // [V00 arg0]
-            ; GC ptr vars +{V00}
             ldr     r1, [r8+0x1C]
             ; gcrRegs +[r1]
-            ldr     r8, [sp+0x3C] // [V00 arg0]
-                       ;; size=12 bbWeight=0.50 PerfScore 1.50
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M20848_IG14:        ; bbWeight=0.50, gcrefRegs=01D2 {r1 r4 r6 r7 r8}, byrefRegs=0000 {}, byref, isz
-            ; GC ptr vars -{V00}
             mov     r0, r1
             ; gcrRegs +[r0]
             cmp     r0, 0
             ldr     r3, [sp+0x30]  // [V03 loc0]
             ; gcrRegs +[r3]
-            beq     SHORT G_M20848_IG23
+            beq     SHORT G_M20848_IG21
                       ;; size=8 bbWeight=0.50 PerfScore 2.00
 G_M20848_IG15:        ; bbWeight=0.25, gcVars=0000000000002000 {V02}, gcrefRegs=01D3 {r0 r1 r4 r6 r7 r8}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r3]
@@ -248,7 +244,7 @@ G_M20848_IG15:        ; bbWeight=0.25, gcVars=0000000000002000 {V02}, gcrefRegs=
             movw    r2, 0xd1ff
             movt    r2, 0xd1ff
             cmp     r3, r2
-            bne     G_M20848_IG32
+            bne     G_M20848_IG28
                        ;; size=16 bbWeight=0.25 PerfScore 1.25
 G_M20848_IG16:        ; bbWeight=0.50, gcrefRegs=01D1 {r0 r4 r6 r7 r8}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r1]
@@ -275,12 +271,12 @@ G_M20848_IG17:        ; bbWeight=1, gcVars=0000000000002040 {V01 V02}, gcrefRegs
             ldr     r12, [r7+0x04]
             str     r12, [sp+0x40] // [V55 cse0]
             cmp     r12, 0
-            ble     SHORT G_M20848_IG25
+            ble     SHORT G_M20848_IG23
             cmp     r4, 0
-            beq     SHORT G_M20848_IG24
+            beq     SHORT G_M20848_IG22
             ldr     r0, [r4+0x04]
             cmp     r0, r12
-            blt     SHORT G_M20848_IG22
+            blt     SHORT G_M20848_IG20
                       ;; size=30 bbWeight=1 PerfScore 11.00
 G_M20848_IG18:        ; bbWeight=3.96, gcVars=0000000000002000 {V02}, gcrefRegs=01D8 {r3 r4 r6 r7 r8}, byrefRegs=0000 {}, gcvars, byref, isz
             ; GC ptr vars -{V01}
@@ -301,72 +297,55 @@ G_M20848_IG18:        ; bbWeight=3.96, gcVars=0000000000002000 {V02}, gcrefRegs=
             ldr     r0, [sp+0x4C]  // [V45 tmp32]
             ; gcrRegs +[r0]
             cmp     r0, 0
-            str     r8, [sp+0x3C]   // [V00 arg0]
-            ; GC ptr vars +{V00}
-            beq     G_M20848_IG33
-            ldrsb   r8, [r2]
-            ; gcrRegs -[r8]
+            beq     SHORT G_M20848_IG29
+            ldrsb   r9, [r2]
             str     r2, [sp+0x2C]  // [V11 loc8]
             ; GC ptr vars +{V11}
             str     r2, [sp+0x4C]  // [V45 tmp32]
-            ldr     r8, [sp+0x4C]   // [V45 tmp32]
-            ; gcrRegs +[r8]
-            cmp     r8, 0
-            beq     G_M20848_IG34
+            ldr     r9, [sp+0x4C]   // [V45 tmp32]
+            ; gcrRegs +[r9]
+            cmp     r9, 0
+            beq     G_M20848_IG30
             str     r3, [sp+0x30] // [V03 loc0]
             ; GC ptr vars +{V03}
             mov     r1, r3
             mov     r2, r6
-            mov     r3, r8
-            movw    r8, 0xd1ff
-            ; gcrRegs -[r8]
-            movt    r8, 0xd1ff
-            ldr     r8, [r8]
-            blx     r8     // System.RuntimeTypeHandle:SatisfiesConstraints(System.RuntimeType,System.RuntimeType[],System.RuntimeType[],System.RuntimeType):ubyte
+            mov     r3, r9
+            movw    r9, 0xd1ff
+            ; gcrRegs -[r9]
+            movt    r9, 0xd1ff
+            ldr     r9, [r9]
+            blx     r9     // System.RuntimeTypeHandle:SatisfiesConstraints(System.RuntimeType,System.RuntimeType[],System.RuntimeType[],System.RuntimeType):ubyte
             ; gcrRegs -[r0-r3]
             cmp     r0, 0
-            beq     SHORT G_M20848_IG21
-            ldr     r8, [sp+0x48]  // [V10 loc7]
-            add     r8, r8, 1
+            beq     G_M20848_IG31
+            ldr     r9, [sp+0x48]  // [V10 loc7]
+            add     r9, r9, 1
             ldr     lr, [sp+0x40] // [V55 cse0]
-            cmp     lr, r8
+            cmp     lr, r9
+            mov     lr, r9
             ldr     r3, [sp+0x30]    // [V03 loc0]
             ; gcrRegs +[r3]
-            bgt     SHORT G_M20848_IG20
-                       ;; size=104 bbWeight=3.96 PerfScore 138.60
+            bgt     SHORT G_M20848_IG18
+                       ;; size=102 bbWeight=3.96 PerfScore 138.60
 G_M20848_IG19:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[r3-r4 r6-r7]
-            ; GC ptr vars -{V00 V02 V03 V11 V12}
-            b       SHORT G_M20848_IG25
-                       ;; size=2 bbWeight=1 PerfScore 1.00
-G_M20848_IG20:        ; bbWeight=1.98, gcVars=0000000000002080 {V00 V02}, gcrefRegs=00D8 {r3 r4 r6 r7}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[r3-r4 r6-r7]
-            ; GC ptr vars +{V00 V02}
-            mov     lr, r8
-            ldr     r8, [sp+0x3C]  // [V00 arg0]
-            ; gcrRegs +[r8]
-            b       SHORT G_M20848_IG18
-                       ;; size=8 bbWeight=1.98 PerfScore 5.94
-G_M20848_IG21:        ; bbWeight=1.98, gcVars=0000000000002086 {V00 V02 V11 V12}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r3-r4 r6-r8]
-            ; GC ptr vars +{V01 V11 V12}
-            ldr     r9, [sp+0x34]  // [V02 arg2]
-            ; gcrRegs +[r9]
-            b       SHORT G_M20848_IG35
-                       ;; size=6 bbWeight=1.98 PerfScore 3.96
-G_M20848_IG22:        ; bbWeight=0.50, gcVars=0000000000002000 {V02}, gcrefRegs=01D8 {r3 r4 r6 r7 r8}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[r9] +[r3-r4 r6-r8]
-            ; GC ptr vars -{V00 V01 V02 V11 V12}
+            ; GC ptr vars -{V02 V03 V11 V12}
+            b       SHORT G_M20848_IG23
+                       ;; size=2 bbWeight=1 PerfScore 1.00
+G_M20848_IG20:        ; bbWeight=0.50, gcVars=0000000000002000 {V02}, gcrefRegs=01D8 {r3 r4 r6 r7 r8}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs +[r3-r4 r6-r8]
+            ; GC ptr vars +{V02}
             ldr     r12, [sp+0x40] // [V55 cse0]
-            b       SHORT G_M20848_IG24
+            b       SHORT G_M20848_IG22
                      ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M20848_IG23:        ; bbWeight=0.25, gcrefRegs=01D8 {r3 r4 r6 r7 r8}, byrefRegs=0000 {}, byref, isz
+G_M20848_IG21:        ; bbWeight=0.25, gcrefRegs=01D8 {r3 r4 r6 r7 r8}, byrefRegs=0000 {}, byref, isz
             str     r7, [sp+0x38]   // [V01 arg1]
             ; GC ptr vars +{V01}
             b       SHORT G_M20848_IG17
                        ;; size=4 bbWeight=0.25 PerfScore 0.50
-G_M20848_IG24:        ; bbWeight=0.04, gcrefRegs=01D8 {r3 r4 r6 r7 r8}, byrefRegs=0000 {}, byref, isz
-            ; GC ptr vars -{V01} +{V02}
+G_M20848_IG22:        ; bbWeight=0.04, gcrefRegs=01D8 {r3 r4 r6 r7 r8}, byrefRegs=0000 {}, byref, isz
+            ; GC ptr vars -{V01}
             add     r0, r7, 8
             ; byrRegs +[r0]
             lsl     r1, lr, 2
@@ -375,7 +354,7 @@ G_M20848_IG24:        ; bbWeight=0.04, gcrefRegs=01D8 {r3 r4 r6 r7 r8}, byrefReg
             ldr     r0, [r4+0x04]
             ; byrRegs -[r0]
             cmp     lr, r0
-            bhs     SHORT G_M20848_IG29
+            bhs     SHORT G_M20848_IG25
             add     r0, r4, 8
             ; byrRegs +[r0]
             str     lr, [sp+0x48]  // [V10 loc7]
@@ -390,75 +369,56 @@ G_M20848_IG24:        ; bbWeight=0.04, gcrefRegs=01D8 {r3 r4 r6 r7 r8}, byrefReg
             ldr     r0, [sp+0x4C]  // [V45 tmp32]
             ; gcrRegs +[r0]
             cmp     r0, 0
-            str     r8, [sp+0x3C]   // [V00 arg0]
-            ; GC ptr vars +{V00}
-            beq     SHORT G_M20848_IG33
-            ldrsb   r8, [r2]
-            ; gcrRegs -[r8]
+            beq     SHORT G_M20848_IG29
+            ldrsb   r9, [r2]
             str     r2, [sp+0x2C]  // [V11 loc8]
             ; GC ptr vars +{V11}
             str     r2, [sp+0x4C]  // [V45 tmp32]
-            ldr     r8, [sp+0x4C]   // [V45 tmp32]
-            ; gcrRegs +[r8]
-            cmp     r8, 0
-            beq     SHORT G_M20848_IG34
+            ldr     r9, [sp+0x4C] // [V45 tmp32]
+            ; gcrRegs +[r9]
+            cmp     r9, 0
+            beq     SHORT G_M20848_IG30
             str     r3, [sp+0x30]   // [V03 loc0]
             ; GC ptr vars +{V03}
             mov     r1, r3
             mov     r2, r6
-            mov     r3, r8
-            movw    r8, 0xd1ff
-            ; gcrRegs -[r8]
-            movt    r8, 0xd1ff
-            ldr     r8, [r8]
-            blx     r8     // System.RuntimeTypeHandle:SatisfiesConstraints(System.RuntimeType,System.RuntimeType[],System.RuntimeType[],System.RuntimeType):ubyte
+            mov     r3, r9
+            movw    r9, 0xd1ff
+            ; gcrRegs -[r9]
+            movt    r9, 0xd1ff
+            ldr     r9, [r9]
+            blx     r9     // System.RuntimeTypeHandle:SatisfiesConstraints(System.RuntimeType,System.RuntimeType[],System.RuntimeType[],System.RuntimeType):ubyte
             ; gcrRegs -[r0-r3]
             cmp     r0, 0
-            beq     SHORT G_M20848_IG28
-            ldr     r8, [sp+0x48]  // [V10 loc7]
-            add     r8, r8, 1
+            beq     SHORT G_M20848_IG31
+            ldr     r9, [sp+0x48]  // [V10 loc7]
+            add     r9, r9, 1
             ldr     r0, [sp+0x40] // [V55 cse0]
-            cmp     r0, r8
+            cmp     r0, r9
             mov     r12, r0
-            mov     lr, r8
+            mov     lr, r9
             ldr     r3, [sp+0x30]   // [V03 loc0]
             ; gcrRegs +[r3]
-            bgt     SHORT G_M20848_IG27
-                       ;; size=112 bbWeight=0.04 PerfScore 1.64
-G_M20848_IG25:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r3-r4 r6-r7]
...
  
-22 (-3.27%) : 30509.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(byref,System.Func2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],ubyte,System.Func2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
@@ -8,35 +8,35 @@
 ; 0 inlinees with PGO data; 31 single block inlinees; 9 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T07] (  6,  7   )     ref  ->  [sp+0x34]  this class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNavigator>
+;  V00 this         [V00,T07] (  6,  7   )     ref  ->   r6         this class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNavigator>
 ;  V01 RetBuf       [V01,T05] ( 16,  9   )   byref  ->   r5         single-def
-;  V02 arg1         [V02,T01] ( 10, 12.50)   byref  ->  [sp+0x30]  single-def
-;  V03 arg2         [V03,T08] (  6,  7   )     ref  ->  [sp+0x2C]  class-hnd single-def <System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte]>
-;  V04 arg3         [V04,T48] (  1,  0.50)   ubyte  ->  [sp+0xE0]  single-def
-;  V05 arg4         [V05,T25] (  4,  5   )     ref  ->  [sp+0xE4]  class-hnd single-def <System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]>
+;  V02 arg1         [V02,T01] ( 10, 12.50)   byref  ->   r4         single-def
+;  V03 arg2         [V03,T08] (  6,  7   )     ref  ->   r7         class-hnd single-def <System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte]>
+;  V04 arg3         [V04,T48] (  1,  0.50)   ubyte  ->  [sp+0xD8]  single-def
+;  V05 arg4         [V05,T25] (  4,  5   )     ref  ->   r8         class-hnd single-def <System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]>
 ;  V06 loc0         [V06,T26] (  3,  4.50)   ubyte  ->   r9        
-;  V07 loc1         [V07    ] (  6,  3   )  struct (16) [sp+0xA8]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.SyntaxToken>
+;  V07 loc1         [V07    ] (  6,  3   )  struct (16) [sp+0xA0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.SyntaxToken>
 ;* V08 loc2         [V08    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.ChildSyntaxList+Enumerator>
 ;* V09 loc3         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.ChildSyntaxList>
-;  V10 loc4         [V10    ] ( 15, 30   )  struct (16) [sp+0x98]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.SyntaxNodeOrToken>
-;  V11 loc5         [V11    ] (  6,  6   )  struct (16) [sp+0x88]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.SyntaxToken>
-;  V12 loc6         [V12    ] (  6,  6   )  struct (16) [sp+0x78]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.SyntaxToken>
+;  V10 loc4         [V10    ] ( 15, 30   )  struct (16) [sp+0x90]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.SyntaxNodeOrToken>
+;  V11 loc5         [V11    ] (  6,  6   )  struct (16) [sp+0x80]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.SyntaxToken>
+;  V12 loc6         [V12    ] (  6,  6   )  struct (16) [sp+0x70]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.SyntaxToken>
 ;* V13 loc7         [V13    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op <Microsoft.CodeAnalysis.SyntaxToken>
 ;  V14 OutArgs      [V14    ] (  1,  1   )  struct (28) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V15 tmp1         [V15    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "spilled call-like call argument" <Microsoft.CodeAnalysis.SyntaxToken>
 ;* V16 tmp2         [V16    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "spilled call-like call argument" <Microsoft.CodeAnalysis.SyntaxToken>
-;  V17 tmp3         [V17,T39] (  2,  2   )  struct (28) [sp+0x5C]  do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <Microsoft.CodeAnalysis.SyntaxTriviaList>
+;  V17 tmp3         [V17,T39] (  2,  2   )  struct (28) [sp+0x54]  do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <Microsoft.CodeAnalysis.SyntaxTriviaList>
 ;  V18 tmp4         [V18,T41] (  2,  1   )     int  ->   r1         "Inline return value spill temp"
 ;  V19 tmp5         [V19,T36] (  3,  3   )     ref  ->   r1         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.GreenNode>
 ;* V20 tmp6         [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V21 tmp7         [V21,T37] (  3,  3   )     ref  ->  [sp+0x28]  class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V21 tmp7         [V21,T37] (  3,  3   )     ref  ->  [sp+0x2C]  class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V22 tmp8         [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.ChildSyntaxList>
 ;* V23 tmp9         [V23    ] (  0,  0   )  struct (12) zero-ref    "Inline return value spill temp" <Microsoft.CodeAnalysis.ChildSyntaxList+Enumerator>
 ;* V24 tmp10        [V24    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.ChildSyntaxList+Enumerator>
 ;* V25 tmp11        [V25    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.ChildSyntaxList+Enumerator>
 ;* V26 tmp12        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V27 tmp13        [V27    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V28 tmp14        [V28,T00] (  9, 18   )  struct (16) [sp+0x4C]  do-not-enreg[SA] multireg-arg must-init "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxToken>
+;  V28 tmp14        [V28,T00] (  9, 18   )  struct (16) [sp+0x44]  do-not-enreg[SA] multireg-arg must-init "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxToken>
 ;* V29 tmp15        [V29    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.SyntaxToken>
 ;  V30 tmp16        [V30,T09] (  2,  8   )     ref  ->   r3         class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
 ;  V31 tmp17        [V31,T10] (  2,  8   )     ref  ->   r2         class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.GreenNode>
@@ -47,15 +47,15 @@
 ;  V36 tmp22        [V36,T02] (  3, 12   )     ref  ->   r1         class-hnd "dup spill" <Microsoft.CodeAnalysis.GreenNode>
 ;* V37 tmp23        [V37    ] (  0,  0   )     ref  ->  zero-ref   
 ;  V38 tmp24        [V38,T18] (  3,  6   )     ref  ->   r2         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V39 tmp25        [V39,T22] (  2,  4   )     int  ->   r1         "Inline return value spill temp"
-;  V40 tmp26        [V40,T03] (  3, 12   )     ref  ->   r1         class-hnd "dup spill" <Microsoft.CodeAnalysis.GreenNode>
+;  V39 tmp25        [V39,T22] (  2,  4   )     int  ->   r2         "Inline return value spill temp"
+;  V40 tmp26        [V40,T03] (  3, 12   )     ref  ->   r2         class-hnd "dup spill" <Microsoft.CodeAnalysis.GreenNode>
 ;* V41 tmp27        [V41    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V42 tmp28        [V42    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxToken>
 ;* V43 tmp29        [V43    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.SyntaxToken>
-;  V44 tmp30        [V44,T11] (  2,  8   )     ref  ->   r1         class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V44 tmp30        [V44,T11] (  2,  8   )     ref  ->   r2         class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
 ;  V45 tmp31        [V45,T12] (  2,  8   )     ref  ->   r0         class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.GreenNode>
 ;* V46 tmp32        [V46    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.SyntaxToken>
-;  V47 tmp33        [V47,T15] (  2,  8   )     int  ->   r2         "Inlining Arg"
+;  V47 tmp33        [V47,T15] (  2,  8   )     int  ->   r1         "Inlining Arg"
 ;  V48 tmp34        [V48,T16] (  2,  8   )     int  ->   r3         "Inlining Arg"
 ;* V49 tmp35        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxToken>
 ;* V50 tmp36        [V50    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxToken>
@@ -67,27 +67,27 @@
 ;* V56 tmp42        [V56    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V57 tmp43        [V57,T17] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V58 tmp44        [V58,T04] (  3, 12   )     int  ->  r12         "Inline stloc first use temp"
-;  V59 tmp45        [V59    ] (  2,  1   )     ref  ->  [sp+0xA8]  do-not-enreg[X] addr-exposed "field V07.<Parent>k__BackingField (fldOffset=0x0)" P-DEP
-;  V60 tmp46        [V60    ] (  3,  1.50)     ref  ->  [sp+0xAC]  do-not-enreg[X] addr-exposed "field V07.<Node>k__BackingField (fldOffset=0x4)" P-DEP
-;  V61 tmp47        [V61    ] (  2,  1   )     int  ->  [sp+0xB0]  do-not-enreg[X] addr-exposed "field V07.<Index>k__BackingField (fldOffset=0x8)" P-DEP
-;  V62 tmp48        [V62    ] (  2,  1   )     int  ->  [sp+0xB4]  do-not-enreg[X] addr-exposed "field V07.<Position>k__BackingField (fldOffset=0xc)" P-DEP
-;  V63 tmp49        [V63,T38] (  2,  2.50)     ref  ->  [sp+0x24]  spill-single-def "field V08._node (fldOffset=0x0)" P-INDEP
-;  V64 tmp50        [V64,T27] (  2,  4.50)     int  ->  [sp+0x48]  spill-single-def "field V08._count (fldOffset=0x4)" P-INDEP
-;  V65 tmp51        [V65,T06] (  4, 10.50)     int  ->  [sp+0x44]  "field V08._childIndex (fldOffset=0x8)" P-INDEP
+;  V59 tmp45        [V59    ] (  2,  1   )     ref  ->  [sp+0xA0]  do-not-enreg[X] addr-exposed "field V07.<Parent>k__BackingField (fldOffset=0x0)" P-DEP
+;  V60 tmp46        [V60    ] (  3,  1.50)     ref  ->  [sp+0xA4]  do-not-enreg[X] addr-exposed "field V07.<Node>k__BackingField (fldOffset=0x4)" P-DEP
+;  V61 tmp47        [V61    ] (  2,  1   )     int  ->  [sp+0xA8]  do-not-enreg[X] addr-exposed "field V07.<Index>k__BackingField (fldOffset=0x8)" P-DEP
+;  V62 tmp48        [V62    ] (  2,  1   )     int  ->  [sp+0xAC]  do-not-enreg[X] addr-exposed "field V07.<Position>k__BackingField (fldOffset=0xc)" P-DEP
+;  V63 tmp49        [V63,T38] (  2,  2.50)     ref  ->  [sp+0x28]  spill-single-def "field V08._node (fldOffset=0x0)" P-INDEP
+;  V64 tmp50        [V64,T27] (  2,  4.50)     int  ->  [sp+0x40]  spill-single-def "field V08._count (fldOffset=0x4)" P-INDEP
+;  V65 tmp51        [V65,T06] (  4, 10.50)     int  ->  [sp+0x3C]  "field V08._childIndex (fldOffset=0x8)" P-INDEP
 ;* V66 tmp52        [V66    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V09._node (fldOffset=0x0)" P-INDEP
 ;* V67 tmp53        [V67    ] (  0,  0   )     int  ->  zero-ref    single-def "field V09._count (fldOffset=0x4)" P-INDEP
-;  V68 tmp54        [V68    ] (  4,  8   )     ref  ->  [sp+0x98]  do-not-enreg[X] addr-exposed "field V10._nodeOrParent (fldOffset=0x0)" P-DEP
-;  V69 tmp55        [V69    ] (  6, 12   )     ref  ->  [sp+0x9C]  do-not-enreg[X] addr-exposed "field V10._token (fldOffset=0x4)" P-DEP
-;  V70 tmp56        [V70    ] (  3,  6   )     int  ->  [sp+0xA0]  do-not-enreg[X] addr-exposed "field V10._position (fldOffset=0x8)" P-DEP
-;  V71 tmp57        [V71    ] (  5, 10   )     int  ->  [sp+0xA4]  do-not-enreg[X] addr-exposed "field V10._tokenIndex (fldOffset=0xc)" P-DEP
-;  V72 tmp58        [V72    ] (  2,  2.50)     ref  ->  [sp+0x88]  do-not-enreg[X] addr-exposed "field V11.<Parent>k__BackingField (fldOffset=0x0)" P-DEP
-;  V73 tmp59        [V73    ] (  3,  4.50)     ref  ->  [sp+0x8C]  do-not-enreg[X] addr-exposed "field V11.<Node>k__BackingField (fldOffset=0x4)" P-DEP
-;  V74 tmp60        [V74    ] (  2,  2.50)     int  ->  [sp+0x90]  do-not-enreg[X] addr-exposed "field V11.<Index>k__BackingField (fldOffset=0x8)" P-DEP
-;  V75 tmp61        [V75    ] (  2,  2.50)     int  ->  [sp+0x94]  do-not-enreg[X] addr-exposed "field V11.<Position>k__BackingField (fldOffset=0xc)" P-DEP
-;  V76 tmp62        [V76    ] (  2,  2.50)     ref  ->  [sp+0x78]  do-not-enreg[X] addr-exposed "field V12.<Parent>k__BackingField (fldOffset=0x0)" P-DEP
-;  V77 tmp63        [V77    ] (  3,  4.50)     ref  ->  [sp+0x7C]  do-not-enreg[X] addr-exposed "field V12.<Node>k__BackingField (fldOffset=0x4)" P-DEP
-;  V78 tmp64        [V78    ] (  2,  2.50)     int  ->  [sp+0x80]  do-not-enreg[X] addr-exposed "field V12.<Index>k__BackingField (fldOffset=0x8)" P-DEP
-;  V79 tmp65        [V79    ] (  2,  2.50)     int  ->  [sp+0x84]  do-not-enreg[X] addr-exposed "field V12.<Position>k__BackingField (fldOffset=0xc)" P-DEP
+;  V68 tmp54        [V68    ] (  4,  8   )     ref  ->  [sp+0x90]  do-not-enreg[X] addr-exposed "field V10._nodeOrParent (fldOffset=0x0)" P-DEP
+;  V69 tmp55        [V69    ] (  6, 12   )     ref  ->  [sp+0x94]  do-not-enreg[X] addr-exposed "field V10._token (fldOffset=0x4)" P-DEP
+;  V70 tmp56        [V70    ] (  3,  6   )     int  ->  [sp+0x98]  do-not-enreg[X] addr-exposed "field V10._position (fldOffset=0x8)" P-DEP
+;  V71 tmp57        [V71    ] (  5, 10   )     int  ->  [sp+0x9C]  do-not-enreg[X] addr-exposed "field V10._tokenIndex (fldOffset=0xc)" P-DEP
+;  V72 tmp58        [V72    ] (  2,  2.50)     ref  ->  [sp+0x80]  do-not-enreg[X] addr-exposed "field V11.<Parent>k__BackingField (fldOffset=0x0)" P-DEP
+;  V73 tmp59        [V73    ] (  3,  4.50)     ref  ->  [sp+0x84]  do-not-enreg[X] addr-exposed "field V11.<Node>k__BackingField (fldOffset=0x4)" P-DEP
+;  V74 tmp60        [V74    ] (  2,  2.50)     int  ->  [sp+0x88]  do-not-enreg[X] addr-exposed "field V11.<Index>k__BackingField (fldOffset=0x8)" P-DEP
+;  V75 tmp61        [V75    ] (  2,  2.50)     int  ->  [sp+0x8C]  do-not-enreg[X] addr-exposed "field V11.<Position>k__BackingField (fldOffset=0xc)" P-DEP
+;  V76 tmp62        [V76    ] (  2,  2.50)     ref  ->  [sp+0x70]  do-not-enreg[X] addr-exposed "field V12.<Parent>k__BackingField (fldOffset=0x0)" P-DEP
+;  V77 tmp63        [V77    ] (  3,  4.50)     ref  ->  [sp+0x74]  do-not-enreg[X] addr-exposed "field V12.<Node>k__BackingField (fldOffset=0x4)" P-DEP
+;  V78 tmp64        [V78    ] (  2,  2.50)     int  ->  [sp+0x78]  do-not-enreg[X] addr-exposed "field V12.<Index>k__BackingField (fldOffset=0x8)" P-DEP
+;  V79 tmp65        [V79    ] (  2,  2.50)     int  ->  [sp+0x7C]  do-not-enreg[X] addr-exposed "field V12.<Position>k__BackingField (fldOffset=0xc)" P-DEP
 ;* V80 tmp66        [V80    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V22._node (fldOffset=0x0)" P-INDEP
 ;  V81 tmp67        [V81,T44] (  2,  1   )     int  ->   r0         single-def "field V22._count (fldOffset=0x4)" P-INDEP
 ;  V82 tmp68        [V82,T42] (  2,  1   )     ref  ->   r3         "field V23._node (fldOffset=0x0)" P-INDEP
@@ -111,25 +111,25 @@
 ;* V100 tmp86       [V100    ] (  0,  0   )     ref  ->  zero-ref    "field V49.<Node>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V101 tmp87       [V101    ] (  0,  0   )     int  ->  zero-ref    "field V49.<Index>k__BackingField (fldOffset=0x8)" P-INDEP
 ;* V102 tmp88       [V102    ] (  0,  0   )     int  ->  zero-ref    "field V49.<Position>k__BackingField (fldOffset=0xc)" P-INDEP
-;  V103 tmp89       [V103,T30] (  2,  4   )     ref  ->   r6         "field V52.<Parent>k__BackingField (fldOffset=0x0)" P-INDEP
+;  V103 tmp89       [V103,T30] (  2,  4   )     ref  ->  [sp+0x24]  spill-single-def "field V52.<Parent>k__BackingField (fldOffset=0x0)" P-INDEP
 ;  V104 tmp90       [V104,T31] (  2,  4   )     ref  ->  [sp+0x20]  "field V52.<Node>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V105 tmp91       [V105,T34] (  2,  4   )     int  ->  [sp+0x40]  "field V52.<Index>k__BackingField (fldOffset=0x8)" P-INDEP
-;  V106 tmp92       [V106,T35] (  2,  4   )     int  ->  [sp+0x3C]  "field V52.<Position>k__BackingField (fldOffset=0xc)" P-INDEP
-;  V107 tmp93       [V107,T19] (  3,  6   )     ref  ->   r1         "V42.[000..004)"
+;  V105 tmp91       [V105,T34] (  2,  4   )     int  ->  [sp+0x38]  "field V52.<Index>k__BackingField (fldOffset=0x8)" P-INDEP
+;  V106 tmp92       [V106,T35] (  2,  4   )     int  ->  [sp+0x34]  "field V52.<Position>k__BackingField (fldOffset=0xc)" P-INDEP
+;  V107 tmp93       [V107,T19] (  3,  6   )     ref  ->   r2         "V42.[000..004)"
 ;  V108 tmp94       [V108,T20] (  3,  6   )     ref  ->   r0         "V42.[004..008)"
-;  V109 tmp95       [V109,T23] (  3,  6   )     int  ->  [sp+0x38]  "V42.[008..012)"
+;  V109 tmp95       [V109,T23] (  3,  6   )     int  ->  [sp+0x30]  "V42.[008..012)"
 ;  V110 tmp96       [V110,T24] (  3,  6   )     int  ->  registers   "V42.[012..016)"
 ;* V111 tmp97       [V111    ] (  0,  0   )     ref  ->  zero-ref    "V43.[000..004)"
 ;* V112 tmp98       [V112    ] (  0,  0   )     ref  ->  zero-ref    "V43.[004..008)"
 ;* V113 tmp99       [V113    ] (  0,  0   )     int  ->  zero-ref    "V43.[008..012)"
 ;* V114 tmp100      [V114    ] (  0,  0   )     int  ->  zero-ref    "V43.[012..016)"
 ;
-; Lcl frame size = 188
+; Lcl frame size = 180
 
 G_M12762_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 188
-            add     r11, sp, 216
+            sub     sp, 180
+            add     r11, sp, 208
             sub     r6, r11, 140
             movs    r7, 13
             movs    r4, 0
@@ -146,7 +146,7 @@ G_M12762_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; byrRegs +[r4]
             mov     r7, r3
             ; gcrRegs +[r7]
-            ldr     r8, [sp+0xE4] // [V05 arg4]
+            ldr     r8, [sp+0xDC]    // [V05 arg4]
             ; gcrRegs +[r8]
                        ;; size=40 bbWeight=1 PerfScore 16.00
 G_M12762_IG02:        ; bbWeight=1, gcrefRegs=01C0 {r6 r7 r8}, byrefRegs=0030 {r4 r5}, byref, isz
@@ -157,10 +157,10 @@ G_M12762_IG02:        ; bbWeight=1, gcrefRegs=01C0 {r6 r7 r8}, byrefRegs=0030 {r
                        ;; size=8 bbWeight=1 PerfScore 3.00
 G_M12762_IG03:        ; bbWeight=0.50, gcrefRegs=01C0 {r6 r7 r8}, byrefRegs=0030 {r4 r5}, byref, isz
             ; gcrRegs -[r1]
-            ldrb    r1, [sp+0xE0]
+            ldrb    r1, [sp+0xD8]
             cmp     r1, 0
             beq     SHORT G_M12762_IG04
-            add     r1, sp, 92
+            add     r1, sp, 84
             mov     r0, r4
             ; byrRegs +[r0]
             movw    r3, 0xd1ff
@@ -170,22 +170,22 @@ G_M12762_IG03:        ; bbWeight=0.50, gcrefRegs=01C0 {r6 r7 r8}, byrefRegs=0030
             ; byrRegs -[r0]
             str     r7, [sp+0x14]
             str     r8, [sp+0x18]
-            ldr     r2, [sp+0x64]
+            ldr     r2, [sp+0x5C]
             str     r2, [sp]
-            ldr     r2, [sp+0x68]
+            ldr     r2, [sp+0x60]
             ; gcrRegs +[r2]
             str     r2, [sp+0x04]
-            ldr     r2, [sp+0x6C]
+            ldr     r2, [sp+0x64]
             str     r2, [sp+0x08]
-            ldr     r2, [sp+0x70]
+            ldr     r2, [sp+0x68]
             ; gcrRegs -[r2]
             str     r2, [sp+0x0C]
-            ldr     r2, [sp+0x74]
+            ldr     r2, [sp+0x6C]
             str     r2, [sp+0x10]
-            ldr     r2, [sp+0x5C]
+            ldr     r2, [sp+0x54]
             ; gcrRegs +[r2]
-            ldr     r3, [sp+0x60]
-            add     r1, sp, 168
+            ldr     r3, [sp+0x58]
+            add     r1, sp, 160
             mov     r0, r6
             ; gcrRegs +[r0]
             movw    lr, 0xd1ff
@@ -193,7 +193,7 @@ G_M12762_IG03:        ; bbWeight=0.50, gcrefRegs=01C0 {r6 r7 r8}, byrefRegs=0030
             ldr     lr, [lr]
             blx     lr     // Microsoft.CodeAnalysis.SyntaxNavigator:GetFirstToken(Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this
             ; gcrRegs -[r0 r2]
-            ldr     r1, [sp+0xAC]
+            ldr     r1, [sp+0xA4]
             ; gcrRegs +[r1]
             cmp     r1, 0
             beq     SHORT G_M12762_IG04
@@ -201,7 +201,7 @@ G_M12762_IG03:        ; bbWeight=0.50, gcrefRegs=01C0 {r6 r7 r8}, byrefRegs=0030
             ; gcrRegs -[r1]
             cmp     r1, 0
             beq     SHORT G_M12762_IG04
-            ldr     r1, [sp+0xA8]
+            ldr     r1, [sp+0xA0]
             ; gcrRegs +[r1]
             mov     r0, r5
             ; byrRegs +[r0]
@@ -212,16 +212,16 @@ G_M12762_IG03:        ; bbWeight=0.50, gcrefRegs=01C0 {r6 r7 r8}, byrefRegs=0030
             ; byrRegs -[r0 r4]
             adds    r0, r5, 4
             ; byrRegs +[r0]
-            ldr     r1, [sp+0xAC]
+            ldr     r1, [sp+0xA4]
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            ldr     r0, [sp+0xB0]
+            ldr     r0, [sp+0xA8]
             str     r0, [r5+0x08]
-            ldr     r0, [sp+0xB4]
+            ldr     r0, [sp+0xAC]
             str     r0, [r5+0x0C]
             b       SHORT G_M12762_IG23
                        ;; size=122 bbWeight=0.50 PerfScore 25.00
@@ -231,7 +231,7 @@ G_M12762_IG04:        ; bbWeight=0.50, gcrefRegs=01C0 {r6 r7 r8}, byrefRegs=0030
             mov     r9, 0
             ldr     r3, [r4]
             ; gcrRegs +[r3]
-            str     r3, [sp+0x28]
+            str     r3, [sp+0x2C]
             ; GC ptr vars +{V21}
             ldr     r0, [r3+0x0C]
             ; gcrRegs +[r0]
@@ -240,21 +240,21 @@ G_M12762_IG04:        ; bbWeight=0.50, gcrefRegs=01C0 {r6 r7 r8}, byrefRegs=0030
...
  
+36 (+1.97%) : 22940.dasm - Microsoft.CodeAnalysis.CommonReferenceManager2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary2[System.Canon,System.Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
@@ -45,7 +45,7 @@
 ;  V34 tmp18        [V34,T18] (  6,  8   )     int  ->   r3         "Indirect call through function pointer"
 ;  V35 tmp19        [V35,T13] (  9, 18   )     ref  ->   r6         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ReferencedAssemblyIdentity[System.__Canon,System.__Canon]]>
 ;* V36 tmp20        [V36    ] (  0,  0   )     int  ->  zero-ref    "spilling helperCall"
-;  V37 tmp21        [V37,T64] (  2,  4   )     ref  ->   r8         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V37 tmp21        [V37,T64] (  2,  4   )     ref  ->   r5         class-hnd exact single-def "impAppendStmt" <System.String>
 ;* V38 tmp22        [V38,T83] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V39 tmp23        [V39,T65] (  2,  4   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V40 tmp24        [V40,T69] (  3,  3   )   byref  ->   r0         single-def "Inline stloc first use temp"
@@ -73,7 +73,7 @@
 ;* V62 tmp46        [V62    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.AssemblyIdentity>
 ;* V63 tmp47        [V63    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V64 tmp48        [V64    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V65 tmp49        [V65,T08] (  3, 24   )     ref  ->   r1         class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.AssemblyIdentityComparer>
+;  V65 tmp49        [V65,T08] (  3, 24   )     ref  ->   r0         class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.AssemblyIdentityComparer>
 ;* V66 tmp50        [V66    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.AssemblyIdentity>
 ;  V67 tmp51        [V67    ] (  2,  8   )   ubyte  ->  [sp+0x48]  do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;  V68 tmp52        [V68,T09] (  3, 24   )     ref  ->   r1         class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.AssemblyIdentityComparer>
@@ -104,7 +104,7 @@
 ;  V93 tmp77        [V93,T29] (  6,  6   )     ref  ->  [sp+0x20]  "field V10.Reference (fldOffset=0x4)" P-INDEP
 ;* V94 tmp78        [V94    ] (  0,  0   )     int  ->  zero-ref    "field V10.RelativeAssemblyIndex (fldOffset=0x8)" P-INDEP
 ;  V95 tmp79        [V95,T25] (  2,  8   )     ref  ->   r0         "field V12.Identity (fldOffset=0x0)" P-INDEP
-;  V96 tmp80        [V96,T49] (  2,  5   )     ref  ->   r8         "field V12.Reference (fldOffset=0x4)" P-INDEP
+;  V96 tmp80        [V96,T49] (  2,  5   )     ref  ->   r9         "field V12.Reference (fldOffset=0x4)" P-INDEP
 ;* V97 tmp81        [V97    ] (  0,  0   )     int  ->  zero-ref    "field V12.RelativeAssemblyIndex (fldOffset=0x8)" P-INDEP
 ;  V98 tmp82        [V98,T10] (  6, 21   )     ref  ->  [sp+0x1C]  "field V14.Identity (fldOffset=0x0)" P-INDEP
 ;  V99 tmp83        [V99,T50] (  2,  5   )     ref  ->  [sp+0x18]  "field V14.Reference (fldOffset=0x4)" P-INDEP
@@ -116,8 +116,8 @@
 ;* V105 tmp89       [V105    ] (  0,  0   )     ref  ->  zero-ref    "field V29.Reference (fldOffset=0x4)" P-INDEP
 ;* V106 tmp90       [V106    ] (  0,  0   )     int  ->  zero-ref    "field V29.RelativeAssemblyIndex (fldOffset=0x8)" P-INDEP
 ;  V107 tmp91       [V107,T73] (  3,  3   )     ref  ->  r12         single-def "field V32.Identity (fldOffset=0x0)" P-INDEP
-;  V108 tmp92       [V108,T74] (  3,  3   )     ref  ->   r6         single-def "field V32.Reference (fldOffset=0x4)" P-INDEP
-;  V109 tmp93       [V109,T76] (  3,  3   )     int  ->   r5         single-def "field V32.RelativeAssemblyIndex (fldOffset=0x8)" P-INDEP
+;  V108 tmp92       [V108,T74] (  3,  3   )     ref  ->   r5         single-def "field V32.Reference (fldOffset=0x4)" P-INDEP
+;  V109 tmp93       [V109,T76] (  3,  3   )     int  ->   r6         single-def "field V32.RelativeAssemblyIndex (fldOffset=0x8)" P-INDEP
 ;* V110 tmp94       [V110    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V43.Identity (fldOffset=0x0)" P-INDEP
 ;* V111 tmp95       [V111    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V43.Reference (fldOffset=0x4)" P-INDEP
 ;* V112 tmp96       [V112    ] (  0,  0   )     int  ->  zero-ref    single-def "field V43.RelativeAssemblyIndex (fldOffset=0x8)" P-INDEP
@@ -263,10 +263,10 @@ G_M60463_IG06:        ; bbWeight=1, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, b
             ; gcr arg pop 0
             mov     r6, r0
             ; gcrRegs +[r6]
-            ldr     r5, [sp+0x2C]
+            ldr     r9, [sp+0x2C]
+            ; gcrRegs +[r9]
+            ldr     r5, [r9+0x04]
             ; gcrRegs +[r5]
-            ldr     r8, [r5+0x04]
-            ; gcrRegs +[r8]
             mov     r0, r6
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -292,12 +292,12 @@ G_M60463_IG06:        ; bbWeight=1, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, b
             ; byrRegs +[r2]
             mov     r0, r2
             ; byrRegs +[r0]
-            mov     r1, r5
+            mov     r1, r9
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             ; GC ptr vars -{V89}
             blx     r12        // CORINFO_HELP_CHECKED_ASSIGN_REF
-            ; gcrRegs -[r1 r5]
+            ; gcrRegs -[r1 r9]
             ; byrRegs -[r0]
             adds    r0, r2, 4
             ; byrRegs +[r0]
@@ -309,20 +309,20 @@ G_M60463_IG06:        ; bbWeight=1, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, b
             blx     r12        // CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            ldr     r9, [sp+0x40] // [V91 tmp75]
-            str     r9, [r2+0x08]
+            ldr     r8, [sp+0x40]   // [V91 tmp75]
+            str     r8, [r2+0x08]
             b       SHORT G_M60463_IG08
-                     ;; size=100 bbWeight=1 PerfScore 38.00
-G_M60463_IG07:        ; bbWeight=1, gcVars=000000000000000004000840 {V00 V89 V90}, gcrefRegs=01F0 {r4 r5 r6 r7 r8}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[r5]
+                      ;; size=102 bbWeight=1 PerfScore 38.00
+G_M60463_IG07:        ; bbWeight=1, gcVars=000000000000000004000840 {V00 V89 V90}, gcrefRegs=02F0 {r4 r5 r6 r7 r9}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[r9]
             ; byrRegs -[r2]
             ; GC ptr vars +{V06 V89 V90}
-            ldr     r9, [sp+0x40]    // [V91 tmp75]
-            mov     r1, r5
+            ldr     r8, [sp+0x40]  // [V91 tmp75]
+            mov     r1, r9
             ; gcrRegs +[r1]
             ldr     r2, [sp+0x28]  // [V90 tmp74]
             ; gcrRegs +[r2]
-            mov     r3, r9
+            mov     r3, r8
             mov     r0, r6
             ; gcrRegs +[r0]
             movw    lr, 0xd1ff
@@ -330,13 +330,13 @@ G_M60463_IG07:        ; bbWeight=1, gcVars=000000000000000004000840 {V00 V89 V90
             ldr     lr, [lr]
             ; GC ptr vars -{V06 V89 V90}
             blx     lr     // <unknown method>
-            ; gcrRegs -[r0-r2 r5]
+            ; gcrRegs -[r0-r2 r9]
             ; gcr arg pop 0
                        ;; size=26 bbWeight=1 PerfScore 9.00
-G_M60463_IG08:        ; bbWeight=1, gcrefRegs=01D0 {r4 r6 r7 r8}, byrefRegs=0000 {}, byref, isz
+G_M60463_IG08:        ; bbWeight=1, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
             mov     r0, r7
             ; gcrRegs +[r0]
-            mov     r1, r8
+            mov     r1, r5
             ; gcrRegs +[r1]
             mov     r2, r6
             ; gcrRegs +[r2]
@@ -345,21 +345,21 @@ G_M60463_IG08:        ; bbWeight=1, gcrefRegs=01D0 {r4 r6 r7 r8}, byrefRegs=0000
             movt    lr, 0xd1ff
             ldr     lr, [lr]
             blx     lr     // <unknown method>
-            ; gcrRegs -[r0-r2 r6-r8]
+            ; gcrRegs -[r0-r2 r5-r7]
             ; gcr arg pop 0
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
-            b       SHORT G_M60463_IG67
+            b       SHORT G_M60463_IG70
                       ;; size=36 bbWeight=1 PerfScore 13.00
 G_M60463_IG09:        ; bbWeight=1, gcVars=000100000000000004000840 {V00 V13 V89 V90}, gcrefRegs=03F0 {r4 r5 r6 r7 r8 r9}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r5-r9]
             ; GC ptr vars +{V06 V13 V80 V89 V90}
             ldrb    r1, [sp+0x9C]  // [V07 arg7]
             cmp     r1, 0
-            beq     G_M60463_IG32
+            beq     G_M60463_IG33
             add     r1, sp, 76  // [V11 loc3]
             mov     r0, r7
             ; gcrRegs +[r0]
@@ -398,11 +398,11 @@ G_M60463_IG13:        ; bbWeight=1, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, b
 G_M60463_IG14:        ; bbWeight=4, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref, isz
             ldr     r0, [sp+0x58]  // [V11 loc3+0x0c]
             ; gcrRegs +[r0]
-            ldr     r8, [sp+0x5C] // [V11 loc3+0x10]
-            ; gcrRegs +[r8]
-            ldr     r9, [sp+0x2C]
+            ldr     r9, [sp+0x5C]   // [V11 loc3+0x10]
             ; gcrRegs +[r9]
-            ldr     r1, [r9+0x08]
+            ldr     r8, [sp+0x2C]
+            ; gcrRegs +[r8]
+            ldr     r1, [r8+0x08]
             ; gcrRegs +[r1]
             ldr     r0, [r0+0x08]
             cmp     r0, 0
@@ -410,13 +410,13 @@ G_M60463_IG14:        ; bbWeight=4, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, b
             cmp     r1, 0
             bne     SHORT G_M60463_IG17
                        ;; size=24 bbWeight=4 PerfScore 36.00
-G_M60463_IG15:        ; bbWeight=1, gcVars=000100000000000000000800 {V00 V13}, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[r0-r1 r7 r9]
+G_M60463_IG15:        ; bbWeight=1, gcVars=000100000000000000000800 {V00 V13}, gcrefRegs=0210 {r4 r9}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[r0-r1 r7-r8]
             ; GC ptr vars -{V06 V80 V89 V90}
             b       SHORT G_M60463_IG19
                        ;; size=2 bbWeight=1 PerfScore 1.00
 G_M60463_IG16:        ; bbWeight=4, gcVars=000100000000000004000840 {V00 V13 V89 V90}, gcrefRegs=0393 {r0 r1 r4 r7 r8 r9}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs +[r0-r1 r7 r9]
+            ; gcrRegs +[r0-r1 r7-r8]
             ; GC ptr vars +{V06 V89 V90}
             cmp     r0, r1
             beq     SHORT G_M60463_IG19
@@ -444,14 +444,14 @@ G_M60463_IG17:        ; bbWeight=8, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, b
 G_M60463_IG18:        ; bbWeight=1, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, byref, isz
             b       SHORT G_M60463_IG20
                        ;; size=2 bbWeight=1 PerfScore 1.00
-G_M60463_IG19:        ; bbWeight=1, gcVars=000100000000000000000800 {V00 V13}, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[r7] +[r8]
+G_M60463_IG19:        ; bbWeight=1, gcVars=000100000000000000000800 {V00 V13}, gcrefRegs=0210 {r4 r9}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[r7] +[r9]
             ; GC ptr vars -{V06 V89 V90}
-            str     r8, [sp+0x30]   // [V13 loc5]
+            str     r9, [sp+0x30]    // [V13 loc5]
             b       SHORT G_M60463_IG24
                        ;; size=6 bbWeight=1 PerfScore 2.00
 G_M60463_IG20:        ; bbWeight=1, gcVars=000000000000000004000840 {V00 V89 V90}, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[r8] +[r7]
+            ; gcrRegs -[r9] +[r7]
             ; GC ptr vars -{V13} +{V06 V89 V90}
             ldr     r0, [r6+0x24]
             ldr     r0, [r0]
@@ -481,23 +481,23 @@ G_M60463_IG23:        ; bbWeight=1, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, b
 G_M60463_IG24:        ; bbWeight=1, gcVars=000100000000000000000800 {V00 V13}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r7]
             ; GC ptr vars -{V06 V89 V90} +{V13 V80}
-            bl      G_M60463_IG76
+            bl      G_M60463_IG79
                       ;; size=4 bbWeight=1 PerfScore 1.00
 G_M60463_IG25:        ; bbWeight=1, nogc, isz, extend
-            b       SHORT G_M60463_IG72
+            b       SHORT G_M60463_IG75
                         ;; size=2 bbWeight=1 PerfScore 1.00
 G_M60463_IG26:        ; bbWeight=1, gcVars=000000000000000004000840 {V00 V89 V90}, gcrefRegs=0090 {r4 r7}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r7]
             ; GC ptr vars -{V13 V80} +{V06 V89 V90}
             ldr     r0, [r7+0x08]
             cmp     r0, 0
-            beq     G_M60463_IG75
+            beq     G_M60463_IG78
             ldr     r0, [r7+0x04]
             ; gcrRegs +[r0]
             movs    r1, 0
             ldr     r3, [r0+0x04]
             cmp     r1, r3
-            bhs     G_M60463_IG74
+            bhs     G_M60463_IG77
             ldr     r0, [r0+0x08]
             ldr     r1, [r0+0x08]
             ; gcrRegs +[r1]
@@ -507,7 +507,7 @@ G_M60463_IG26:        ; bbWeight=1, gcVars=000000000000000004000840 {V00 V89 V90
             cmp     r0, 0
             bne     SHORT G_M60463_IG27
             cmp     r1, 0
-            beq     SHORT G_M60463_IG29
+            beq     SHORT G_M60463_IG30
             b       SHORT G_M60463_IG28
                        ;; size=42 bbWeight=1 PerfScore 17.00
 G_M60463_IG27:        ; bbWeight=1, gcrefRegs=0293 {r0 r1 r4 r7 r9}, byrefRegs=0000 {}, byref, isz
@@ -518,7 +518,7 @@ G_M60463_IG27:        ; bbWeight=1, gcrefRegs=0293 {r0 r1 r4 r7 r9}, byrefRegs=0
             ; gcrRegs -[r0-r1]
             ; gcr arg pop 0
             cmp     r0, 0
-            bge     SHORT G_M60463_IG29
+            bge     SHORT G_M60463_IG30
                         ;; size=16 bbWeight=1 PerfScore 6.00
 G_M60463_IG28:        ; bbWeight=1, gcrefRegs=0290 {r4 r7 r9}, byrefRegs=0000 {}, byref, isz
             ldr     r1, [r7+0x0C]
@@ -529,7 +529,7 @@ G_M60463_IG28:        ; bbWeight=1, gcrefRegs=0290 {r4 r7 r9}, byrefRegs=0000 {}
             ldr     r0, [r7+0x08]
             ldr     r3, [r1+0x04]
             cmp     r3, r0
-            bls     G_M60463_IG66
+            bls     SHORT G_M60463_IG29
             adds    r3, r0, 1
             str     r3, [r7+0x08]
             movs    r3, 12
@@ -556,17 +556,21 @@ G_M60463_IG28:        ; bbWeight=1, gcrefRegs=0290 {r4 r7 r9}, byrefRegs=0000 {}
             blx     r12        // CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            ldr     r9, [sp+0x40] // [V91 tmp75]
...
  
+2 (+2.17%) : 22417.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
@@ -49,7 +49,7 @@ G_M5512_IG03:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            bne     SHORT G_M5512_IG09
+            bne     SHORT G_M5512_IG08
                       ;; size=36 bbWeight=2 PerfScore 28.00
 G_M5512_IG04:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ldr     r1, [r4+0x08]
@@ -57,13 +57,13 @@ G_M5512_IG04:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             ldrh    r0, [r1+0x08]
             movw    r3, 0xd1ff
             cmp     r0, r3
-            beq     SHORT G_M5512_IG07
+            beq     SHORT G_M5512_IG10
             ldr     r4, [r4+0x04]
                        ;; size=14 bbWeight=2 PerfScore 12.00
 G_M5512_IG05:        ; bbWeight=8, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r1]
             cmp     r4, 0
-            beq     SHORT G_M5512_IG07
+            beq     SHORT G_M5512_IG10
                       ;; size=4 bbWeight=8 PerfScore 16.00
 G_M5512_IG06:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             movw    r1, 0xd1ff
@@ -73,21 +73,24 @@ G_M5512_IG06:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
             cmp     r4, r1
             bne     SHORT G_M5512_IG03
                        ;; size=14 bbWeight=4 PerfScore 20.00
-G_M5512_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M5512_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r1 r4]
-            movs    r0, 0
+            b       SHORT G_M5512_IG10
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M5512_IG08:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r11,pc}
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M5512_IG09:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M5512_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movs    r0, 1
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
-G_M5512_IG10:        ; bbWeight=0.50, epilog, nogc, extend
+G_M5512_IG09:        ; bbWeight=0.50, epilog, nogc, extend
+            pop     {r3,r4,r11,pc}
+                       ;; size=4 bbWeight=0.50 PerfScore 0.50
+G_M5512_IG10:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+            movs    r0, 0
+                       ;; size=2 bbWeight=0.50 PerfScore 0.50
+G_M5512_IG11:        ; bbWeight=0.50, epilog, nogc, extend
             pop     {r3,r4,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 92, prolog size 8, PerfScore 82.00, instruction count 35, allocated bytes for code 92 (MethodHash=0d76ea77) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
+; Total bytes of code 94, prolog size 8, PerfScore 82.50, instruction count 36, allocated bytes for code 94 (MethodHash=0d76ea77) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -99,7 +102,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 46 (0x0002e) Actual length = 92 (0x00005c)
+  Function Length   : 47 (0x0002f) Actual length = 94 (0x00005e)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
  
+32 (+2.18%) : 24108.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDefaultArguments(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],byref,byref,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Symbol):this (FullOpts)
@@ -8,11 +8,11 @@
 ; 0 inlinees with PGO data; 38 single block inlinees; 21 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T38] (  6,  5.50)     ref  ->  [sp+0x54]  this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V00 this         [V00,T38] (  6,  5.50)     ref  ->   r6         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Binder>
 ;  V01 arg1         [V01,T41] (  3,  4   )     ref  ->   r7         class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
 ;  V02 arg2         [V02    ] (  7,  9.50)  struct ( 4) [sp+0xE4]  ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol]>
 ;  V03 arg3         [V03,T14] (  8, 13.50)     ref  ->   r4         class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V04 arg4         [V04,T56] (  2,  4   )     ref  ->   r9         class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
+;  V04 arg4         [V04,T56] (  2,  4   )     ref  ->  [sp+0xE8]  class-hnd single-def <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
 ;  V05 arg5         [V05,T34] (  6,  8   )   byref  ->   r5         single-def
 ;  V06 arg6         [V06,T59] (  3,  3   )   byref  ->  [sp+0xF0]  single-def
 ;  V07 arg7         [V07,T54] (  2,  4.50)   ubyte  ->   r8         single-def
@@ -21,41 +21,41 @@
 ;* V10 arg10        [V10    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
 ;  V11 arg11        [V11,T90] (  1,  0.50)     ref  ->  [sp+0x104]  class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbol>
 ;  V12 loc0         [V12    ] (  7, 11   )  struct (16) [sp+0xB0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op double-align <Microsoft.CodeAnalysis.BitVector>
-;  V13 loc1         [V13,T65] (  2,  2.50)     ref  ->  [sp+0x50]  class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.Symbol>
-;  V14 loc2         [V14,T39] (  8,  7   )     ref  ->  [sp+0x4C]  class-hnd <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int]>
+;  V13 loc1         [V13,T65] (  2,  2.50)     ref  ->  [sp+0x5C]  class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.Symbol>
+;  V14 loc2         [V14,T39] (  8,  7   )     ref  ->  [sp+0x58]  class-hnd <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int]>
 ;* V15 loc3         [V15    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <System.Index>
-;  V16 loc4         [V16,T66] (  2,  2.50)     int  ->  [sp+0xAC]  spill-single-def
-;  V17 loc5         [V17,T09] (  5, 17   )     int  ->  [sp+0xA8] 
+;  V16 loc4         [V16,T66] (  2,  2.50)     int  ->   r8         single-def
+;  V17 loc5         [V17,T09] (  5, 17   )     int  ->  [sp+0xAC] 
 ;  V18 loc6         [V18,T15] (  4, 12   )     ref  ->   r0         class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol>
 ;  V19 loc7         [V19,T74] (  3,  1.50)     ref  ->   r3         class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
 ;  V20 loc8         [V20,T75] (  3,  1.50)     ref  ->   r0         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbol>
-;  V21 loc9         [V21,T76] (  3,  1.50)     ref  ->  [sp+0x48]  class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.Symbol>
+;  V21 loc9         [V21,T76] (  3,  1.50)     ref  ->  [sp+0x54]  class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.Symbol>
 ;  V22 loc10        [V22,T77] (  3,  1.50)     ref  ->   r3         class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
 ;  V23 loc11        [V23,T67] (  4,  2   )     ref  ->   r0         class-hnd single-def <<unknown class>>
 ;* V24 loc12        [V24    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.ReadOnlySpan`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol]>
-;  V25 loc13        [V25,T06] (  6, 20.50)     int  ->  [sp+0xA4] 
+;  V25 loc13        [V25,T06] (  6, 20.50)     int  ->  [sp+0xA8] 
 ;  V26 loc14        [V26,T78] (  3,  1.50)   byref  ->   r2         single-def
-;  V27 loc15        [V27    ] (  3,  1.50)  struct ( 8) [sp+0x9C]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol]>
-;  V28 loc16        [V28,T11] (  5, 16   )     ref  ->  [sp+0x44]  class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol>
+;  V27 loc15        [V27    ] (  3,  1.50)  struct ( 8) [sp+0xA0]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ReadOnlySpan`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol]>
+;  V28 loc16        [V28,T11] (  5, 16   )     ref  ->  [sp+0x50]  class-hnd spill-single-def <Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol>
 ;  V29 OutArgs      [V29    ] (  1,  1   )  struct (20) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V30 tmp1         [V30,T57] (  2,  4   )     ref  ->   r3         class-hnd single-def "dup spill" <<unknown class>>
 ;* V31 tmp2         [V31    ] (  0,  0   )  struct ( 4) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol]>
-;  V32 tmp3         [V32,T27] (  5, 10.42)     ref  ->  [sp+0x40] 
+;  V32 tmp3         [V32,T27] (  5, 10.42)     ref  ->  [sp+0x4C] 
 ;* V33 tmp4         [V33    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Index>
 ;* V34 tmp5         [V34    ] (  0,  0   )  struct ( 4) zero-ref    <System.Index>
 ;* V35 tmp6         [V35    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Index>
-;  V36 tmp7         [V36,T51] (  5,  5   )     ref  ->  [sp+0x3C]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+;  V36 tmp7         [V36,T51] (  5,  5   )     ref  ->  [sp+0x48]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
 ;* V37 tmp8         [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
 ;  V38 tmp9         [V38,T60] (  3,  3   )     ref  ->   r3         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V39 tmp10        [V39,T87] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V40 tmp11        [V40    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol]>
-;  V41 tmp12        [V41,T40] (  3,  5.96)     int  ->  [sp+0x98]  spill-single-def "Inline stloc first use temp"
-;  V42 tmp13        [V42,T08] (  5, 16.84)     int  ->  [sp+0x94]  "Inline stloc first use temp"
+;  V41 tmp12        [V41,T40] (  3,  5.96)     int  ->  [sp+0x9C]  spill-single-def "Inline stloc first use temp"
+;  V42 tmp13        [V42,T08] (  5, 16.84)     int  ->  [sp+0x98]  "Inline stloc first use temp"
 ;* V43 tmp14        [V43    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol>
-;  V44 tmp15        [V44    ] (  7, 37.68)  struct (16) [sp+0x80]  do-not-enreg[SFA] multireg-arg must-init double-align "Inlining Arg" <Microsoft.CodeAnalysis.BitVector>
+;  V44 tmp15        [V44    ] (  7, 37.68)  struct (16) [sp+0x88]  do-not-enreg[SFA] multireg-arg must-init double-align "Inlining Arg" <Microsoft.CodeAnalysis.BitVector>
 ;* V45 tmp16        [V45    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V46 tmp17        [V46,T61] (  3,  3   )     ref  ->  [sp+0x38]  class-hnd exact spill-single-def "dup spill" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int]>
-;  V47 tmp18        [V47,T64] (  3,  3   )     int  ->  [sp+0x7C]  spill-single-def "Inlining Arg"
+;  V46 tmp17        [V46,T61] (  3,  3   )     ref  ->  [sp+0x44]  class-hnd exact spill-single-def "dup spill" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int]>
+;  V47 tmp18        [V47,T64] (  3,  3   )     int  ->  [sp+0x84]  spill-single-def "Inlining Arg"
 ;* V48 tmp19        [V48    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[int]>
 ;* V49 tmp20        [V49    ] (  0,  0   )  struct ( 4) zero-ref    "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[int]>
 ;  V50 tmp21        [V50,T62] (  3,  3   )     ref  ->   r0         class-hnd exact single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[int]>
@@ -66,34 +66,34 @@
 ;* V55 tmp26        [V55    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
 ;* V56 tmp27        [V56    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol]>
 ;* V57 tmp28        [V57    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.__Canon[]>
-;  V58 tmp29        [V58,T58] (  6,  3   )     int  ->  [sp+0x78]  "Inline stloc first use temp"
+;  V58 tmp29        [V58,T58] (  6,  3   )     int  ->  [sp+0x80]  "Inline stloc first use temp"
 ;  V59 tmp30        [V59,T71] (  2,  2   )     int  ->   lr         "Inlining Arg"
 ;* V60 tmp31        [V60    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol]>
-;  V61 tmp32        [V61,T69] (  2,  2   )   byref  ->  [sp+0x34]  spill-single-def "Inlining Arg"
+;  V61 tmp32        [V61,T69] (  2,  2   )   byref  ->  [sp+0x40]  spill-single-def "Inlining Arg"
 ;* V62 tmp33        [V62    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
-;  V63 tmp34        [V63,T35] (  2,  8   )     ref  ->   r8         class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-;  V64 tmp35        [V64,T03] (  7, 28   )     ref  ->  [sp+0x30]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
-;  V65 tmp36        [V65,T29] (  5, 10   )     int  ->  [sp+0x74]  spill-single-def "Inline stloc first use temp"
+;  V63 tmp34        [V63,T35] (  2,  8   )     ref  ->  [sp+0x3C]  class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V64 tmp35        [V64,T03] (  7, 28   )     ref  ->  [sp+0x38]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
+;  V65 tmp36        [V65,T29] (  5, 10   )     int  ->  [sp+0x7C]  spill-single-def "Inline stloc first use temp"
 ;* V66 tmp37        [V66    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V67 tmp38        [V67,T10] (  8, 16   )     int  ->  [sp+0x70]  "Inline return value spill temp"
-;  V68 tmp39        [V68,T20] (  3, 12   )     int  ->   lr         "Inlining Arg"
-;  V69 tmp40        [V69,T07] (  5, 20   )   byref  ->  [sp+0x2C]  spill-single-def "Inlining Arg"
-;  V70 tmp41        [V70,T28] (  5, 10   )     ref  ->  [sp+0x28]  class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
-;  V71 tmp42        [V71,T42] (  3,  6   )     ref  ->   r6         class-hnd exact "Inline stloc first use temp" <<unknown class>>
+;  V67 tmp38        [V67,T10] (  8, 16   )     int  ->  [sp+0x78]  "Inline return value spill temp"
+;  V68 tmp39        [V68,T20] (  3, 12   )     int  ->  r12         "Inlining Arg"
+;  V69 tmp40        [V69,T07] (  5, 20   )   byref  ->  [sp+0x34]  spill-single-def "Inlining Arg"
+;  V70 tmp41        [V70,T28] (  5, 10   )     ref  ->  [sp+0x30]  class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V71 tmp42        [V71,T42] (  3,  6   )     ref  ->   r9         class-hnd exact "Inline stloc first use temp" <<unknown class>>
 ;  V72 tmp43        [V72,T16] (  3, 12   )   byref  ->   r0         "impAppendStmt"
 ;  V73 tmp44        [V73,T17] (  3, 12   )   byref  ->   r3         "impAppendStmt"
 ;  V74 tmp45        [V74,T47] (  3,  6   )     int  ->   r1         "Inline return value spill temp"
 ;  V75 tmp46        [V75,T21] (  3, 12   )     int  ->   r1         "Inlining Arg"
 ;  V76 tmp47        [V76,T12] (  4, 16   )     int  ->   r2         "Inlining Arg"
 ;* V77 tmp48        [V77    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[ubyte]>
-;  V78 tmp49        [V78,T05] (  6, 24   )     ref  ->   r8         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[ubyte]>
-;  V79 tmp50        [V79,T30] (  5, 10   )     int  ->  [sp+0x6C]  spill-single-def "Inline stloc first use temp"
+;  V78 tmp49        [V78,T05] (  6, 24   )     ref  ->  [sp+0x2C]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[ubyte]>
+;  V79 tmp50        [V79,T30] (  5, 10   )     int  ->  [sp+0x74]  spill-single-def "Inline stloc first use temp"
 ;* V80 tmp51        [V80    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V81 tmp52        [V81,T48] (  3,  6   )     int  ->   r1         "Inline return value spill temp"
 ;  V82 tmp53        [V82,T22] (  3, 12   )     int  ->   r1         "Inlining Arg"
-;  V83 tmp54        [V83,T36] (  2,  8   )     int  ->  [sp+0x68]  spill-single-def "Inlining Arg"
-;  V84 tmp55        [V84,T04] (  7, 28   )     ref  ->  [sp+0x24]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[int]>
-;  V85 tmp56        [V85,T31] (  5, 10   )     int  ->  [sp+0x64]  spill-single-def "Inline stloc first use temp"
+;  V83 tmp54        [V83,T36] (  2,  8   )     int  ->  [sp+0x70]  spill-single-def "Inlining Arg"
+;  V84 tmp55        [V84,T04] (  7, 28   )     ref  ->  [sp+0x28]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[int]>
+;  V85 tmp56        [V85,T31] (  5, 10   )     int  ->  [sp+0x6C]  spill-single-def "Inline stloc first use temp"
 ;* V86 tmp57        [V86    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V87 tmp58        [V87,T49] (  3,  6   )     int  ->   r1         "Inline return value spill temp"
 ;  V88 tmp59        [V88,T23] (  3, 12   )     int  ->   r1         "Inlining Arg"
@@ -108,18 +108,18 @@
 ;  V97 tmp68        [V97    ] (  4,  8   )     ref  ->  [sp+0xB8]  do-not-enreg[X] addr-exposed "field V12._bits (fldOffset=0x8)" P-DEP
 ;  V98 tmp69        [V98    ] (  4,  8   )     int  ->  [sp+0xBC]  do-not-enreg[X] addr-exposed "field V12._capacity (fldOffset=0xc)" P-DEP
 ;* V99 tmp70        [V99    ] (  0,  0   )     int  ->  zero-ref    single-def "field V15._value (fldOffset=0x0)" P-INDEP
-;  V100 tmp71       [V100,T53] (  2,  4.50)   byref  ->  [sp+0x20]  spill-single-def "field V24._reference (fldOffset=0x0)" P-INDEP
-;  V101 tmp72       [V101,T33] (  4,  9   )     int  ->  [sp+0x60]  spill-single-def "field V24._length (fldOffset=0x4)" P-INDEP
-;  V102 tmp73       [V102    ] (  2,  1   )   byref  ->  [sp+0x9C]  do-not-enreg[X] addr-exposed "field V27._reference (fldOffset=0x0)" P-DEP
-;  V103 tmp74       [V103    ] (  2,  1   )     int  ->  [sp+0xA0]  do-not-enreg[X] addr-exposed "field V27._length (fldOffset=0x4)" P-DEP
+;  V100 tmp71       [V100,T53] (  2,  4.50)   byref  ->  [sp+0x24]  spill-single-def "field V24._reference (fldOffset=0x0)" P-INDEP
+;  V101 tmp72       [V101,T33] (  4,  9   )     int  ->  [sp+0x68]  spill-single-def "field V24._length (fldOffset=0x4)" P-INDEP
+;  V102 tmp73       [V102    ] (  2,  1   )   byref  ->  [sp+0xA0]  do-not-enreg[X] addr-exposed "field V27._reference (fldOffset=0x0)" P-DEP
+;  V103 tmp74       [V103    ] (  2,  1   )     int  ->  [sp+0xA4]  do-not-enreg[X] addr-exposed "field V27._length (fldOffset=0x4)" P-DEP
 ;* V104 tmp75       [V104    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V31.array (fldOffset=0x0)" P-INDEP
 ;* V105 tmp76       [V105,T91] (  0,  0   )     int  ->  zero-ref    single-def "field V33._value (fldOffset=0x0)" P-INDEP
 ;  V106 tmp77       [V106,T68] (  4,  2   )     int  ->   r0         "field V34._value (fldOffset=0x0)" P-INDEP
 ;* V107 tmp78       [V107,T92] (  0,  0   )     int  ->  zero-ref    single-def "field V35._value (fldOffset=0x0)" P-INDEP
-;  V108 tmp79       [V108,T52] (  2,  4.96)     ref  ->  [sp+0x1C]  spill-single-def "field V40.array (fldOffset=0x0)" P-INDEP
-;  V109 tmp80       [V109,T01] (  5, 32.68)    long  ->  [sp+0x80]  do-not-enreg[] single-def "field V44._bits0 (fldOffset=0x0)" P-DEP
-;  V110 tmp81       [V110,T00] (  5, 32.68)     ref  ->  [sp+0x88]  do-not-enreg[] single-def "field V44._bits (fldOffset=0x8)" P-DEP
-;  V111 tmp82       [V111,T02] (  5, 32.68)     int  ->  [sp+0x8C]  do-not-enreg[] single-def "field V44._capacity (fldOffset=0xc)" P-DEP
+;  V108 tmp79       [V108,T52] (  2,  4.96)     ref  ->  [sp+0x20]  spill-single-def "field V40.array (fldOffset=0x0)" P-INDEP
+;  V109 tmp80       [V109,T01] (  5, 32.68)    long  ->  [sp+0x88]  do-not-enreg[] single-def "field V44._bits0 (fldOffset=0x0)" P-DEP
+;  V110 tmp81       [V110,T00] (  5, 32.68)     ref  ->  [sp+0x90]  do-not-enreg[] single-def "field V44._bits (fldOffset=0x8)" P-DEP
+;  V111 tmp82       [V111,T02] (  5, 32.68)     int  ->  [sp+0x94]  do-not-enreg[] single-def "field V44._capacity (fldOffset=0xc)" P-DEP
 ;  V112 tmp83       [V112,T79] (  3,  1.50)     ref  ->   r1         single-def "field V49.array (fldOffset=0x0)" P-INDEP
 ;* V113 tmp84       [V113    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V51.array (fldOffset=0x0)" P-INDEP
 ;* V114 tmp85       [V114    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V52.array (fldOffset=0x0)" P-INDEP
@@ -134,20 +134,20 @@
 ;* V123 tmp94       [V123    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V124 tmp95       [V124,T13] (  2, 16   )     int  ->   r1         "argument with side effect"
 ;  V125 tmp96       [V125,T18] (  3, 12   )     ref  ->   r0         "arr expr"
-;  V126 tmp97       [V126,T24] (  3, 12   )     int  ->   r2         "index expr"
+;  V126 tmp97       [V126,T24] (  3, 12   )     int  ->   r1         "index expr"
 ;  V127 tmp98       [V127,T19] (  3, 12   )     ref  ->   r0         "arr expr"
 ;  V128 tmp99       [V128,T25] (  3, 12   )     int  ->   r1         "index expr"
 ;  V129 cse0        [V129,T50] (  3,  6   )     int  ->   r0         "CSE - conservative"
-;  V130 cse1        [V130,T32] (  3, 10   )     int  ->  [sp+0x5C]  spill-single-def "CSE - moderate"
+;  V130 cse1        [V130,T32] (  3, 10   )     int  ->  [sp+0x64]  spill-single-def "CSE - moderate"
 ;  V131 cse2        [V131,T83] (  3,  1.50)     int  ->   r1         "CSE - conservative"
-;  V132 cse3        [V132,T55] (  5,  4   )     int  ->  [sp+0x58]  spill-single-def "CSE - conservative"
+;  V132 cse3        [V132,T55] (  5,  4   )     int  ->  [sp+0x60]  spill-single-def "CSE - conservative"
 ;  V133 cse4        [V133,T43] (  3,  6   )     ref  ->   r1         "CSE - conservative"
-;  V134 cse5        [V134,T44] (  3,  6   )     ref  ->   r8         "CSE - conservative"
+;  V134 cse5        [V134,T44] (  3,  6   )     ref  ->   r2         "CSE - conservative"
 ;  V135 cse6        [V135,T45] (  3,  6   )     ref  ->   r0         "CSE - conservative"
 ;  V136 cse7        [V136,T46] (  3,  6   )     ref  ->   r0         "CSE - conservative"
 ;  V137 cse8        [V137,T81] (  3,  1.50)     ref  ->   r0         "CSE - conservative"
 ;  V138 cse9        [V138,T82] (  3,  1.50)     ref  ->   r0         "CSE - conservative"
-;  TEMP_01                                     ref  ->  [r11-0xC4]
+;  TEMP_01                                     ref  ->  [r11-0xC0]
 ;
 ; Lcl frame size = 192
 
@@ -156,37 +156,36 @@ G_M40621_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             sub     sp, 192
             add     r11, sp, 220
-            sub     r5, r11, 196
-            movs    r6, 21
+            sub     r5, r11, 192
+            movs    r6, 20
             movs    r2, 0
             movs    r4, 0
             stm     r5!, {r2,r4}
             subs    r6, 1
             bhi     SHORT pc-6 (-3 instructions)
-            str     r0, [sp+0x54]    // [V00 this]
-            ; GC ptr vars +{V00}
+            str     r2, [r5]
+            mov     r6, r0
+            ; gcrRegs +[r6]
             mov     r7, r1
             ; gcrRegs +[r7]
             mov     r4, r3
             ; gcrRegs +[r4]
-            ldr     r9, [sp+0xE8] // [V04 arg4]
-            ; gcrRegs +[r9]
             ldr     r5, [sp+0xEC]   // [V05 arg5]
             ; byrRegs +[r5]
             ldr     r8, [sp+0xF4]  // [V07 arg7]
-                     ;; size=44 bbWeight=1 PerfScore 17.00
-G_M40621_IG02:        ; bbWeight=1, gcVars=000000000000004000000000 {V00}, gcrefRegs=0290 {r4 r7 r9}, byrefRegs=0020 {r5}, gcvars, byref, isz
+                        ;; size=42 bbWeight=1 PerfScore 17.00
+G_M40621_IG02:        ; bbWeight=1, gcrefRegs=00D0 {r4 r6 r7}, byrefRegs=0020 {r5}, byref, isz
             ldr     r1, [sp+0xE4]
             ; gcrRegs +[r1]
             ldr     r12, [r1+0x04]
-            str     r12, [sp+0x58]
+            str     r12, [sp+0x60]
             mov     r1, r12
             ; gcrRegs -[r1]
             add     r0, sp, 176
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r3, [r3]
-            blx     r3     // Microsoft.CodeAnalysis.BitVector:Create(int):Microsoft.CodeAnalysis.BitVector
+            movw    r2, 0xd1ff
+            movt    r2, 0xd1ff
+            ldr     r2, [r2]
+            blx     r2     // Microsoft.CodeAnalysis.BitVector:Create(int):Microsoft.CodeAnalysis.BitVector
             mov     lr, 0
             ldr     r2, [r4+0x04]
             ; gcrRegs +[r2]
@@ -195,11 +194,11 @@ G_M40621_IG02:        ; bbWeight=1, gcVars=000000000000004000000000 {V00}, gcref
             cmp     r2, 0
             ble     SHORT G_M40621_IG06
                        ;; size=38 bbWeight=1 PerfScore 14.00
-G_M40621_IG03:        ; bbWeight=4, gcrefRegs=0290 {r4 r7 r9}, byrefRegs=0020 {r5}, byref, isz
+G_M40621_IG03:        ; bbWeight=4, gcrefRegs=00D0 {r4 r6 r7}, byrefRegs=0020 {r5}, byref, isz
             ldr     r2, [r5]
             ; gcrRegs +[r2]
             uxtb    r3, r8
-            str     lr, [sp+0xA8]
+            str     lr, [sp+0xAC]
             mov     r0, lr
             ldr     r1, [sp+0xE4]
             ; gcrRegs +[r1]
@@ -211,7 +210,7 @@ G_M40621_IG03:        ; bbWeight=4, gcrefRegs=0290 {r4 r7 r9}, byrefRegs=0020 {r
             cmp     r0, 0
             beq     SHORT G_M40621_IG05
                        ;; size=32 bbWeight=4 PerfScore 44.00
-G_M40621_IG04:        ; bbWeight=2, gcrefRegs=0291 {r0 r4 r7 r9}, byrefRegs=0020 {r5}, byref
+G_M40621_IG04:        ; bbWeight=2, gcrefRegs=00D1 {r0 r4 r6 r7}, byrefRegs=0020 {r5}, byref
             ldr     r3, [r0]
             ldr     r3, [r3+0x60]
             ldr     r3, [r3+0x14]
@@ -225,8 +224,8 @@ G_M40621_IG04:        ; bbWeight=2, gcrefRegs=0291 {r0 r4 r7 r9}, byrefRegs=0020
             ldr     r3, [r3]
             blx     r3     // Microsoft.CodeAnalysis.BitVector:set_Item(int,ubyte):this
...
  
  
  
Details
Improvements/regressions per collection
| Collection | Contexts with diffs | Improvements | Regressions | Same size | Improvements (bytes) | Regressions (bytes) | 
| benchmarks.run.linux.arm.checked.mch | 196 | 59 | 57 | 80 | -532 | +580 | 
| benchmarks.run_pgo.linux.arm.checked.mch | 351 | 95 | 144 | 112 | -698 | +1,222 | 
| benchmarks.run_tiered.linux.arm.checked.mch | 197 | 56 | 56 | 85 | -442 | +578 | 
| coreclr_tests.run.linux.arm.checked.mch | 1,488 | 308 | 503 | 677 | -3,088 | +5,230 | 
| libraries.crossgen2.linux.arm.checked.mch | 4 | 1 | 2 | 1 | -4 | +114 | 
| libraries.pmi.linux.arm.checked.mch | 992 | 231 | 311 | 450 | -2,010 | +2,658 | 
| libraries_tests.run.linux.arm.Release.mch | 7,641 | 2,149 | 2,814 | 2,678 | -24,874 | +40,352 | 
| librariestestsnotieredcompilation.run.linux.arm.Release.mch | 1,211 | 331 | 330 | 550 | -3,514 | +2,830 | 
| realworld.run.linux.arm.checked.mch | 260 | 74 | 66 | 120 | -788 | +590 | 
|  | 12,340 | 3,304 | 4,283 | 4,753 | -35,950 | +54,154 | 
Context information
| Collection | Diffed contexts | MinOpts | FullOpts | Missed, base | Missed, diff | 
| benchmarks.run.linux.arm.checked.mch | 45,861 | 5,309 | 40,552 | 1,203 (2.56%) | 1,203 (2.56%) | 
| benchmarks.run_pgo.linux.arm.checked.mch | 163,476 | 59,183 | 104,293 | 3,288 (1.97%) | 3,288 (1.97%) | 
| benchmarks.run_tiered.linux.arm.checked.mch | 77,676 | 42,033 | 35,643 | 1,064 (1.35%) | 1,064 (1.35%) | 
| coreclr_tests.run.linux.arm.checked.mch | 472,233 | 259,246 | 212,987 | 7,156 (1.49%) | 7,156 (1.49%) | 
| libraries.crossgen2.linux.arm.checked.mch | 1,763 | 0 | 1,763 | 0 (0.00%) | 0 (0.00%) | 
| libraries.pmi.linux.arm.checked.mch | 272,134 | 6 | 272,128 | 7,783 (2.78%) | 7,783 (2.78%) | 
| libraries_tests.run.linux.arm.Release.mch | 709,365 | 442,605 | 266,760 | 16,220 (2.24%) | 16,220 (2.24%) | 
| librariestestsnotieredcompilation.run.linux.arm.Release.mch | 274,609 | 21,604 | 253,005 | 33,211 (10.79%) | 33,211 (10.79%) | 
| realworld.run.linux.arm.checked.mch | 36,394 | 153 | 36,241 | 1,407 (3.72%) | 1,407 (3.72%) | 
|  | 2,053,511 | 830,139 | 1,223,372 | 71,332 (3.36%) | 71,332 (3.36%) | 
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: 15239630 (overridden on cmd)
Total bytes of diff: 15239678 (overridden on cmd)
Total bytes of delta: 48 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
         108 : 17064.dasm (7.01 % of base)
          46 : 17417.dasm (2.82 % of base)
          36 : 23447.dasm (1.94 % of base)
          30 : 46328.dasm (2.12 % of base)
          28 : 13121.dasm (0.37 % of base)
          28 : 38615.dasm (0.35 % of base)
          22 : 23253.dasm (0.35 % of base)
          18 : 23490.dasm (1.71 % of base)
          16 : 7883.dasm (0.39 % of base)
          14 : 31432.dasm (1.51 % of base)
          14 : 39812.dasm (1.31 % of base)
          12 : 12667.dasm (0.66 % of base)
          10 : 14364.dasm (1.35 % of base)
          10 : 20850.dasm (1.30 % of base)
          10 : 3056.dasm (0.55 % of base)
          10 : 2985.dasm (0.68 % of base)
          10 : 46327.dasm (1.14 % of base)
           8 : 12786.dasm (1.19 % of base)
           8 : 14227.dasm (2.52 % of base)
           8 : 23491.dasm (0.36 % of base)
Top file improvements (bytes):
         -76 : 38612.dasm (-1.58 % of base)
         -30 : 2171.dasm (-5.77 % of base)
         -28 : 13467.dasm (-2.22 % of base)
         -26 : 21351.dasm (-2.30 % of base)
         -26 : 3194.dasm (-1.59 % of base)
         -20 : 4208.dasm (-6.45 % of base)
         -18 : 4246.dasm (-0.62 % of base)
         -18 : 40285.dasm (-4.46 % of base)
         -16 : 23541.dasm (-0.86 % of base)
         -16 : 6597.dasm (-1.24 % of base)
         -14 : 37466.dasm (-4.24 % of base)
         -12 : 14277.dasm (-0.64 % of base)
         -12 : 17721.dasm (-0.36 % of base)
         -12 : 33606.dasm (-4.62 % of base)
         -12 : 4185.dasm (-0.55 % of base)
         -10 : 21353.dasm (-1.08 % of base)
         -10 : 23865.dasm (-1.44 % of base)
          -8 : 10423.dasm (-0.24 % of base)
          -8 : 13993.dasm (-0.56 % of base)
          -8 : 7154.dasm (-0.71 % of base)
58 total files with Code Size differences (29 improved, 29 regressed), 20 unchanged.
Top method regressions (bytes):
         108 (7.01 % of base) : 17064.dasm - AssignJagged:second_assignments(int[][],short[][]) (FullOpts)
          46 (2.82 % of base) : 17417.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (FullOpts)
          36 (1.94 % of base) : 23447.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
          30 (2.12 % of base) : 46328.dasm - SciMark2.LU:factor(double[][],int[]):int (FullOpts)
          28 (0.37 % of base) : 13121.dasm - Jil.Deserialize.Methods:_ReadISO8601Date(System.IO.TextReader,ushort[]):System.DateTime (FullOpts)
          28 (0.35 % of base) : 38615.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,ushort[]):System.DateTimeOffset (FullOpts)
          22 (0.35 % of base) : 23253.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
          18 (1.71 % of base) : 23490.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbolsWithNoPiaLocalTypes(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):ubyte:this (FullOpts)
          16 (0.39 % of base) : 7883.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
          14 (1.51 % of base) : 31432.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):int[]:this (FullOpts)
          14 (1.31 % of base) : 39812.dasm - BenchmarksGame.KNucleotide_9:loadThreeData(System.IO.Stream) (FullOpts)
          12 (0.66 % of base) : 12667.dasm - System.Number:TryParseNumber(byref,uint,int,byref,System.Globalization.NumberFormatInfo):ubyte (FullOpts)
          10 (1.30 % of base) : 20850.dasm - Benchstone.BenchF.InProd:Test():ubyte:this (FullOpts)
          10 (1.35 % of base) : 14364.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (FullOpts)
          10 (1.14 % of base) : 46327.dasm - SciMark2.kernel:CopyMatrix(double[][],double[][]) (FullOpts)
          10 (0.68 % of base) : 2985.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodMetadataToken(System.Reflection.ConstructorInfo):int:this (FullOpts)
          10 (0.55 % of base) : 3056.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (FullOpts)
           8 (1.19 % of base) : 12786.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (FullOpts)
           8 (0.36 % of base) : 23491.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
           8 (0.61 % of base) : 25168.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GenerateBaseParameterlessConstructorInitializer(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCall (FullOpts)
Top method improvements (bytes):
         -76 (-1.58 % of base) : 38612.dasm - Jil.Deserialize.Methods:SkipWithLeadChar(System.IO.TextReader,int) (FullOpts)
         -30 (-5.77 % of base) : 2171.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
         -28 (-2.22 % of base) : 13467.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (FullOpts)
         -26 (-2.30 % of base) : 21351.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (FullOpts)
         -26 (-1.59 % of base) : 3194.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)
         -20 (-6.45 % of base) : 4208.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (FullOpts)
         -18 (-4.46 % of base) : 40285.dasm - Benchstone.BenchI.AddArray2:BenchInner1(int[][],byref) (FullOpts)
         -18 (-0.62 % of base) : 4246.dasm - System.Uri:CheckAuthorityHelper(uint,int,int,byref,byref,System.UriParser,byref):int:this (FullOpts)
         -16 (-0.86 % of base) : 23541.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager:SetupReferencesForFileAssembly(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager+AssemblyDataForFile,Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol][],byref,byref,Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol) (FullOpts)
         -16 (-1.24 % of base) : 6597.dasm - System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver:.ctor(System.Text.Json.JsonSerializerOptions,System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions,System.Type,ubyte):this (FullOpts)
         -14 (-4.24 % of base) : 37466.dasm - Benchstone.BenchF.SqMtx:Test():ubyte:this (FullOpts)
         -12 (-4.62 % of base) : 33606.dasm - Benchstone.BenchI.XposMatrix:Test():ubyte:this (FullOpts)
         -12 (-0.64 % of base) : 14277.dasm - System.Enum:FormatFlagNames[uint](System.Enum+EnumInfo`1[uint],uint):System.String (FullOpts)
         -12 (-0.36 % of base) : 17721.dasm - System.Number:FormatBigInteger(ubyte,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref,byref):System.String (FullOpts)
         -12 (-0.55 % of base) : 4185.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:BuildCertsWithKeys(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.Asn1.Pkcs12.CertBagAsn[],System.Security.Cryptography.Asn1.AttributeAsn[][],System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey[],int,System.Security.Cryptography.Asn1.Pkcs12.SafeBagAsn[],System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+RentedSubjectPublicKeyInfo[],System.Security.Cryptography.AsymmetricAlgorithm[],int):this (FullOpts)
         -10 (-1.08 % of base) : 21353.dasm - LUDecomp:lubksb(double[][],int,int[],double[]) (FullOpts)
         -10 (-1.44 % of base) : 23865.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:GetParameters(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol] (FullOpts)
          -8 (-0.24 % of base) : 10423.dasm - Sigil.Emit`1[System.__Canon]:ValidateTryCatchFinallyBranches():this (FullOpts)
          -8 (-0.56 % of base) : 13993.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
          -8 (-0.71 % of base) : 7154.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
Top method regressions (percentages):
         108 (7.01 % of base) : 17064.dasm - AssignJagged:second_assignments(int[][],short[][]) (FullOpts)
          46 (2.82 % of base) : 17417.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (FullOpts)
           8 (2.52 % of base) : 14227.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (FullOpts)
           2 (2.38 % of base) : 16238.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
          30 (2.12 % of base) : 46328.dasm - SciMark2.LU:factor(double[][],int[]):int (FullOpts)
          36 (1.94 % of base) : 23447.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
           6 (1.74 % of base) : 16665.dasm - System.Reflection.RuntimePropertyInfo:SetValue(System.Object,System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):this (FullOpts)
          18 (1.71 % of base) : 23490.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbolsWithNoPiaLocalTypes(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):ubyte:this (FullOpts)
          14 (1.51 % of base) : 31432.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):int[]:this (FullOpts)
           6 (1.50 % of base) : 26678.dasm - System.Collections.Concurrent.ConcurrentBag`1[int]:ToArray():int[]:this (FullOpts)
          10 (1.35 % of base) : 14364.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (FullOpts)
          14 (1.31 % of base) : 39812.dasm - BenchmarksGame.KNucleotide_9:loadThreeData(System.IO.Stream) (FullOpts)
          10 (1.30 % of base) : 20850.dasm - Benchstone.BenchF.InProd:Test():ubyte:this (FullOpts)
           2 (1.20 % of base) : 12356.dasm - System.MemoryExtensions:TrimEnd(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort] (FullOpts)
           8 (1.19 % of base) : 12786.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (FullOpts)
          10 (1.14 % of base) : 46327.dasm - SciMark2.kernel:CopyMatrix(double[][],double[][]) (FullOpts)
           4 (0.97 % of base) : 8150.dasm - System.Globalization.CompareInfo:StartsWithOrdinalIgnoreCaseHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,uint):ubyte:this (FullOpts)
           4 (0.92 % of base) : 279.dasm - System.Reflection.RuntimeAssembly:GetType(System.String,ubyte,ubyte):System.Type:this (FullOpts)
           6 (0.90 % of base) : 3629.dasm - System.Reflection.SignatureTypeExtensions:TryResolve(System.Reflection.SignatureType,System.Type[]):System.Type (FullOpts)
           2 (0.88 % of base) : 7818.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
Top method improvements (percentages):
         -20 (-6.45 % of base) : 4208.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (FullOpts)
         -30 (-5.77 % of base) : 2171.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
         -12 (-4.62 % of base) : 33606.dasm - Benchstone.BenchI.XposMatrix:Test():ubyte:this (FullOpts)
         -18 (-4.46 % of base) : 40285.dasm - Benchstone.BenchI.AddArray2:BenchInner1(int[][],byref) (FullOpts)
         -14 (-4.24 % of base) : 37466.dasm - Benchstone.BenchF.SqMtx:Test():ubyte:this (FullOpts)
          -4 (-2.67 % of base) : 4906.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:AddUniqueStatus(System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509ChainStatus],byref) (FullOpts)
          -4 (-2.56 % of base) : 12355.dasm - System.MemoryExtensions:TrimStart(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort] (FullOpts)
         -26 (-2.30 % of base) : 21351.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (FullOpts)
         -28 (-2.22 % of base) : 13467.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (FullOpts)
          -2 (-1.61 % of base) : 3105.dasm - System.Buffers.Latin1CharSearchValues:IndexOfAny[System.Buffers.IndexOfAnyAsciiSearcher+Negate](byref,int):int:this (FullOpts)
         -26 (-1.59 % of base) : 3194.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)
         -76 (-1.58 % of base) : 38612.dasm - Jil.Deserialize.Methods:SkipWithLeadChar(System.IO.TextReader,int) (FullOpts)
         -10 (-1.44 % of base) : 23865.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:GetParameters(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol] (FullOpts)
         -16 (-1.24 % of base) : 6597.dasm - System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver:.ctor(System.Text.Json.JsonSerializerOptions,System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions,System.Type,ubyte):this (FullOpts)
          -6 (-1.21 % of base) : 7153.dasm - System.Text.Unicode.Utf8:ToUtf16(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte,ubyte):int (FullOpts)
         -10 (-1.08 % of base) : 21353.dasm - LUDecomp:lubksb(double[][],int,int[],double[]) (FullOpts)
          -2 (-0.95 % of base) : 42301.dasm - System.SpanHelpers:NonPackedContainsValueType[int](byref,int,int):ubyte (FullOpts)
         -16 (-0.86 % of base) : 23541.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager:SetupReferencesForFileAssembly(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager+AssemblyDataForFile,Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol][],byref,byref,Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol) (FullOpts)
          -4 (-0.82 % of base) : 42313.dasm - Benchstone.BenchI.Array2:VerifyCopy(int[][][],int[][][]):ubyte (FullOpts)
          -4 (-0.74 % of base) : 12720.dasm - System.Xml.XmlUTF8TextReader:ReadQualifiedName(System.Xml.PrefixHandle,System.Xml.StringHandle):this (FullOpts)
  
benchmarks.run_pgo.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 66294036 (overridden on cmd)
Total bytes of diff: 66294560 (overridden on cmd)
Total bytes of delta: 524 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
         108 : 67271.dasm (7.01 % of base)
          46 : 68465.dasm (2.82 % of base)
          36 : 41054.dasm (0.36 % of base)
          32 : 95408.dasm (1.71 % of base)
          30 : 162168.dasm (2.12 % of base)
          28 : 138546.dasm (0.35 % of base)
          28 : 52853.dasm (0.37 % of base)
          24 : 74594.dasm (0.35 % of base)
          24 : 153208.dasm (1.10 % of base)
          22 : 78682.dasm (1.75 % of base)
          20 : 22647.dasm (0.26 % of base)
          20 : 97338.dasm (0.45 % of base)
          18 : 139759.dasm (0.77 % of base)
          18 : 58921.dasm (0.82 % of base)
          18 : 95527.dasm (1.71 % of base)
          18 : 122276.dasm (0.77 % of base)
          18 : 137080.dasm (0.74 % of base)
          18 : 21207.dasm (0.93 % of base)
          16 : 22646.dasm (0.38 % of base)
          16 : 371.dasm (1.58 % of base)
Top file improvements (bytes):
         -30 : 9838.dasm (-5.77 % of base)
         -28 : 50515.dasm (-2.41 % of base)
         -26 : 90714.dasm (-2.30 % of base)
         -26 : 6992.dasm (-1.58 % of base)
         -22 : 95664.dasm (-1.15 % of base)
         -20 : 15212.dasm (-6.45 % of base)
         -18 : 12981.dasm (-0.62 % of base)
         -18 : 27362.dasm (-2.04 % of base)
         -18 : 145647.dasm (-4.46 % of base)
         -16 : 96230.dasm (-2.00 % of base)
         -16 : 161514.dasm (-0.84 % of base)
         -16 : 9172.dasm (-8.99 % of base)
         -16 : 95544.dasm (-0.82 % of base)
         -16 : 100071.dasm (-6.72 % of base)
         -16 : 115082.dasm (-2.00 % of base)
         -16 : 55351.dasm (-0.84 % of base)
         -16 : 56490.dasm (-0.84 % of base)
         -14 : 47942.dasm (-0.92 % of base)
         -14 : 105194.dasm (-0.39 % of base)
         -14 : 139420.dasm (-4.24 % of base)
64 total files with Code Size differences (31 improved, 33 regressed), 20 unchanged.
Top method regressions (bytes):
         108 (7.01 % of base) : 67271.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier0-FullOpts)
          46 (2.82 % of base) : 68465.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (Tier0-FullOpts)
          36 (0.36 % of base) : 41054.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Tier0-FullOpts)
          32 (1.71 % of base) : 95408.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (Tier0-FullOpts)
          30 (2.12 % of base) : 162168.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier0-FullOpts)
          28 (0.37 % of base) : 52853.dasm - Jil.Deserialize.Methods:_ReadISO8601Date(System.IO.TextReader,ushort[]):System.DateTime (Tier0-FullOpts)
          28 (0.35 % of base) : 138546.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,ushort[]):System.DateTimeOffset (Tier0-FullOpts)
          24 (0.35 % of base) : 74594.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this (Tier0-FullOpts)
          24 (1.10 % of base) : 153208.dasm - System.Text.Json.Utf8JsonWriter:WriteStringEscapeValue(System.ReadOnlySpan`1[ushort],int):this (Tier1)
          22 (1.75 % of base) : 78682.dasm - System.Diagnostics.Tracing.EventSource:DoCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this (Tier0-FullOpts)
          20 (0.45 % of base) : 97338.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol,System.Reflection.Metadata.PropertyDefinitionHandle,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.MetadataDecoder):this (Tier1)
          20 (0.26 % of base) : 22647.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
          18 (1.71 % of base) : 95527.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbolsWithNoPiaLocalTypes(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):ubyte:this (Tier0-FullOpts)
          18 (0.74 % of base) : 137080.dasm - System.Runtime.CompilerServices.ValueTaskAwaiter`1[int]:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (Tier1)
          18 (0.93 % of base) : 21207.dasm - System.Text.CompositeFormat:TryParseLiterals(System.ReadOnlySpan`1[ushort],System.Collections.Generic.List`1[System.ValueTuple`4[System.String,int,int,System.String]],byref,byref):ubyte (Tier0-FullOpts)
          18 (0.77 % of base) : 139759.dasm - System.Text.Json.Utf8JsonWriter:WriteStringEscapeValue(System.ReadOnlySpan`1[ubyte],int):this (Tier1)
          18 (0.77 % of base) : 122276.dasm - System.Text.Json.Utf8JsonWriter:WriteStringEscapeValue(System.ReadOnlySpan`1[ubyte],int):this (Tier1)
          18 (0.82 % of base) : 58921.dasm - System.Text.Json.Utf8JsonWriter:WriteStringEscapeValue(System.ReadOnlySpan`1[ushort],int):this (Tier1)
          16 (1.58 % of base) : 371.dasm - System.Globalization.CultureData:NormalizeCultureName(System.String,System.ReadOnlySpan`1[ushort],byref):System.String (Tier0-FullOpts)
          16 (0.38 % of base) : 22646.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
Top method improvements (bytes):
         -30 (-5.77 % of base) : 9838.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (Tier0-FullOpts)
         -28 (-2.41 % of base) : 50515.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (Tier0-FullOpts)
         -26 (-2.30 % of base) : 90714.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier0-FullOpts)
         -26 (-1.58 % of base) : 6992.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0-FullOpts)
         -22 (-1.15 % of base) : 95664.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager:SetupReferencesForFileAssembly(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager+AssemblyDataForFile,Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol][],byref,byref,Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol) (Tier0-FullOpts)
         -20 (-6.45 % of base) : 15212.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (Tier0-FullOpts)
         -18 (-4.46 % of base) : 145647.dasm - Benchstone.BenchI.AddArray2:BenchInner1(int[][],byref) (Tier0-FullOpts)
         -18 (-2.04 % of base) : 27362.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (Tier0-FullOpts)
         -18 (-0.62 % of base) : 12981.dasm - System.Uri:CheckAuthorityHelper(uint,int,int,byref,byref,System.UriParser,byref):int:this (Tier0-FullOpts)
         -16 (-0.82 % of base) : 95544.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:BuildReferencedAssembliesAndModulesMaps(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],int,int,System.Collections.Generic.IReadOnlyDictionary`2[System.__Canon,System.__Canon],ubyte,byref,byref,byref,byref) (Tier0-FullOpts)
         -16 (-6.72 % of base) : 100071.dasm - Microsoft.CodeAnalysis.CSharp.BoundBlock:.ctor(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionSymbol],ubyte,Microsoft.CodeAnalysis.CSharp.BoundBlockInstrumentation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],ubyte):this (Tier1)
         -16 (-2.00 % of base) : 96230.dasm - Roslyn.Utilities.StringTable:AddSharedUtf8(System.ReadOnlySpan`1[ubyte]):System.String (Tier1)
         -16 (-2.00 % of base) : 115082.dasm - Roslyn.Utilities.StringTable:AddSharedUtf8(System.ReadOnlySpan`1[ubyte]):System.String (Tier1)
         -16 (-8.99 % of base) : 9172.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,uint,System.Object) (Tier1)
         -16 (-0.84 % of base) : 161514.dasm - System.Uri:CreateUri(System.Uri,System.String,ubyte):this (Tier1)
         -16 (-0.84 % of base) : 55351.dasm - System.Uri:CreateUri(System.Uri,System.String,ubyte):this (Tier1)
         -16 (-0.84 % of base) : 56490.dasm - System.Uri:CreateUri(System.Uri,System.String,ubyte):this (Tier1)
         -14 (-4.24 % of base) : 139420.dasm - Benchstone.BenchF.SqMtx:Test():ubyte:this (Tier0-FullOpts)
         -14 (-0.39 % of base) : 105194.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeArguments(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbol,ubyte,System.Collections.Immutable.ImmutableArray`1[int],byref,byref,ubyte):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]:this (Tier1)
         -14 (-1.59 % of base) : 80537.dasm - System.Reflection.TypeNameParser:Parse():System.Type:this (Tier1)
Top method regressions (percentages):
         108 (7.01 % of base) : 67271.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier0-FullOpts)
          46 (2.82 % of base) : 68465.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (Tier0-FullOpts)
           8 (2.52 % of base) : 58733.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (Tier0-FullOpts)
           2 (2.38 % of base) : 62870.dasm - System.Xml.XmlReader:MoveToContent():int:this (Tier0-FullOpts)
          30 (2.12 % of base) : 162168.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier0-FullOpts)
           4 (1.89 % of base) : 117325.dasm - System.Collections.Concurrent.ConcurrentBag`1[int]:CopyFromEachQueueToArray(int[],int):int:this (Tier0-FullOpts)
          22 (1.75 % of base) : 78682.dasm - System.Diagnostics.Tracing.EventSource:DoCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this (Tier0-FullOpts)
          18 (1.71 % of base) : 95527.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbolsWithNoPiaLocalTypes(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):ubyte:this (Tier0-FullOpts)
          32 (1.71 % of base) : 95408.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (Tier0-FullOpts)
          16 (1.58 % of base) : 371.dasm - System.Globalization.CultureData:NormalizeCultureName(System.String,System.ReadOnlySpan`1[ushort],byref):System.String (Tier0-FullOpts)
           4 (1.55 % of base) : 115674.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BoundTypeExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier1)
          14 (1.51 % of base) : 125539.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):int[]:this (Tier0-FullOpts)
           6 (1.44 % of base) : 19109.dasm - System.Globalization.CompareInfo:StartsWithOrdinalIgnoreCaseHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,uint):ubyte:this (Tier0-FullOpts)
          10 (1.35 % of base) : 57634.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier0-FullOpts)
          14 (1.31 % of base) : 141449.dasm - BenchmarksGame.KNucleotide_9:loadThreeData(System.IO.Stream) (Tier0-FullOpts)
          10 (1.30 % of base) : 84389.dasm - Benchstone.BenchF.InProd:Test():ubyte:this (Tier0-FullOpts)
           4 (1.23 % of base) : 82783.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:set_Item(System.__Canon,System.__Canon):this (Tier1)
           8 (1.19 % of base) : 52300.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier0-FullOpts)
           4 (1.16 % of base) : 104457.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier1)
          10 (1.14 % of base) : 162167.dasm - SciMark2.kernel:CopyMatrix(double[][],double[][]) (Tier0-FullOpts)
Top method improvements (percentages):
         -16 (-8.99 % of base) : 9172.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,uint,System.Object) (Tier1)
         -16 (-6.72 % of base) : 100071.dasm - Microsoft.CodeAnalysis.CSharp.BoundBlock:.ctor(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionSymbol],ubyte,Microsoft.CodeAnalysis.CSharp.BoundBlockInstrumentation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],ubyte):this (Tier1)
         -20 (-6.45 % of base) : 15212.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (Tier0-FullOpts)
         -30 (-5.77 % of base) : 9838.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (Tier0-FullOpts)
         -12 (-4.62 % of base) : 127366.dasm - Benchstone.BenchI.XposMatrix:Test():ubyte:this (Tier0-FullOpts)
          -8 (-4.55 % of base) : 4943.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
         -18 (-4.46 % of base) : 145647.dasm - Benchstone.BenchI.AddArray2:BenchInner1(int[][],byref) (Tier0-FullOpts)
         -14 (-4.24 % of base) : 139420.dasm - Benchstone.BenchF.SqMtx:Test():ubyte:this (Tier0-FullOpts)
          -8 (-3.20 % of base) : 58817.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,uint,System.Object) (Tier1)
          -6 (-2.86 % of base) : 365.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
          -4 (-2.67 % of base) : 17408.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:AddUniqueStatus(System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509ChainStatus],byref) (Tier0-FullOpts)
         -28 (-2.41 % of base) : 50515.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (Tier0-FullOpts)
         -26 (-2.30 % of base) : 90714.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier0-FullOpts)
         -18 (-2.04 % of base) : 27362.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (Tier0-FullOpts)
         -16 (-2.00 % of base) : 96230.dasm - Roslyn.Utilities.StringTable:AddSharedUtf8(System.ReadOnlySpan`1[ubyte]):System.String (Tier1)
         -16 (-2.00 % of base) : 115082.dasm - Roslyn.Utilities.StringTable:AddSharedUtf8(System.ReadOnlySpan`1[ubyte]):System.String (Tier1)
         -14 (-1.59 % of base) : 80537.dasm - System.Reflection.TypeNameParser:Parse():System.Type:this (Tier1)
         -26 (-1.58 % of base) : 6992.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0-FullOpts)
         -10 (-1.44 % of base) : 96493.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:GetParameters(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol] (Tier0-FullOpts)
          -6 (-1.20 % of base) : 21460.dasm - System.Text.Unicode.Utf8:ToUtf16(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte,ubyte):int (Tier0-FullOpts)
  
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: 20339974 (overridden on cmd)
Total bytes of diff: 20340110 (overridden on cmd)
Total bytes of delta: 136 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
         108 : 37559.dasm (7.01 % of base)
          46 : 35876.dasm (2.82 % of base)
          36 : 48035.dasm (1.94 % of base)
          30 : 78245.dasm (2.12 % of base)
          28 : 68576.dasm (0.35 % of base)
          28 : 31208.dasm (0.37 % of base)
          22 : 47684.dasm (0.35 % of base)
          18 : 48138.dasm (1.71 % of base)
          16 : 13577.dasm (0.39 % of base)
          14 : 63825.dasm (1.51 % of base)
          14 : 69387.dasm (1.31 % of base)
          12 : 27119.dasm (0.66 % of base)
          12 : 51898.dasm (0.90 % of base)
          10 : 32284.dasm (1.35 % of base)
          10 : 17940.dasm (0.68 % of base)
          10 : 43277.dasm (1.30 % of base)
          10 : 18082.dasm (0.55 % of base)
          10 : 78244.dasm (1.14 % of base)
           8 : 27826.dasm (1.19 % of base)
           8 : 342.dasm (0.84 % of base)
Top file improvements (bytes):
         -30 : 14820.dasm (-5.77 % of base)
         -28 : 31038.dasm (-2.22 % of base)
         -26 : 18320.dasm (-1.59 % of base)
         -26 : 44838.dasm (-2.30 % of base)
         -20 : 6059.dasm (-6.45 % of base)
         -18 : 6424.dasm (-0.62 % of base)
         -18 : 70865.dasm (-4.46 % of base)
         -16 : 48318.dasm (-0.86 % of base)
         -16 : 17244.dasm (-1.24 % of base)
         -14 : 68926.dasm (-4.24 % of base)
         -12 : 39259.dasm (-0.36 % of base)
         -12 : 64418.dasm (-4.62 % of base)
         -12 : 6031.dasm (-0.55 % of base)
         -10 : 44840.dasm (-1.08 % of base)
         -10 : 49015.dasm (-1.44 % of base)
          -8 : 13578.dasm (-0.10 % of base)
          -8 : 27980.dasm (-0.56 % of base)
          -8 : 14957.dasm (-0.71 % of base)
          -8 : 8061.dasm (-0.40 % of base)
          -8 : 23841.dasm (-0.24 % of base)
55 total files with Code Size differences (27 improved, 28 regressed), 20 unchanged.
Top method regressions (bytes):
         108 (7.01 % of base) : 37559.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier0-FullOpts)
          46 (2.82 % of base) : 35876.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (Tier0-FullOpts)
          36 (1.94 % of base) : 48035.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (Tier0-FullOpts)
          30 (2.12 % of base) : 78245.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier0-FullOpts)
          28 (0.37 % of base) : 31208.dasm - Jil.Deserialize.Methods:_ReadISO8601Date(System.IO.TextReader,ushort[]):System.DateTime (Tier0-FullOpts)
          28 (0.35 % of base) : 68576.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,ushort[]):System.DateTimeOffset (Tier0-FullOpts)
          22 (0.35 % of base) : 47684.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (Tier0-FullOpts)
          18 (1.71 % of base) : 48138.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbolsWithNoPiaLocalTypes(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):ubyte:this (Tier0-FullOpts)
          16 (0.39 % of base) : 13577.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
          14 (1.51 % of base) : 63825.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):int[]:this (Tier0-FullOpts)
          14 (1.31 % of base) : 69387.dasm - BenchmarksGame.KNucleotide_9:loadThreeData(System.IO.Stream) (Tier0-FullOpts)
          12 (0.90 % of base) : 51898.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GenerateBaseParameterlessConstructorInitializer(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCall (Tier0-FullOpts)
          12 (0.66 % of base) : 27119.dasm - System.Number:TryParseNumber(byref,uint,int,byref,System.Globalization.NumberFormatInfo):ubyte (Tier0-FullOpts)
          10 (1.30 % of base) : 43277.dasm - Benchstone.BenchF.InProd:Test():ubyte:this (Tier0-FullOpts)
          10 (1.35 % of base) : 32284.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier0-FullOpts)
          10 (1.14 % of base) : 78244.dasm - SciMark2.kernel:CopyMatrix(double[][],double[][]) (Tier0-FullOpts)
          10 (0.68 % of base) : 17940.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodMetadataToken(System.Reflection.ConstructorInfo):int:this (Tier0-FullOpts)
          10 (0.55 % of base) : 18082.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (Tier0-FullOpts)
           8 (1.19 % of base) : 27826.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier0-FullOpts)
           8 (2.52 % of base) : 32765.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (Tier0-FullOpts)
Top method improvements (bytes):
         -30 (-5.77 % of base) : 14820.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (Tier0-FullOpts)
         -28 (-2.22 % of base) : 31038.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (Tier0-FullOpts)
         -26 (-2.30 % of base) : 44838.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier0-FullOpts)
         -26 (-1.59 % of base) : 18320.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0-FullOpts)
         -20 (-6.45 % of base) : 6059.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (Tier0-FullOpts)
         -18 (-4.46 % of base) : 70865.dasm - Benchstone.BenchI.AddArray2:BenchInner1(int[][],byref) (Tier0-FullOpts)
         -18 (-0.62 % of base) : 6424.dasm - System.Uri:CheckAuthorityHelper(uint,int,int,byref,byref,System.UriParser,byref):int:this (Tier0-FullOpts)
         -16 (-0.86 % of base) : 48318.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager:SetupReferencesForFileAssembly(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager+AssemblyDataForFile,Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol][],byref,byref,Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol) (Tier0-FullOpts)
         -16 (-1.24 % of base) : 17244.dasm - System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver:.ctor(System.Text.Json.JsonSerializerOptions,System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions,System.Type,ubyte):this (Tier0-FullOpts)
         -14 (-4.24 % of base) : 68926.dasm - Benchstone.BenchF.SqMtx:Test():ubyte:this (Tier0-FullOpts)
         -12 (-4.62 % of base) : 64418.dasm - Benchstone.BenchI.XposMatrix:Test():ubyte:this (Tier0-FullOpts)
         -12 (-0.36 % of base) : 39259.dasm - System.Number:FormatBigInteger(ubyte,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref,byref):System.String (Tier0-FullOpts)
         -12 (-0.55 % of base) : 6031.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:BuildCertsWithKeys(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.Asn1.Pkcs12.CertBagAsn[],System.Security.Cryptography.Asn1.AttributeAsn[][],System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey[],int,System.Security.Cryptography.Asn1.Pkcs12.SafeBagAsn[],System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+RentedSubjectPublicKeyInfo[],System.Security.Cryptography.AsymmetricAlgorithm[],int):this (Tier0-FullOpts)
         -10 (-1.08 % of base) : 44840.dasm - LUDecomp:lubksb(double[][],int,int[],double[]) (Tier0-FullOpts)
         -10 (-1.44 % of base) : 49015.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:GetParameters(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol] (Tier0-FullOpts)
          -8 (-0.24 % of base) : 23841.dasm - Sigil.Emit`1[System.__Canon]:ValidateTryCatchFinallyBranches():this (Tier0-FullOpts)
          -8 (-0.40 % of base) : 8061.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Tier0-FullOpts)
          -8 (-0.56 % of base) : 27980.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (Tier0-FullOpts)
          -8 (-0.71 % of base) : 14957.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (Tier0-FullOpts)
          -8 (-0.10 % of base) : 13578.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
Top method regressions (percentages):
         108 (7.01 % of base) : 37559.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier0-FullOpts)
          46 (2.82 % of base) : 35876.dasm - System.Xml.XmlConverter:TryParseDateTime(ubyte[],int,int,byref):ubyte (Tier0-FullOpts)
           8 (2.52 % of base) : 32765.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (Tier0-FullOpts)
           2 (2.38 % of base) : 34467.dasm - System.Xml.XmlReader:MoveToContent():int:this (Tier0-FullOpts)
          30 (2.12 % of base) : 78245.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier0-FullOpts)
          36 (1.94 % of base) : 48035.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (Tier0-FullOpts)
           4 (1.89 % of base) : 58495.dasm - System.Collections.Concurrent.ConcurrentBag`1[int]:CopyFromEachQueueToArray(int[],int):int:this (Tier0-FullOpts)
           6 (1.74 % of base) : 33281.dasm - System.Reflection.RuntimePropertyInfo:SetValue(System.Object,System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):this (Tier0-FullOpts)
          18 (1.71 % of base) : 48138.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbolsWithNoPiaLocalTypes(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):ubyte:this (Tier0-FullOpts)
          14 (1.51 % of base) : 63825.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):int[]:this (Tier0-FullOpts)
          10 (1.35 % of base) : 32284.dasm - EMFloatClass:DoEmFloatIteration(EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],EMFloatClass+InternalFPF[],int,int):long (Tier0-FullOpts)
          14 (1.31 % of base) : 69387.dasm - BenchmarksGame.KNucleotide_9:loadThreeData(System.IO.Stream) (Tier0-FullOpts)
          10 (1.30 % of base) : 43277.dasm - Benchstone.BenchF.InProd:Test():ubyte:this (Tier0-FullOpts)
           2 (1.20 % of base) : 22205.dasm - System.MemoryExtensions:TrimEnd(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort] (Tier0-FullOpts)
           8 (1.19 % of base) : 27826.dasm - EMFloat:DoEmFloatIteration(EMFloat+InternalFPF[],EMFloat+InternalFPF[],EMFloat+InternalFPF[],int,int):long (Tier0-FullOpts)
          10 (1.14 % of base) : 78244.dasm - SciMark2.kernel:CopyMatrix(double[][],double[][]) (Tier0-FullOpts)
           4 (0.97 % of base) : 14618.dasm - System.Globalization.CompareInfo:StartsWithOrdinalIgnoreCaseHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,uint):ubyte:this (Tier0-FullOpts)
           6 (0.90 % of base) : 12276.dasm - System.Reflection.SignatureTypeExtensions:TryResolve(System.Reflection.SignatureType,System.Type[]):System.Type (Tier0-FullOpts)
          12 (0.90 % of base) : 51898.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GenerateBaseParameterlessConstructorInitializer(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCall (Tier0-FullOpts)
           2 (0.88 % of base) : 20573.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (Tier0-FullOpts)
Top method improvements (percentages):
         -20 (-6.45 % of base) : 6059.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (Tier0-FullOpts)
         -30 (-5.77 % of base) : 14820.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (Tier0-FullOpts)
         -12 (-4.62 % of base) : 64418.dasm - Benchstone.BenchI.XposMatrix:Test():ubyte:this (Tier0-FullOpts)
         -18 (-4.46 % of base) : 70865.dasm - Benchstone.BenchI.AddArray2:BenchInner1(int[][],byref) (Tier0-FullOpts)
         -14 (-4.24 % of base) : 68926.dasm - Benchstone.BenchF.SqMtx:Test():ubyte:this (Tier0-FullOpts)
          -4 (-2.67 % of base) : 8510.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:AddUniqueStatus(System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509ChainStatus],byref) (Tier0-FullOpts)
          -4 (-2.56 % of base) : 22201.dasm - System.MemoryExtensions:TrimStart(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort] (Tier0-FullOpts)
         -26 (-2.30 % of base) : 44838.dasm - LUDecomp:DoLUIteration(double[][],double[],double[][][],double[][],int):long (Tier0-FullOpts)
         -28 (-2.22 % of base) : 31038.dasm - System.IO.RandomAccess:WriteGatherAtOffset(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Collections.Generic.IReadOnlyList`1[System.ReadOnlyMemory`1[ubyte]],long) (Tier0-FullOpts)
         -26 (-1.59 % of base) : 18320.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0-FullOpts)
         -10 (-1.44 % of base) : 49015.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:GetParameters(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol] (Tier0-FullOpts)
         -16 (-1.24 % of base) : 17244.dasm - System.Text.Json.Serialization.Metadata.PolymorphicTypeResolver:.ctor(System.Text.Json.JsonSerializerOptions,System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions,System.Type,ubyte):this (Tier0-FullOpts)
          -6 (-1.21 % of base) : 14956.dasm - System.Text.Unicode.Utf8:ToUtf16(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte,ubyte):int (Tier0-FullOpts)
         -10 (-1.08 % of base) : 44840.dasm - LUDecomp:lubksb(double[][],int,int[],double[]) (Tier0-FullOpts)
          -2 (-0.95 % of base) : 72581.dasm - System.SpanHelpers:NonPackedContainsValueType[int](byref,int,int):ubyte (Tier0-FullOpts)
         -16 (-0.86 % of base) : 48318.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager:SetupReferencesForFileAssembly(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager+AssemblyDataForFile,Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol][],byref,byref,Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol) (Tier0-FullOpts)
          -4 (-0.82 % of base) : 72605.dasm - Benchstone.BenchI.Array2:VerifyCopy(int[][][],int[][][]):ubyte (Tier0-FullOpts)
          -4 (-0.74 % of base) : 28194.dasm - System.Xml.XmlUTF8TextReader:ReadQualifiedName(System.Xml.PrefixHandle,System.Xml.StringHandle):this (Tier0-FullOpts)
          -8 (-0.71 % of base) : 14957.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (Tier0-FullOpts)
         -18 (-0.62 % of base) : 6424.dasm - System.Uri:CheckAuthorityHelper(uint,int,int,byref,byref,System.UriParser,byref):int:this (Tier0-FullOpts)
  
coreclr_tests.run.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 321703802 (overridden on cmd)
Total bytes of diff: 321705944 (overridden on cmd)
Total bytes of delta: 2142 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
         752 : 475225.dasm (5.36 % of base)
         172 : 459264.dasm (12.78 % of base)
         172 : 226632.dasm (12.78 % of base)
         108 : 111028.dasm (7.01 % of base)
         108 : 322588.dasm (7.01 % of base)
          94 : 363975.dasm (5.35 % of base)
          94 : 157784.dasm (5.35 % of base)
          44 : 114551.dasm (2.07 % of base)
          36 : 360531.dasm (1.36 % of base)
          36 : 465273.dasm (3.23 % of base)
          36 : 153221.dasm (1.36 % of base)
          36 : 228464.dasm (3.23 % of base)
          30 : 327471.dasm (2.12 % of base)
          30 : 466194.dasm (0.86 % of base)
          30 : 113062.dasm (2.12 % of base)
          26 : 114248.dasm (1.38 % of base)
          24 : 470681.dasm (1.22 % of base)
          24 : 228810.dasm (1.21 % of base)
          22 : 262223.dasm (1.24 % of base)
          20 : 359598.dasm (0.61 % of base)
Top file improvements (bytes):
         -64 : 308525.dasm (-1.98 % of base)
         -58 : 356270.dasm (-13.55 % of base)
         -58 : 360836.dasm (-1.89 % of base)
         -58 : 152437.dasm (-13.55 % of base)
         -58 : 153457.dasm (-1.89 % of base)
         -54 : 256317.dasm (-8.57 % of base)
         -50 : 371976.dasm (-1.64 % of base)
         -50 : 163431.dasm (-1.64 % of base)
         -46 : 326878.dasm (-1.83 % of base)
         -44 : 331970.dasm (-6.96 % of base)
         -42 : 236925.dasm (-1.22 % of base)
         -40 : 382061.dasm (-6.47 % of base)
         -36 : 468789.dasm (-0.72 % of base)
         -36 : 442343.dasm (-1.05 % of base)
         -36 : 471355.dasm (-0.72 % of base)
         -34 : 478632.dasm (-0.99 % of base)
         -34 : 470876.dasm (-1.49 % of base)
         -34 : 471491.dasm (-1.49 % of base)
         -32 : 388433.dasm (-0.93 % of base)
         -32 : 397693.dasm (-0.93 % of base)
73 total files with Code Size differences (41 improved, 32 regressed), 20 unchanged.
Top method regressions (bytes):
         752 (5.36 % of base) : 475225.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         172 (12.78 % of base) : 226632.dasm - AutoGen.Program:Func1(AutoGen.VType1,long,uint,AutoGen.VType2):AutoGen.VType1:this (FullOpts)
         172 (12.78 % of base) : 459264.dasm - AutoGen.Program:Func1(AutoGen.VType1,long,uint,AutoGen.VType2):AutoGen.VType1:this (Tier0-FullOpts)
         108 (7.01 % of base) : 111028.dasm - AssignJagged:second_assignments(int[][],short[][]) (FullOpts)
         108 (7.01 % of base) : 322588.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier0-FullOpts)
          94 (5.35 % of base) : 157784.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
          94 (5.35 % of base) : 363975.dasm - JitTest_array1_refany_il.Test:Main():int (Tier0-FullOpts)
          44 (2.07 % of base) : 114551.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:CheckMembers(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol,System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol]],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
          36 (3.23 % of base) : 228464.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (FullOpts)
          36 (3.23 % of base) : 465273.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (Tier0-FullOpts)
          36 (1.36 % of base) : 153221.dasm - plainarr:gaussj(double[,],int,double[,],int) (FullOpts)
          36 (1.36 % of base) : 360531.dasm - plainarr:gaussj(double[,],int,double[,],int) (Tier0-FullOpts)
          30 (0.86 % of base) : 466194.dasm - Internal.TypeSystem.Ecma.EcmaModule:ResolveAssemblyReference(System.Reflection.Metadata.AssemblyReferenceHandle):System.Object:this (Tier1)
          30 (2.12 % of base) : 113062.dasm - SciMark2.LU:factor(double[][],int[]):int (FullOpts)
          30 (2.12 % of base) : 327471.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier0-FullOpts)
          26 (1.38 % of base) : 114248.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
          24 (1.21 % of base) : 228810.dasm - ILCompiler.ReadyToRunStandaloneMethodMetadata:Compute(Internal.TypeSystem.Ecma.EcmaMethod):ILCompiler.ReadyToRunStandaloneMethodMetadata (FullOpts)
          24 (1.22 % of base) : 470681.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Tier1)
          22 (1.24 % of base) : 262223.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier1)
          20 (0.61 % of base) : 359598.dasm - classarr:gaussj(MatrixCls,int,MatrixCls,int) (Tier0-FullOpts)
Top method improvements (bytes):
         -64 (-1.98 % of base) : 308525.dasm - XUnitWrapperLibrary.TestSummary+TestResult:ToXmlString():System.String:this (Tier1)
         -58 (-13.55 % of base) : 152437.dasm - JitTest_lcs2_lcs_cs.LCS:buildLCS(int[][][][],ushort[],int[]):System.String (FullOpts)
         -58 (-13.55 % of base) : 356270.dasm - JitTest_lcs2_lcs_cs.LCS:buildLCS(int[][][][],ushort[],int[]):System.String (Tier0-FullOpts)
         -58 (-1.89 % of base) : 153457.dasm - structarr:gaussj(MatrixStruct,int,MatrixStruct,int) (FullOpts)
         -58 (-1.89 % of base) : 360836.dasm - structarr:gaussj(MatrixStruct,int,MatrixStruct,int) (Tier0-FullOpts)
         -54 (-8.57 % of base) : 256317.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -50 (-1.64 % of base) : 163431.dasm - Co1245GetBytes_double:runTest():ubyte:this (FullOpts)
         -50 (-1.64 % of base) : 371976.dasm - Co1245GetBytes_double:runTest():ubyte:this (Tier0-FullOpts)
         -46 (-1.83 % of base) : 326878.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier1)
         -44 (-6.96 % of base) : 331970.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -42 (-1.22 % of base) : 236925.dasm - XUnitWrapperLibrary.TestSummary+TestResult:ToXmlString():System.String:this (Tier1)
         -40 (-6.47 % of base) : 382061.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -36 (-0.72 % of base) : 468789.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
         -36 (-0.72 % of base) : 471355.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:MoveNext():ubyte:this (Tier1)
         -36 (-1.05 % of base) : 442343.dasm - XUnitWrapperLibrary.TestSummary+TestResult:ToXmlString():System.String:this (Tier1)
         -34 (-1.49 % of base) : 470876.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (Tier1)
         -34 (-1.49 % of base) : 471491.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (Tier1)
         -34 (-0.99 % of base) : 478632.dasm - XUnitWrapperLibrary.TestSummary+TestResult:ToXmlString():System.String:this (Tier1)
         -32 (-0.93 % of base) : 388433.dasm - XUnitWrapperLibrary.TestSummary+TestResult:ToXmlString():System.String:this (Tier1)
         -32 (-0.93 % of base) : 397693.dasm - XUnitWrapperLibrary.TestSummary+TestResult:ToXmlString():System.String:this (Tier1)
Top method regressions (percentages):
         172 (12.78 % of base) : 226632.dasm - AutoGen.Program:Func1(AutoGen.VType1,long,uint,AutoGen.VType2):AutoGen.VType1:this (FullOpts)
         172 (12.78 % of base) : 459264.dasm - AutoGen.Program:Func1(AutoGen.VType1,long,uint,AutoGen.VType2):AutoGen.VType1:this (Tier0-FullOpts)
         108 (7.01 % of base) : 111028.dasm - AssignJagged:second_assignments(int[][],short[][]) (FullOpts)
         108 (7.01 % of base) : 322588.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier0-FullOpts)
         752 (5.36 % of base) : 475225.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
          94 (5.35 % of base) : 157784.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
          94 (5.35 % of base) : 363975.dasm - JitTest_array1_refany_il.Test:Main():int (Tier0-FullOpts)
          36 (3.23 % of base) : 228464.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (FullOpts)
          36 (3.23 % of base) : 465273.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (Tier0-FullOpts)
          16 (2.85 % of base) : 238667.dasm - System.IO.TextWriter:WriteLine(System.String):this (Tier1)
          16 (2.85 % of base) : 316131.dasm - System.IO.TextWriter:WriteLine(System.String):this (Tier1)
           8 (2.52 % of base) : 112257.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (FullOpts)
           8 (2.52 % of base) : 324971.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (Tier0-FullOpts)
          16 (2.21 % of base) : 469898.dasm - Microsoft.Build.BackEnd.Scheduler:AssignGlobalRequestId(Microsoft.Build.BackEnd.BuildRequest):this (Tier0-FullOpts)
          30 (2.12 % of base) : 113062.dasm - SciMark2.LU:factor(double[][],int[]):int (FullOpts)
          30 (2.12 % of base) : 327471.dasm - SciMark2.LU:factor(double[][],int[]):int (Tier0-FullOpts)
          44 (2.07 % of base) : 114551.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:CheckMembers(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol,System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol]],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
           2 (1.89 % of base) : 101273.dasm - InnerLoop:TestEntryPoint():int (Tier0-FullOpts)
           6 (1.87 % of base) : 87396.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorAs__AsVectorByte:ValidateResult(ubyte[],ubyte[],System.String):this (FullOpts)
           6 (1.87 % of base) : 297824.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorAs__AsVectorByte:ValidateResult(ubyte[],ubyte[],System.String):this (Tier0-FullOpts)
Top method improvements (percentages):
         -58 (-13.55 % of base) : 152437.dasm - JitTest_lcs2_lcs_cs.LCS:buildLCS(int[][][][],ushort[],int[]):System.String (FullOpts)
         -58 (-13.55 % of base) : 356270.dasm - JitTest_lcs2_lcs_cs.LCS:buildLCS(int[][][][],ushort[],int[]):System.String (Tier0-FullOpts)
         -54 (-8.57 % of base) : 256317.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -26 (-7.83 % of base) : 113576.dasm - Benchstone.BenchF.SqMtx:Bench():ubyte (FullOpts)
         -26 (-7.83 % of base) : 328571.dasm - Benchstone.BenchF.SqMtx:Bench():ubyte (Tier0-FullOpts)
         -44 (-6.96 % of base) : 331970.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -16 (-6.72 % of base) : 336061.dasm - Microsoft.CodeAnalysis.CSharp.BoundBlock:.ctor(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionSymbol],ubyte,Microsoft.CodeAnalysis.CSharp.BoundBlockInstrumentation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],ubyte):this (Tier1)
         -40 (-6.47 % of base) : 382061.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -16 (-5.03 % of base) : 226639.dasm - RNG.Test:foo(int,int,int,int,int):int (FullOpts)
         -16 (-5.03 % of base) : 459272.dasm - RNG.Test:foo(int,int,int,int,int):int (Tier0-FullOpts)
          -4 (-5.00 % of base) : 473615.dasm - System.Enum:AreSorted[uint](uint[]):ubyte (Tier1)
         -10 (-5.00 % of base) : 259842.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -10 (-5.00 % of base) : 278635.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -12 (-4.65 % of base) : 113599.dasm - Benchstone.BenchI.XposMatrix:Bench(int[][]):ubyte (FullOpts)
         -12 (-4.65 % of base) : 328626.dasm - Benchstone.BenchI.XposMatrix:Bench(int[][]):ubyte (Tier0-FullOpts)
         -18 (-4.46 % of base) : 111120.dasm - Benchstone.BenchI.AddArray2:BenchInner1(int[][],byref) (FullOpts)
         -18 (-4.46 % of base) : 322752.dasm - Benchstone.BenchI.AddArray2:BenchInner1(int[][],byref) (Tier0-FullOpts)
         -26 (-4.32 % of base) : 378530.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -22 (-3.85 % of base) : 153106.dasm - JitTest_lcsmixed_lcs_cs.LCS:buildLCS(int[,][,][,][,],ushort[],int[]):System.String (FullOpts)
         -22 (-3.85 % of base) : 360393.dasm - JitTest_lcsmixed_lcs_cs.LCS:buildLCS(int[,][,][,][,],ushort[],int[]):System.String (Tier0-FullOpts)
  
libraries.crossgen2.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 211662 (overridden on cmd)
Total bytes of diff: 211772 (overridden on cmd)
Total bytes of delta: 110 (0.05 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
          58 : 718.dasm (3.33 % of base)
          56 : 264.dasm (3.28 % of base)
Top file improvements (bytes):
          -4 : 1296.dasm (-0.14 % of base)
3 total files with Code Size differences (1 improved, 2 regressed), 1 unchanged.
Top method regressions (bytes):
          58 (3.33 % of base) : 718.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          56 (3.28 % of base) : 264.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
Top method improvements (bytes):
          -4 (-0.14 % of base) : 1296.dasm - System.DirectoryServices.Protocols.BerConverter:Encode(System.String,System.Object[]):ubyte[] (FullOpts)
Top method regressions (percentages):
          58 (3.33 % of base) : 718.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          56 (3.28 % of base) : 264.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
Top method improvements (percentages):
          -4 (-0.14 % of base) : 1296.dasm - System.DirectoryServices.Protocols.BerConverter:Encode(System.String,System.Object[]):ubyte[] (FullOpts)
3 total methods with Code Size differences (1 improved, 2 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: 49774246 (overridden on cmd)
Total bytes of diff: 49774894 (overridden on cmd)
Total bytes of delta: 648 (0.00 % of base)
    diff is a regression.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
          72 : 93169.dasm (0.36 % of base)
          50 : 61290.dasm (1.08 % of base)
          48 : 28228.dasm (3.05 % of base)
          44 : 101662.dasm (1.50 % of base)
          42 : 27424.dasm (3.58 % of base)
          42 : 224588.dasm (2.95 % of base)
          42 : 57877.dasm (1.86 % of base)
          38 : 192405.dasm (0.85 % of base)
          38 : 240465.dasm (1.00 % of base)
          36 : 146362.dasm (3.16 % of base)
          36 : 210794.dasm (2.32 % of base)
          32 : 196686.dasm (1.04 % of base)
          32 : 131751.dasm (0.97 % of base)
          30 : 93687.dasm (2.00 % of base)
          30 : 255534.dasm (1.27 % of base)
          28 : 201861.dasm (12.17 % of base)
          28 : 141917.dasm (0.64 % of base)
          28 : 278093.dasm (1.48 % of base)
          28 : 238240.dasm (1.90 % of base)
          26 : 241279.dasm (0.90 % of base)
Top file improvements (bytes):
        -330 : 172508.dasm (-1.45 % of base)
         -78 : 224507.dasm (-4.24 % of base)
         -36 : 223079.dasm (-9.42 % of base)
         -32 : 100449.dasm (-1.43 % of base)
         -30 : 163277.dasm (-6.12 % of base)
         -30 : 224509.dasm (-4.25 % of base)
         -30 : 234605.dasm (-5.62 % of base)
         -26 : 206081.dasm (-0.91 % of base)
         -26 : 68923.dasm (-2.01 % of base)
         -24 : 172519.dasm (-2.09 % of base)
         -22 : 180744.dasm (-0.74 % of base)
         -22 : 224512.dasm (-3.27 % of base)
         -22 : 92991.dasm (-0.77 % of base)
         -20 : 215900.dasm (-6.45 % of base)
         -20 : 215911.dasm (-0.91 % of base)
         -18 : 200073.dasm (-1.65 % of base)
         -18 : 34591.dasm (-0.39 % of base)
         -18 : 38274.dasm (-2.34 % of base)
         -18 : 116650.dasm (-2.34 % of base)
         -18 : 261285.dasm (-1.21 % of base)
71 total files with Code Size differences (35 improved, 36 regressed), 20 unchanged.
Top method regressions (bytes):
          72 (0.36 % of base) : 93169.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportOverloadResolutionFailureForASingleCandidate(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.Location,int,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],ubyte,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbol):this (FullOpts)
          50 (1.08 % of base) : 61290.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondBranchCore(Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,ubyte):this (FullOpts)
          48 (3.05 % of base) : 28228.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDefaultArguments(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],byref,byref,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Symbol):this (FullOpts)
          44 (1.50 % of base) : 101662.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbol:GetAttributesToBind(Roslyn.Utilities.OneOrMany`1[Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeListSyntax]],int,Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax]:this (FullOpts)
          42 (1.86 % of base) : 57877.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:CheckMembers(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol,System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol]],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
          42 (2.95 % of base) : 224588.dasm - Microsoft.CodeAnalysis.SyntaxNode:FindTriviaByOffset(Microsoft.CodeAnalysis.SyntaxNode,int,System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxTrivia (FullOpts)
          42 (3.58 % of base) : 27424.dasm - System.Text.ISO2022Encoding:GetCharsCP50225KR(uint,int,uint,int,System.Text.ISO2022Encoding+ISO2022Decoder):int:this (FullOpts)
          38 (1.00 % of base) : 240465.dasm - Microsoft.Build.BackEnd.Scheduler:WriteNodeUtilizationGraph(Microsoft.Build.BackEnd.Logging.ILoggingService,Microsoft.Build.Framework.BuildEventContext,ubyte):this (FullOpts)
          38 (0.85 % of base) : 192405.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
          36 (3.16 % of base) : 146362.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (FullOpts)
          36 (2.32 % of base) : 210794.dasm - System.Reflection.Emit.CustomAttributeInfo:DecodeCustomAttribute(System.Reflection.ConstructorInfo,System.ReadOnlySpan`1[ubyte]):System.Reflection.Emit.CustomAttributeInfo (FullOpts)
          32 (1.04 % of base) : 196686.dasm - System.Net.HttpWebRequest+<SendRequest>d__196:MoveNext():this (FullOpts)
          32 (0.97 % of base) : 131751.dasm - System.Xml.XmlTextReaderImpl+<ParseAttributesAsync>d__531:MoveNext():this (FullOpts)
          30 (2.00 % of base) : 93687.dasm - Microsoft.CodeAnalysis.VisualBasic.DocumentationCommentCrefBinder:CollectSimpleNameSymbolsStrict(Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,System.String,int,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],ubyte,byref):this (FullOpts)
          30 (1.27 % of base) : 255534.dasm - Newtonsoft.Json.Utilities.ConvertUtils:DecimalTryParse(ushort[],int,int,byref):int (FullOpts)
          28 (1.90 % of base) : 238240.dasm - Microsoft.Build.Graph.GraphBuilder:AddEdgesFromSolution(System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.Build.BackEnd.ConfigurationMetadata,Microsoft.Build.Graph.ParsedProject],System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.Collections.Generic.IReadOnlyCollection`1[System.String]],Microsoft.Build.Graph.GraphBuilder+GraphEdges) (FullOpts)
          28 (1.48 % of base) : 278093.dasm - System.Buffers.SequenceReader`1[double]:TryReadTo(byref,double,double,ubyte):ubyte:this (FullOpts)
          28 (12.17 % of base) : 201861.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
          28 (0.64 % of base) : 141917.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts)
          26 (0.90 % of base) : 241279.dasm - Microsoft.Build.BackEnd.TaskExecutionHost:GatherTaskItemOutputs(ubyte,System.String,Microsoft.Build.Framework.ITaskItem[],Microsoft.Build.Construction.ElementLocation,Microsoft.Build.Framework.TaskPropertyInfo):this (FullOpts)
Top method improvements (bytes):
        -330 (-1.45 % of base) : 172508.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         -78 (-4.24 % of base) : 224507.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetPreviousToken(Microsoft.CodeAnalysis.SyntaxTrivia,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -36 (-9.42 % of base) : 223079.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -32 (-1.43 % of base) : 100449.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)
         -30 (-5.62 % of base) : 234605.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -30 (-4.25 % of base) : 224509.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetPreviousToken(Microsoft.CodeAnalysis.SyntaxTrivia,Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],byref):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -30 (-6.12 % of base) : 163277.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
         -26 (-2.01 % of base) : 68923.dasm - System.Data.Select:CreateIndex():this (FullOpts)
         -26 (-0.91 % of base) : 206081.dasm - System.Uri:CheckAuthorityHelper(uint,int,int,byref,byref,System.UriParser,byref):int:this (FullOpts)
         -24 (-2.09 % of base) : 172519.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:CreateParamOrder(ubyte,int[],System.Reflection.ParameterInfo[],System.Object[],System.String[]):System.Exception:this (FullOpts)
         -22 (-3.27 % of base) : 224512.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(byref,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],ubyte,System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -22 (-0.77 % of base) : 92991.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BuildDelegateRelaxationLambda(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundMethodGroup,int,ubyte,ubyte,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundLambda:this (FullOpts)
         -22 (-0.74 % of base) : 180744.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -20 (-0.91 % of base) : 215911.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:BuildCertsWithKeys(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.Asn1.Pkcs12.CertBagAsn[],System.Security.Cryptography.Asn1.AttributeAsn[][],System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey[],int,System.Security.Cryptography.Asn1.Pkcs12.SafeBagAsn[],System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+RentedSubjectPublicKeyInfo[],System.Security.Cryptography.AsymmetricAlgorithm[],int):this (FullOpts)
         -20 (-6.45 % of base) : 215900.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (FullOpts)
         -18 (-2.34 % of base) : 38274.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode:GetFirstDirective(System.Func`2[Microsoft.CodeAnalysis.CSharp.Syntax.DirectiveTriviaSyntax,ubyte]):Microsoft.CodeAnalysis.CSharp.Syntax.DirectiveTriviaSyntax:this (FullOpts)
         -18 (-0.39 % of base) : 34591.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
         -18 (-2.34 % of base) : 116650.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode:GetFirstDirective(System.Func`2[Microsoft.CodeAnalysis.VisualBasic.Syntax.DirectiveTriviaSyntax,ubyte]):Microsoft.CodeAnalysis.VisualBasic.Syntax.DirectiveTriviaSyntax:this (FullOpts)
         -18 (-1.65 % of base) : 200073.dasm - System.Configuration.MgmtConfigurationRecord:RemoveConfigurationSectionGroup(System.String,System.String):this (FullOpts)
         -18 (-1.21 % of base) : 261285.dasm - System.Linq.Parallel.TakeOrSkipWhileQueryOperator`1+TakeOrSkipWhileQueryOperatorEnumerator`1[System.__Canon,System.Nullable`1[int]]:MoveNext(byref,byref):ubyte:this (FullOpts)
Top method regressions (percentages):
          28 (12.17 % of base) : 201861.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
          22 (5.98 % of base) : 70062.dasm - System.Data.SqlTypes.SqlString:CompareBinary(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int (FullOpts)
          24 (5.97 % of base) : 242770.dasm - Microsoft.Build.Shared.FileUtilities:PathsEqual(System.String,System.String):ubyte (FullOpts)
          10 (4.20 % of base) : 136703.dasm - System.Xml.Xsl.XPathConvert+BigInteger:Subtract(System.Xml.Xsl.XPathConvert+BigInteger):this (FullOpts)
          24 (3.67 % of base) : 116141.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyTupleConversion(Microsoft.CodeAnalysis.VisualBasic.BoundTupleLiteral,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):int (FullOpts)
          42 (3.58 % of base) : 27424.dasm - System.Text.ISO2022Encoding:GetCharsCP50225KR(uint,int,uint,int,System.Text.ISO2022Encoding+ISO2022Decoder):int:this (FullOpts)
          14 (3.43 % of base) : 181085.dasm - System.Net.CookieTokenizer:FindNext(ubyte,ubyte):int:this (FullOpts)
          14 (3.43 % of base) : 196356.dasm - System.Net.CookieTokenizer:FindNext(ubyte,ubyte):int:this (FullOpts)
          36 (3.16 % of base) : 146362.dasm - Internal.TypeSystem.RuntimeDeterminedTypeUtilities:ConvertInstantiationToSharedRuntimeForm(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation,byref):Internal.TypeSystem.Instantiation (FullOpts)
          14 (3.08 % of base) : 23063.dasm - Microsoft.FSharp.Primitives.Basics.Array:stableSortWithKeysAndComparer[ubyte,System.Nullable`1[int]](System.Collections.Generic.IComparer`1[ubyte],System.Collections.Generic.IComparer`1[ubyte],System.Nullable`1[int][],ubyte[]) (FullOpts)
          48 (3.05 % of base) : 28228.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDefaultArguments(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],byref,byref,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Symbol):this (FullOpts)
           8 (3.03 % of base) : 93177.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindArgumentsAndNames(Microsoft.CodeAnalysis.VisualBasic.Syntax.ArgumentListSyntax,byref,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
           6 (3.03 % of base) : 156547.dasm - System.Collections.Concurrent.ConcurrentBag`1[ubyte]:CopyFromEachQueueToArray(ubyte[],int):int:this (FullOpts)
          10 (3.01 % of base) : 261999.dasm - System.Runtime.CompilerServices.RuleCache`1[System.__Canon]:MoveRule(System.__Canon,int):this (FullOpts)
          42 (2.95 % of base) : 224588.dasm - Microsoft.CodeAnalysis.SyntaxNode:FindTriviaByOffset(Microsoft.CodeAnalysis.SyntaxNode,int,System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxTrivia (FullOpts)
          20 (2.86 % of base) : 242685.dasm - Microsoft.Build.Shared.FileMatcher:Normalize(System.String):System.String (FullOpts)
           2 (2.63 % of base) : 229961.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.ISymbol,ubyte):ubyte:this (FullOpts)
           8 (2.52 % of base) : 255532.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(ushort[],int,int,byref):int (FullOpts)
           2 (2.38 % of base) : 130851.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
          36 (2.32 % of base) : 210794.dasm - System.Reflection.Emit.CustomAttributeInfo:DecodeCustomAttribute(System.Reflection.ConstructorInfo,System.ReadOnlySpan`1[ubyte]):System.Reflection.Emit.CustomAttributeInfo (FullOpts)
Top method improvements (percentages):
         -36 (-9.42 % of base) : 223079.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -20 (-6.45 % of base) : 215900.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (FullOpts)
         -16 (-6.15 % of base) : 223291.dasm - Microsoft.CodeAnalysis.RealParser:ConvertBigIntegerToFloatingPointBits(ubyte[],uint,ubyte,Microsoft.CodeAnalysis.RealParser+FloatingPointType,byref):int (FullOpts)
         -30 (-6.12 % of base) : 163277.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
          -4 (-5.71 % of base) : 37176.dasm - Microsoft.CodeAnalysis.CSharp.ObjectDisplay:ContainsNewLine(System.String):ubyte (FullOpts)
         -30 (-5.62 % of base) : 234605.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -14 (-5.60 % of base) : 139086.dasm - System.Xml.Xsl.Runtime.XmlStringSortKey:CompareTo(System.Object):int:this (FullOpts)
         -10 (-4.39 % of base) : 47193.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ConsumeRemainingContentThroughNewLine(System.Text.StringBuilder,System.ReadOnlySpan`1[ushort],int):int (FullOpts)
          -4 (-4.35 % of base) : 225054.dasm - Microsoft.CodeAnalysis.XmlCharType:IsPublicId(System.String):int (FullOpts)
         -30 (-4.25 % of base) : 224509.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetPreviousToken(Microsoft.CodeAnalysis.SyntaxTrivia,Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],byref):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -78 (-4.24 % of base) : 224507.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetPreviousToken(Microsoft.CodeAnalysis.SyntaxTrivia,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -22 (-3.27 % of base) : 224512.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(byref,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],ubyte,System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
          -6 (-3.12 % of base) : 242932.dasm - Microsoft.Build.Shared.TypeLoader:IsPartialTypeNameMatch(System.String,System.String):ubyte (FullOpts)
          -2 (-3.12 % of base) : 33050.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
         -12 (-3.02 % of base) : 219118.dasm - Roslyn.Utilities.PathUtilities:GetWindowsRoot(System.String):System.String (FullOpts)
          -4 (-2.67 % of base) : 215825.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509ChainProcessor:AddUniqueStatus(System.Collections.Generic.List`1[System.Security.Cryptography.X509Certificates.X509ChainStatus],byref) (FullOpts)
         -18 (-2.34 % of base) : 38274.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode:GetFirstDirective(System.Func`2[Microsoft.CodeAnalysis.CSharp.Syntax.DirectiveTriviaSyntax,ubyte]):Microsoft.CodeAnalysis.CSharp.Syntax.DirectiveTriviaSyntax:this (FullOpts)
         -18 (-2.34 % of base) : 116650.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode:GetFirstDirective(System.Func`2[Microsoft.CodeAnalysis.VisualBasic.Syntax.DirectiveTriviaSyntax,ubyte]):Microsoft.CodeAnalysis.VisualBasic.Syntax.DirectiveTriviaSyntax:this (FullOpts)
          -4 (-2.20 % of base) : 107300.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Parser:PeekAheadFor[System.__Canon](System.Func`3[System.__Canon,System.__Canon,ubyte],System.__Canon,byref):int:this (FullOpts)
          -8 (-2.17 % of base) : 55788.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:CheckConstraints(Microsoft.CodeAnalysis.CSharp.Symbol,byref,Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterDiagnosticInfo],byref,Microsoft.CodeAnalysis.BitVector,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]):ubyte (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: 242821180 (overridden on cmd)
Total bytes of diff: 242836658 (overridden on cmd)
Total bytes of delta: 15478 (0.01 % of base)
    diff is a regression.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
         886 : 109261.dasm (6.69 % of base)
         886 : 169931.dasm (6.69 % of base)
         886 : 662186.dasm (6.69 % of base)
         886 : 150151.dasm (6.69 % of base)
         886 : 180709.dasm (6.69 % of base)
         762 : 320104.dasm (5.96 % of base)
         704 : 43036.dasm (5.24 % of base)
         704 : 77281.dasm (5.24 % of base)
         592 : 387410.dasm (4.20 % of base)
         414 : 710369.dasm (4.11 % of base)
         400 : 125402.dasm (3.98 % of base)
         336 : 474841.dasm (3.33 % of base)
         318 : 394211.dasm (2.35 % of base)
         294 : 195511.dasm (2.86 % of base)
         290 : 63486.dasm (3.05 % of base)
         282 : 311575.dasm (2.77 % of base)
         276 : 488900.dasm (2.67 % of base)
         268 : 161476.dasm (2.79 % of base)
         252 : 129082.dasm (2.56 % of base)
         222 : 479437.dasm (2.20 % of base)
Top file improvements (bytes):
        -230 : 132096.dasm (-2.28 % of base)
        -168 : 187628.dasm (-0.74 % of base)
        -148 : 658798.dasm (-2.50 % of base)
        -138 : 370110.dasm (-6.54 % of base)
        -130 : 384900.dasm (-1.30 % of base)
        -128 : 65020.dasm (-1.38 % of base)
        -116 : 172134.dasm (-2.12 % of base)
        -110 : 175888.dasm (-1.87 % of base)
        -102 : 328395.dasm (-1.00 % of base)
         -90 : 126545.dasm (-0.72 % of base)
         -86 : 192554.dasm (-1.12 % of base)
         -86 : 254637.dasm (-1.12 % of base)
         -86 : 153161.dasm (-4.14 % of base)
         -86 : 129953.dasm (-1.12 % of base)
         -86 : 139791.dasm (-4.14 % of base)
         -86 : 719714.dasm (-1.12 % of base)
         -84 : 724052.dasm (-1.07 % of base)
         -80 : 405513.dasm (-0.62 % of base)
         -80 : 114086.dasm (-0.62 % of base)
         -80 : 156663.dasm (-1.50 % of base)
87 total files with Code Size differences (55 improved, 32 regressed), 20 unchanged.
Top method regressions (bytes):
         886 (6.69 % of base) : 109261.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         886 (6.69 % of base) : 169931.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         886 (6.69 % of base) : 662186.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         886 (6.69 % of base) : 150151.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         886 (6.69 % of base) : 180709.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         762 (5.96 % of base) : 320104.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         704 (5.24 % of base) : 43036.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         704 (5.24 % of base) : 77281.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         592 (4.20 % of base) : 387410.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         414 (4.11 % of base) : 710369.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         400 (3.98 % of base) : 125402.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         336 (3.33 % of base) : 474841.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         318 (2.35 % of base) : 394211.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         294 (2.86 % of base) : 195511.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         290 (3.05 % of base) : 63486.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         282 (2.77 % of base) : 311575.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         276 (2.67 % of base) : 488900.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         268 (2.79 % of base) : 161476.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         252 (2.56 % of base) : 129082.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         222 (2.20 % of base) : 479437.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
Top method improvements (bytes):
        -230 (-2.28 % of base) : 132096.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -168 (-0.74 % of base) : 187628.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0-FullOpts)
        -148 (-2.50 % of base) : 658798.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetAttribute(Microsoft.CodeAnalysis.CSharp.BoundAttribute,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:this (Tier1)
        -138 (-6.54 % of base) : 370110.dasm - System.Net.Http.Headers.ViaHeaderValue:GetViaLength(System.String,int,byref):int (Tier1)
        -130 (-1.30 % of base) : 384900.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -128 (-1.38 % of base) : 65020.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindNamespaceOrTypeOrAliasSymbol(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
        -116 (-2.12 % of base) : 172134.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindIdentifier(Microsoft.CodeAnalysis.CSharp.Syntax.SimpleNameSyntax,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
        -110 (-1.87 % of base) : 175888.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbol,ubyte,System.Collections.Immutable.ImmutableArray`1[int],byref,byref,ubyte):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]:this (Tier1)
        -102 (-1.00 % of base) : 328395.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         -90 (-0.72 % of base) : 126545.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         -86 (-4.14 % of base) : 153161.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier0-FullOpts)
         -86 (-4.14 % of base) : 139791.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier0-FullOpts)
         -86 (-1.12 % of base) : 192554.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         -86 (-1.12 % of base) : 254637.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         -86 (-1.12 % of base) : 129953.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         -86 (-1.12 % of base) : 719714.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         -84 (-1.07 % of base) : 724052.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         -80 (-1.50 % of base) : 156663.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (Tier0-FullOpts)
         -80 (-0.62 % of base) : 405513.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
         -80 (-0.62 % of base) : 114086.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
Top method regressions (percentages):
          28 (12.17 % of base) : 370345.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (Tier0-FullOpts)
          20 (7.04 % of base) : 10449.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (Tier0-FullOpts)
          22 (6.79 % of base) : 257571.dasm - System.Data.SqlTypes.Tests.SqlStringSortingTest:CompareBinary(System.String,System.String):int (Tier0-FullOpts)
         886 (6.69 % of base) : 109261.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         886 (6.69 % of base) : 169931.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         886 (6.69 % of base) : 662186.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         886 (6.69 % of base) : 150151.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         886 (6.69 % of base) : 180709.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
          22 (6.43 % of base) : 255869.dasm - System.Data.SqlTypes.SqlString:CompareBinary(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int (Tier0-FullOpts)
         762 (5.96 % of base) : 320104.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
          66 (5.73 % of base) : 368616.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this (Tier0-FullOpts)
          52 (5.27 % of base) : 323105.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (Tier1)
         704 (5.24 % of base) : 43036.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
         704 (5.24 % of base) : 77281.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
          48 (5.10 % of base) : 497124.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (Tier1)
          44 (4.46 % of base) : 120062.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (Tier1)
         204 (4.32 % of base) : 79896.dasm - Microsoft.CodeAnalysis.CSharp.Binder:LookupAttributeType(Microsoft.CodeAnalysis.CSharp.LookupResult,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,System.String,int,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],int,ubyte,byref):this (Tier1)
         592 (4.20 % of base) : 387410.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier1)
          24 (4.20 % of base) : 531369.dasm - System.Number:TryParseBinaryIntegerHexOrBinaryNumberStyle[ushort,ubyte,System.Number+BinaryParser`1[ubyte]](System.ReadOnlySpan`1[ushort],int,byref):int (Tier1)
          48 (4.14 % of base) : 519733.dasm - System.Number:TryParseBinaryIntegerStyle[ubyte,ushort](System.ReadOnlySpan`1[ubyte],int,System.Globalization.NumberFormatInfo,byref):int (Tier1)
Top method improvements (percentages):
         -36 (-9.42 % of base) : 139836.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (Tier0-FullOpts)
         -36 (-9.42 % of base) : 12886.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (Tier0-FullOpts)
         -36 (-9.42 % of base) : 153220.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (Tier0-FullOpts)
         -54 (-8.57 % of base) : 390629.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -54 (-8.57 % of base) : 396350.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -54 (-8.54 % of base) : 390505.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -54 (-8.54 % of base) : 396243.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -54 (-8.54 % of base) : 390790.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -54 (-8.54 % of base) : 390991.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -54 (-8.54 % of base) : 395973.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -54 (-8.54 % of base) : 396059.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -54 (-8.54 % of base) : 396410.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -54 (-8.54 % of base) : 396511.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -54 (-8.54 % of base) : 179742.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -54 (-8.54 % of base) : 389969.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -54 (-8.54 % of base) : 391078.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -54 (-8.54 % of base) : 181134.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -54 (-8.54 % of base) : 181715.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -20 (-8.26 % of base) : 665663.dasm - Microsoft.CodeAnalysis.CSharp.BoundBlock:.ctor(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionSymbol],ubyte,Microsoft.CodeAnalysis.CSharp.BoundBlockInstrumentation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],ubyte):this (Tier1)
         -20 (-8.26 % of base) : 80113.dasm - Microsoft.CodeAnalysis.CSharp.BoundBlock:.ctor(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionSymbol],ubyte,Microsoft.CodeAnalysis.CSharp.BoundBlockInstrumentation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],ubyte):this (Tier1)
  
librariestestsnotieredcompilation.run.linux.arm.Release.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 94353162 (overridden on cmd)
Total bytes of diff: 94352478 (overridden on cmd)
Total bytes of delta: -684 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
         122 : 120368.dasm (2.32 % of base)
          58 : 5622.dasm (2.63 % of base)
          48 : 55196.dasm (1.10 % of base)
          46 : 280745.dasm (2.01 % of base)
          44 : 280329.dasm (2.04 % of base)
          44 : 295645.dasm (3.12 % of base)
          42 : 230778.dasm (3.58 % of base)
          40 : 90045.dasm (0.90 % of base)
          36 : 179930.dasm (2.32 % of base)
          34 : 295655.dasm (1.97 % of base)
          34 : 166810.dasm (0.72 % of base)
          34 : 282383.dasm (1.18 % of base)
          32 : 276746.dasm (1.03 % of base)
          32 : 282384.dasm (1.10 % of base)
          32 : 306396.dasm (0.97 % of base)
          30 : 154213.dasm (0.99 % of base)
          30 : 258416.dasm (1.30 % of base)
          30 : 295654.dasm (1.81 % of base)
          28 : 147993.dasm (12.17 % of base)
          28 : 5289.dasm (2.91 % of base)
Top file improvements (bytes):
        -324 : 59494.dasm (-1.42 % of base)
         -86 : 43484.dasm (-4.14 % of base)
         -86 : 49182.dasm (-4.14 % of base)
         -74 : 15030.dasm (-1.27 % of base)
         -72 : 271740.dasm (-1.87 % of base)
         -70 : 295661.dasm (-3.44 % of base)
         -64 : 280828.dasm (-3.85 % of base)
         -58 : 270484.dasm (-2.86 % of base)
         -52 : 169727.dasm (-2.48 % of base)
         -52 : 230542.dasm (-2.44 % of base)
         -48 : 44581.dasm (-0.93 % of base)
         -36 : 296167.dasm (-0.71 % of base)
         -36 : 49205.dasm (-9.42 % of base)
         -36 : 5329.dasm (-9.42 % of base)
         -36 : 295653.dasm (-2.34 % of base)
         -36 : 43507.dasm (-9.42 % of base)
         -34 : 50463.dasm (-0.65 % of base)
         -34 : 295651.dasm (-2.44 % of base)
         -34 : 295652.dasm (-2.44 % of base)
         -34 : 280203.dasm (-2.66 % of base)
72 total files with Code Size differences (37 improved, 35 regressed), 20 unchanged.
Top method regressions (bytes):
         122 (2.32 % of base) : 120368.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F41B8911E2F21D4DC5E3A6E6E037C09C91843DEA626D26CDD1D82984E3611395A__GetRegex_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
          58 (2.63 % of base) : 5622.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:CheckMembers(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol,System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol]],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
          48 (1.10 % of base) : 55196.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondBranchCore(Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,ubyte):this (FullOpts)
          46 (2.01 % of base) : 280745.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2022_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          44 (2.04 % of base) : 280329.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1604_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          44 (3.12 % of base) : 295645.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex33136_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          42 (3.58 % of base) : 230778.dasm - System.Text.ISO2022Encoding:GetCharsCP50225KR(uint,int,uint,int,System.Text.ISO2022Encoding+ISO2022Decoder):int:this (FullOpts)
          40 (0.90 % of base) : 90045.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts)
          36 (2.32 % of base) : 179930.dasm - System.Reflection.Emit.CustomAttributeInfo:DecodeCustomAttribute(System.Reflection.ConstructorInfo,System.ReadOnlySpan`1[ubyte]):System.Reflection.Emit.CustomAttributeInfo (FullOpts)
          34 (0.72 % of base) : 166810.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderTypeWithGetSetArrayMembers:Read3_TypeWithGetSetArrayMembers(ubyte,ubyte):SerializationTypes.TypeWithGetSetArrayMembers:this (FullOpts)
          34 (1.18 % of base) : 282383.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex30532_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          34 (1.97 % of base) : 295655.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex33147_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          32 (1.10 % of base) : 282384.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex30533_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          32 (1.03 % of base) : 276746.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4043_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          32 (0.97 % of base) : 306396.dasm - System.Xml.XmlTextReaderImpl+<ParseAttributesAsync>d__531:MoveNext():this (FullOpts)
          30 (1.30 % of base) : 258416.dasm - Newtonsoft.Json.Utilities.ConvertUtils:DecimalTryParse(ushort[],int,int,byref):int (FullOpts)
          30 (0.99 % of base) : 154213.dasm - System.Net.HttpWebRequest+<SendRequest>d__196:MoveNext():this (FullOpts)
          30 (1.81 % of base) : 295654.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex33146_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          28 (2.91 % of base) : 5289.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbolsWithNoPiaLocalTypes(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):ubyte:this (FullOpts)
          28 (12.17 % of base) : 147993.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
Top method improvements (bytes):
        -324 (-1.42 % of base) : 59494.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         -86 (-4.14 % of base) : 43484.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
         -86 (-4.14 % of base) : 49182.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
         -74 (-1.27 % of base) : 15030.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:ReportDiagnostics[System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte,System.Nullable`1[ubyte],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
         -72 (-1.87 % of base) : 271740.dasm - RegexTestNamespace.RegexRunnerTestClass:Go():this (FullOpts)
         -70 (-3.44 % of base) : 295661.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex33152_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -64 (-3.85 % of base) : 280828.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2337_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -58 (-2.86 % of base) : 270484.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex673_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -52 (-2.44 % of base) : 230542.dasm - System.ServiceModel.Syndication.Tests.XmlDiff:CompareChildren(System.ServiceModel.Syndication.Tests.XmlDiffNode,System.ServiceModel.Syndication.Tests.XmlDiffNode):ubyte:this (FullOpts)
         -52 (-2.48 % of base) : 169727.dasm - System.Xml.XmlDiff.XmlDiff:CompareChildren(System.Xml.XmlDiff.XmlDiffNode,System.Xml.XmlDiff.XmlDiffNode):ubyte:this (FullOpts)
         -48 (-0.93 % of base) : 44581.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
         -36 (-9.42 % of base) : 49205.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -36 (-9.42 % of base) : 5329.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -36 (-9.42 % of base) : 43507.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -36 (-2.34 % of base) : 295653.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex33145_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -36 (-0.71 % of base) : 296167.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE11ED309466AF57DE9D7AB55C09A60EE21567522F71D3843DB41A5B03BB97697__Match_InstanceMethods_DefaultTimeout_SourceGenerated_ThrowsImpl_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -34 (-0.65 % of base) : 50463.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
         -34 (-2.66 % of base) : 280203.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex29742_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -34 (-2.44 % of base) : 295651.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex33143_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -34 (-2.44 % of base) : 295652.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex33144_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
Top method regressions (percentages):
          28 (12.17 % of base) : 147993.dasm - System.Net.Http.AuthenticationHelper+DigestResponse:GetNextKey(System.String,int,byref):System.String (FullOpts)
          20 (7.04 % of base) : 3903.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanIdentifier_FastPath(byref):ubyte:this (FullOpts)
          22 (6.79 % of base) : 93515.dasm - System.Data.SqlTypes.Tests.SqlStringSortingTest:CompareBinary(System.String,System.String):int (FullOpts)
          22 (5.98 % of base) : 93513.dasm - System.Data.SqlTypes.SqlString:CompareBinary(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int (FullOpts)
          42 (3.58 % of base) : 230778.dasm - System.Text.ISO2022Encoding:GetCharsCP50225KR(uint,int,uint,int,System.Text.ISO2022Encoding+ISO2022Decoder):int:this (FullOpts)
          14 (3.43 % of base) : 149405.dasm - System.Net.CookieTokenizer:FindNext(ubyte,ubyte):int:this (FullOpts)
          14 (3.43 % of base) : 152150.dasm - System.Net.CookieTokenizer:FindNext(ubyte,ubyte):int:this (FullOpts)
          14 (3.43 % of base) : 152563.dasm - System.Net.CookieTokenizer:FindNext(ubyte,ubyte):int:this (FullOpts)
          44 (3.12 % of base) : 295645.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex33136_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          10 (3.01 % of base) : 25453.dasm - System.Runtime.CompilerServices.RuleCache`1[System.__Canon]:MoveRule(System.__Canon,int):this (FullOpts)
          28 (2.91 % of base) : 5289.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbolsWithNoPiaLocalTypes(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):ubyte:this (FullOpts)
          22 (2.71 % of base) : 18407.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:CheckInvocationEscapeWithUpdatedRules(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[int],ubyte,uint,uint,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):ubyte:this (FullOpts)
          58 (2.63 % of base) : 5622.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:CheckMembers(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol,System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol]],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
          14 (2.52 % of base) : 90528.dasm - System.Data.DataRelation:Create(System.String,System.Data.DataColumn[],System.Data.DataColumn[],ubyte):this (FullOpts)
           2 (2.38 % of base) : 42537.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
          36 (2.32 % of base) : 179930.dasm - System.Reflection.Emit.CustomAttributeInfo:DecodeCustomAttribute(System.Reflection.ConstructorInfo,System.ReadOnlySpan`1[ubyte]):System.Reflection.Emit.CustomAttributeInfo (FullOpts)
         122 (2.32 % of base) : 120368.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F41B8911E2F21D4DC5E3A6E6E037C09C91843DEA626D26CDD1D82984E3611395A__GetRegex_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
           8 (2.29 % of base) : 4272.dasm - NuGet.Frameworks.NuGetFramework:RawParse(System.String):System.Tuple`3[System.String,System.String,System.String] (FullOpts)
           2 (2.17 % of base) : 22186.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
          44 (2.04 % of base) : 280329.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1604_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
Top method improvements (percentages):
         -36 (-9.42 % of base) : 49205.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -36 (-9.42 % of base) : 5329.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -36 (-9.42 % of base) : 43507.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -20 (-6.45 % of base) : 152828.dasm - System.Security.Cryptography.X509Certificates.UnixPkcs12Reader:GetSingleCert():System.Security.Cryptography.X509Certificates.UnixPkcs12Reader+CertAndKey:this (FullOpts)
         -16 (-6.15 % of base) : 31571.dasm - Microsoft.CodeAnalysis.RealParser:ConvertBigIntegerToFloatingPointBits(ubyte[],uint,ubyte,Microsoft.CodeAnalysis.RealParser+FloatingPointType,byref):int (FullOpts)
         -30 (-6.12 % of base) : 67060.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
         -30 (-5.84 % of base) : 12648.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ushort]:<ExecuteDeclaringReferenceActions>g__executeExecutableCodeActions|2():this (FullOpts)
         -14 (-5.60 % of base) : 171559.dasm - System.Xml.Xsl.Runtime.XmlStringSortKey:CompareTo(System.Object):int:this (FullOpts)
         -28 (-4.17 % of base) : 46427.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:CanBePassedByReference(Microsoft.CodeAnalysis.CSharp.BoundExpression):ubyte (FullOpts)
         -86 (-4.14 % of base) : 43484.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
         -86 (-4.14 % of base) : 49182.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
         -64 (-3.85 % of base) : 280828.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2337_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -70 (-3.44 % of base) : 295661.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex33152_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -14 (-3.32 % of base) : 212361.dasm - System.Tests.StringTests:StartsWithNoMatch_Char() (FullOpts)
         -22 (-3.27 % of base) : 8635.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(byref,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],ubyte,System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
          -2 (-3.12 % of base) : 12668.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
          -2 (-3.12 % of base) : 50682.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
         -10 (-2.91 % of base) : 144160.dasm - System.SpanTests.ReadOnlySpanTests:EndsWithNoMatch_Long() (FullOpts)
         -10 (-2.91 % of base) : 145904.dasm - System.SpanTests.SpanTests:EndsWithNoMatch_Long() (FullOpts)
         -58 (-2.86 % of base) : 270484.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex673_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
  
realworld.run.linux.arm.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os linux -target_arch arm -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 13590516 (overridden on cmd)
Total bytes of diff: 13590318 (overridden on cmd)
Total bytes of delta: -198 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
          50 : 3930.dasm (0.58 % of base)
          44 : 31342.dasm (1.01 % of base)
          36 : 22940.dasm (1.97 % of base)
          32 : 24108.dasm (2.18 % of base)
          30 : 22584.dasm (0.50 % of base)
          24 : 26119.dasm (1.71 % of base)
          22 : 19136.dasm (0.80 % of base)
          20 : 4146.dasm (0.37 % of base)
          18 : 17074.dasm (1.10 % of base)
          18 : 23013.dasm (1.71 % of base)
          16 : 34445.dasm (0.39 % of base)
          16 : 30673.dasm (1.10 % of base)
          14 : 13568.dasm (0.60 % of base)
          12 : 17631.dasm (0.31 % of base)
          12 : 29769.dasm (0.27 % of base)
          12 : 22321.dasm (0.66 % of base)
          10 : 20487.dasm (0.56 % of base)
          10 : 30473.dasm (0.37 % of base)
          10 : 24169.dasm (0.34 % of base)
           8 : 144.dasm (0.84 % of base)
Top file improvements (bytes):
        -132 : 16802.dasm (-9.54 % of base)
         -80 : 7707.dasm (-0.89 % of base)
         -40 : 36707.dasm (-4.11 % of base)
         -38 : 18578.dasm (-2.46 % of base)
         -36 : 16506.dasm (-0.95 % of base)
         -36 : 23048.dasm (-9.42 % of base)
         -26 : 24258.dasm (-0.56 % of base)
         -22 : 30509.dasm (-3.27 % of base)
         -20 : 5920.dasm (-0.42 % of base)
         -18 : 23060.dasm (-0.98 % of base)
         -18 : 19062.dasm (-0.62 % of base)
         -14 : 37662.dasm (-0.89 % of base)
         -12 : 28790.dasm (-0.48 % of base)
         -12 : 19095.dasm (-0.87 % of base)
         -12 : 32838.dasm (-0.41 % of base)
         -12 : 34285.dasm (-0.46 % of base)
         -12 : 28491.dasm (-0.29 % of base)
         -10 : 6038.dasm (-1.30 % of base)
         -10 : 9569.dasm (-1.61 % of base)
         -10 : 23919.dasm (-1.44 % of base)
58 total files with Code Size differences (28 improved, 30 regressed), 20 unchanged.
Top method regressions (bytes):
          50 (0.58 % of base) : 3930.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:openMetadataReader(System.String,FSharp.Compiler.AbstractIL.ILBinaryReader+BinaryFile,int,System.Tuple`8[ushort,System.Tuple`2[int,int],ubyte,ubyte,ubyte,ubyte,ubyte,System.Tuple`5[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.IL+ILPlatform],ubyte,int,int,int]],FSharp.Compiler.AbstractIL.ILBinaryReader+PEReader,FSharp.Compiler.IO.ReadOnlyByteMemory,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.AbstractIL.ILBinaryReader+PEReader],ubyte):System.Tuple`2[FSharp.Compiler.AbstractIL.IL+ILModuleDef,System.Lazy`1[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.AbstractIL.IL+ILAssemblyRef]]] (FullOpts)
          44 (1.01 % of base) : 31342.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondBranchCore(Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,ubyte):this (FullOpts)
          36 (1.97 % of base) : 22940.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
          32 (2.18 % of base) : 24108.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDefaultArguments(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],byref,byref,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Symbol):this (FullOpts)
          30 (0.50 % of base) : 22584.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
          24 (1.71 % of base) : 26119.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetUserDefinedBinaryOperatorsFromInterfaces(int,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]):ubyte:this (FullOpts)
          22 (0.80 % of base) : 19136.dasm - System.Net.HttpWebRequest+<SendRequest>d__196:MoveNext():this (FullOpts)
          20 (0.37 % of base) : 4146.dasm - FSharp.Compiler.CompilerImports:TcConfig.TryResolveLibsUsingMSBuildRules.Static(FSharp.Compiler.CompilerConfig+TcConfig,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+AssemblyReference],FSharp.Compiler.Text.Range,FSharp.Compiler.CompilerImports+ResolveAssemblyReferenceMode):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerImports+AssemblyResolution],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerConfig+UnresolvedAssemblyReference]] (FullOpts)
          18 (1.71 % of base) : 23013.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbolsWithNoPiaLocalTypes(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):ubyte:this (FullOpts)
          18 (1.10 % of base) : 17074.dasm - SixLabors.ImageSharp.Processing.Processors.Dithering.ErrorDither:SixLabors.ImageSharp.Processing.Processors.Dithering.IDither.ApplyPaletteDither[SixLabors.ImageSharp.Processing.Processors.Dithering.PaletteDitherProcessor`1+DitherProcessor[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.PixelFormats.Rgba32](byref,SixLabors.ImageSharp.ImageFrame`1[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.Rectangle):this (FullOpts)
          16 (1.10 % of base) : 30673.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetUserDefinedOperators(int,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.UnaryOperatorAnalysisResult],byref):ubyte:this (FullOpts)
          16 (0.39 % of base) : 34445.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
          14 (0.60 % of base) : 13568.dasm - System.Text.UnicodeEncoding:GetChars(uint,int,uint,int,System.Text.DecoderNLS):int:this (FullOpts)
          12 (0.27 % of base) : 29769.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MakeDeconstructionConversion(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Binder+DeconstructionVariable],byref):ubyte:this (FullOpts)
          12 (0.31 % of base) : 17631.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)
          12 (0.66 % of base) : 22321.dasm - System.Number:TryParseNumber(byref,uint,int,byref,System.Globalization.NumberFormatInfo):ubyte (FullOpts)
          10 (0.37 % of base) : 30473.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:BestTypeForLambdaReturns(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte]],Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BoundNode,Microsoft.CodeAnalysis.CSharp.Conversions,byref):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations (FullOpts)
          10 (0.34 % of base) : 24169.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:GetCustomAttribute(System.Reflection.Metadata.CustomAttributeHandle,byref,byref):ubyte:this (FullOpts)
          10 (0.56 % of base) : 20487.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,System.__Canon]:TryRemoveInternal(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,byref,ubyte,System.__Canon):ubyte:this (FullOpts)
           8 (0.62 % of base) : 28444.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GenerateBaseParameterlessConstructorInitializer(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCall (FullOpts)
Top method improvements (bytes):
        -132 (-9.54 % of base) : 16802.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
         -80 (-0.89 % of base) : 7707.dasm - FSharp.Compiler.Lexer:singleQuoteString(FSharp.Compiler.IO.ByteBuffer,FSharp.Compiler.Lexhelp+LexerStringFinisher,FSharp.Compiler.Text.Range,FSharp.Compiler.ParseHelpers+LexerStringKind,FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort]):FSharp.Compiler.Parser+token (FullOpts)
         -40 (-4.11 % of base) : 36707.dasm - System.RuntimeType:ValidateGenericArguments(System.Reflection.MemberInfo,System.RuntimeType[],System.Exception) (FullOpts)
         -38 (-2.46 % of base) : 18578.dasm - Microsoft.ML.Data.MetricWriter:GetConfusionTableAsArray(Microsoft.ML.IDataView,int,int,int[],int,byref,byref):double[][] (FullOpts)
         -36 (-9.42 % of base) : 23048.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -36 (-0.95 % of base) : 16506.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.HuffmanScanDecoder:DecodeBlockProgressiveACRefined(byref,byref):this (FullOpts)
         -26 (-0.56 % of base) : 24258.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
         -22 (-3.27 % of base) : 30509.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(byref,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],ubyte,System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -20 (-0.42 % of base) : 5920.dasm - FSharp.Compiler.CompilerOptions:attempt@284(Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.Unit],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerOptions+CompilerOptionBlock],Microsoft.FSharp.Collections.FSharpList`1[System.String],Microsoft.FSharp.Collections.FSharpList`1[System.String],System.String,System.String,System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CompilerOptions+CompilerOption]):Microsoft.FSharp.Collections.FSharpList`1[System.String] (FullOpts)
         -18 (-0.98 % of base) : 23060.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager:SetupReferencesForFileAssembly(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager+AssemblyDataForFile,Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol][],byref,byref,Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol) (FullOpts)
         -18 (-0.62 % of base) : 19062.dasm - System.Uri:CheckAuthorityHelper(uint,int,int,byref,byref,System.UriParser,byref):int:this (FullOpts)
         -14 (-0.89 % of base) : 37662.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
         -12 (-0.46 % of base) : 34285.dasm - Microsoft.CodeAnalysis.AnalyzerConfigSet:GetOptionsForSourcePath(System.String):Microsoft.CodeAnalysis.AnalyzerConfigOptionsResult:this (FullOpts)
         -12 (-0.29 % of base) : 28491.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindCatchBlock(Microsoft.CodeAnalysis.CSharp.Syntax.CatchClauseSyntax,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundCatchBlock],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCatchBlock:this (FullOpts)
         -12 (-0.41 % of base) : 32838.dasm - Microsoft.CodeAnalysis.CSharp.SpillSequenceSpiller:Spill(Microsoft.CodeAnalysis.CSharp.SpillSequenceSpiller+BoundSpillSequenceBuilder,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         -12 (-0.48 % of base) : 28790.dasm - Microsoft.CodeAnalysis.CSharp.SwitchBinder:CheckSwitchErrors(byref,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         -12 (-0.87 % of base) : 19095.dasm - Microsoft.ML.Internal.Utilities.ResourceManagerUtils:DownloadResource(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Runtime.IChannel,System.Net.WebClient,System.Uri,System.String,System.String,System.Threading.CancellationToken):System.Exception:this (FullOpts)
         -10 (-1.30 % of base) : 6038.dasm - FSharp.Compiler.AbstractIL.IL+SHA1:sha1Hash(FSharp.Compiler.AbstractIL.IL+SHA1+SHAStream):System.Tuple`5[int,int,int,int,int] (FullOpts)
         -10 (-1.61 % of base) : 9569.dasm - FSharp.Compiler.TypedTreeOps:eliminateDeadTargetsFromMatch[System.__Canon](FSharp.Compiler.TypedTree+DecisionTree,System.__Canon[]):System.Tuple`2[System.__Canon,System.__Canon] (FullOpts)
         -10 (-1.44 % of base) : 23919.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:GetParameters(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol] (FullOpts)
Top method regressions (percentages):
          32 (2.18 % of base) : 24108.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDefaultArguments(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte],byref,byref,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Symbol):this (FullOpts)
           2 (2.17 % of base) : 22417.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
          36 (1.97 % of base) : 22940.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
          18 (1.71 % of base) : 23013.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbolsWithNoPiaLocalTypes(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):ubyte:this (FullOpts)
          24 (1.71 % of base) : 26119.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetUserDefinedBinaryOperatorsFromInterfaces(int,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BinaryOperatorAnalysisResult]):ubyte:this (FullOpts)
          16 (1.10 % of base) : 30673.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetUserDefinedOperators(int,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.UnaryOperatorAnalysisResult],byref):ubyte:this (FullOpts)
          18 (1.10 % of base) : 17074.dasm - SixLabors.ImageSharp.Processing.Processors.Dithering.ErrorDither:SixLabors.ImageSharp.Processing.Processors.Dithering.IDither.ApplyPaletteDither[SixLabors.ImageSharp.Processing.Processors.Dithering.PaletteDitherProcessor`1+DitherProcessor[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.PixelFormats.Rgba32](byref,SixLabors.ImageSharp.ImageFrame`1[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.Rectangle):this (FullOpts)
           4 (1.02 % of base) : 3172.dasm - System.Globalization.CompareInfo:StartsWithOrdinalIgnoreCaseHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,uint):ubyte:this (FullOpts)
          44 (1.01 % of base) : 31342.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitCondBranchCore(Microsoft.CodeAnalysis.CSharp.BoundExpression,byref,ubyte):this (FullOpts)
           4 (0.92 % of base) : 292.dasm - System.Reflection.RuntimeAssembly:GetType(System.String,ubyte,ubyte):System.Type:this (FullOpts)
           6 (0.90 % of base) : 23388.dasm - System.Reflection.SignatureTypeExtensions:TryResolve(System.Reflection.SignatureType,System.Type[]):System.Type (FullOpts)
           2 (0.88 % of base) : 3444.dasm - System.Decimal+DecCalc:VarDecCmpSub(byref,byref):int (FullOpts)
           6 (0.85 % of base) : 7003.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader:seekReadParams(FSharp.Compiler.AbstractIL.ILBinaryReader+ILMetadataReader,FSharp.Compiler.IO.ReadOnlyByteMemory,FSharp.Compiler.AbstractIL.IL+ILType,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.AbstractIL.IL+ILType],int,int):System.Tuple`2[FSharp.Compiler.AbstractIL.IL+ILReturn,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.AbstractIL.IL+ILParameter]] (FullOpts)
           8 (0.84 % of base) : 144.dasm - System.Globalization.CultureData:NormalizeCultureName(System.String,System.ReadOnlySpan`1[ushort],byref):System.String (FullOpts)
          22 (0.80 % of base) : 19136.dasm - System.Net.HttpWebRequest+<SendRequest>d__196:MoveNext():this (FullOpts)
           4 (0.71 % of base) : 17674.dasm - System.Delegate:GetMethodImpl():System.Reflection.MethodInfo:this (FullOpts)
           6 (0.67 % of base) : 37488.dasm - System.Management.Automation.Runspaces.CommandParameter:ToCommandParameterInternal(System.Management.Automation.Runspaces.CommandParameter,ubyte):System.Management.Automation.CommandParameterInternal (FullOpts)
          12 (0.66 % of base) : 22321.dasm - System.Number:TryParseNumber(byref,uint,int,byref,System.Globalization.NumberFormatInfo):ubyte (FullOpts)
           4 (0.63 % of base) : 21951.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanUnicodeEscape(ubyte,byref,byref):ushort:this (FullOpts)
           8 (0.62 % of base) : 28444.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GenerateBaseParameterlessConstructorInitializer(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCall (FullOpts)
Top method improvements (percentages):
        -132 (-9.54 % of base) : 16802.dasm - SixLabors.ImageSharp.Compression.Zlib.DeflaterEngine:FindLongestMatch(int):ubyte:this (FullOpts)
         -36 (-9.42 % of base) : 23048.dasm - Microsoft.CodeAnalysis.AssemblyIdentity:TryParseNameToken(System.String,byref,byref):ubyte (FullOpts)
         -40 (-4.11 % of base) : 36707.dasm - System.RuntimeType:ValidateGenericArguments(System.Reflection.MemberInfo,System.RuntimeType[],System.Exception) (FullOpts)
         -22 (-3.27 % of base) : 30509.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(byref,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],ubyte,System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -38 (-2.46 % of base) : 18578.dasm - Microsoft.ML.Data.MetricWriter:GetConfusionTableAsArray(Microsoft.ML.IDataView,int,int,int[],int,byref,byref):double[][] (FullOpts)
          -6 (-2.44 % of base) : 36590.dasm - System.Management.Automation.ScriptDebugger+<GetCallStack>d__105:MoveNext():ubyte:this (FullOpts)
          -8 (-1.81 % of base) : 18800.dasm - Microsoft.ML.Trainers.KMeansUtils:FindBestCluster(byref,Microsoft.ML.Data.VBuffer`1[float][],float[],int,ubyte,byref,byref,byref,byref) (FullOpts)
          -2 (-1.61 % of base) : 15009.dasm - System.Buffers.Latin1CharSearchValues:IndexOfAny[System.Buffers.IndexOfAnyAsciiSearcher+Negate](byref,int):int:this (FullOpts)
         -10 (-1.61 % of base) : 9569.dasm - FSharp.Compiler.TypedTreeOps:eliminateDeadTargetsFromMatch[System.__Canon](FSharp.Compiler.TypedTree+DecisionTree,System.__Canon[]):System.Tuple`2[System.__Canon,System.__Canon] (FullOpts)
         -10 (-1.44 % of base) : 23919.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:GetParameters(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol,Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol][],byref):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol] (FullOpts)
          -6 (-1.32 % of base) : 20005.dasm - System.Text.Unicode.Utf8:ToUtf16(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte,ubyte):int (FullOpts)
         -10 (-1.30 % of base) : 6038.dasm - FSharp.Compiler.AbstractIL.IL+SHA1:sha1Hash(FSharp.Compiler.AbstractIL.IL+SHA1+SHAStream):System.Tuple`5[int,int,int,int,int] (FullOpts)
          -4 (-1.16 % of base) : 32642.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<TryCalculateSyntaxOffsetOfPositionInInitializer>g__findInitializer|106_0(System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]],int,Microsoft.CodeAnalysis.SyntaxTree,byref,byref):ubyte (FullOpts)
          -2 (-1.01 % of base) : 24581.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
         -18 (-0.98 % of base) : 23060.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager:SetupReferencesForFileAssembly(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ReferenceManager+AssemblyDataForFile,Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol][],byref,byref,Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol) (FullOpts)
         -36 (-0.95 % of base) : 16506.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.HuffmanScanDecoder:DecodeBlockProgressiveACRefined(byref,byref):this (FullOpts)
         -14 (-0.89 % of base) : 37662.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],int,int,int):System.String[]:this (FullOpts)
         -80 (-0.89 % of base) : 7707.dasm - FSharp.Compiler.Lexer:singleQuoteString(FSharp.Compiler.IO.ByteBuffer,FSharp.Compiler.Lexhelp+LexerStringFinisher,FSharp.Compiler.Text.Range,FSharp.Compiler.ParseHelpers+LexerStringKind,FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort]):FSharp.Compiler.Parser+token (FullOpts)
         -12 (-0.87 % of base) : 19095.dasm - Microsoft.ML.Internal.Utilities.ResourceManagerUtils:DownloadResource(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Runtime.IChannel,System.Net.WebClient,System.Uri,System.String,System.String,System.Threading.CancellationToken):System.Exception:this (FullOpts)
          -8 (-0.80 % of base) : 2096.dasm - BepuPhysics.BatchCompressor:DoJob(byref,int,BepuUtilities.Memory.BufferPool):this (FullOpts)
  
  
windows x86
Diffs are based on 2,291,834 contexts (837,213 MinOpts, 1,454,621 FullOpts).
MISSED contexts: base: 0 (0.00%), diff: 684 (0.03%)
Overall (-25,353 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | 
| benchmarks.run.windows.x86.checked.mch | 7,119,787 | -143 | 
| benchmarks.run_pgo.windows.x86.checked.mch | 45,004,324 | +38 | 
| benchmarks.run_tiered.windows.x86.checked.mch | 9,595,642 | -132 | 
| coreclr_tests.run.windows.x86.checked.mch | 309,466,922 | -18,434 | 
| libraries.crossgen2.windows.x86.checked.mch | 31,678,176 | -1,158 | 
| libraries.pmi.windows.x86.checked.mch | 49,132,156 | -1,450 | 
| libraries_tests.run.windows.x86.Release.mch | 184,699,042 | -1,790 | 
| librariestestsnotieredcompilation.run.windows.x86.Release.mch | 103,808,748 | -1,265 | 
| realworld.run.windows.x86.checked.mch | 11,300,239 | -1,019 | 
  
FullOpts (-25,353 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | 
| benchmarks.run.windows.x86.checked.mch | 7,119,506 | -143 | 
| benchmarks.run_pgo.windows.x86.checked.mch | 38,449,817 | +38 | 
| benchmarks.run_tiered.windows.x86.checked.mch | 5,327,505 | -132 | 
| coreclr_tests.run.windows.x86.checked.mch | 107,639,339 | -18,434 | 
| libraries.crossgen2.windows.x86.checked.mch | 31,677,116 | -1,158 | 
| libraries.pmi.windows.x86.checked.mch | 49,036,923 | -1,450 | 
| libraries_tests.run.windows.x86.Release.mch | 87,121,841 | -1,790 | 
| librariestestsnotieredcompilation.run.windows.x86.Release.mch | 95,128,669 | -1,265 | 
| realworld.run.windows.x86.checked.mch | 11,004,525 | -1,019 | 
  
Example diffs
benchmarks.run.windows.x86.checked.mch
-19 (-4.19%) : 1157.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int
@@ -8,22 +8,22 @@
 ; 0 inlinees with PGO data; 7 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T06] (  4,  7   )     ref  ->  [ebp-0x28]  class-hnd single-def <System.String[]>
+;  V00 arg0         [V00,T06] (  4,  7   )     ref  ->  [ebp-0x24]  class-hnd single-def <System.String[]>
 ;* V01 arg1         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.String]>
 ;  V02 arg2         [V02,T09] (  2,  5   )     int  ->  [ebp+0x0C]  single-def
 ;  V03 arg3         [V03,T19] (  1,  1   )     int  ->  [ebp+0x08]  single-def
 ;  V04 loc0         [V04,T11] (  4,  3   )     int  ->  [ebp-0x10]  spill-single-def
 ;  V05 loc1         [V05,T10] (  8,  4   )     int  ->  [ebp-0x14]  spill-single-def
-;  V06 loc2         [V06,T03] ( 13, 24.16)     ref  ->  [ebp-0x2C]  class-hnd spill-single-def <int[]>
+;  V06 loc2         [V06,T03] ( 13, 24.16)     ref  ->  [ebp-0x28]  class-hnd spill-single-def <int[]>
 ;  V07 loc3         [V07,T08] (  4,  5   )     int  ->  [ebp-0x18] 
 ;  V08 loc4         [V08,T16] (  3,  1.50)     ref  ->  esi         class-hnd single-def <int[]>
 ;* V09 loc5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Span`1[int]>
 ;  V10 loc6         [V10,T05] (  6, 18.50)     int  ->  edx        
 ;* V11 loc7         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V12 loc8         [V12,T04] (  6, 20   )     int  ->  [ebp-0x1C]  spill-single-def
+;  V12 loc8         [V12,T04] (  6, 20   )     int  ->  ebx        
 ;  V13 loc9         [V13,T02] (  7, 32   )     int  ->  eax        
 ;  V14 loc10        [V14,T00] ( 12, 74.16)     int  ->  edi        
-;  V15 loc11        [V15,T01] (  5, 34   )   byref  ->  registers  
+;  V15 loc11        [V15,T01] (  5, 34   )   byref  ->  esi        
 ;* V16 tmp0         [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V17 tmp1         [V17    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V18 tmp2         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <int[]>
@@ -32,15 +32,15 @@
 ;  V21 tmp5         [V21,T12] (  2,  2   )     ref  ->  eax         single-def "Single return block return value"
 ;* V22 tmp6         [V22    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp7         [V23    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x4)" P-INDEP
-;  V24 tmp8         [V24,T17] (  3,  1.50)   byref  ->  [ebp-0x30]  "field V16._reference (fldOffset=0x0)" P-INDEP
-;  V25 tmp9         [V25,T18] (  3,  1.50)     int  ->  [ebp-0x20]  "field V16._length (fldOffset=0x4)" P-INDEP
+;  V24 tmp8         [V24,T17] (  3,  1.50)   byref  ->  [ebp-0x2C]  "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V25 tmp9         [V25,T18] (  3,  1.50)     int  ->  [ebp-0x1C]  "field V16._length (fldOffset=0x4)" P-INDEP
 ;  V26 tmp10        [V26,T13] (  2,  2   )     ref  ->  ecx         single-def "argument with side effect"
 ;  V27 tmp11        [V27,T14] (  2,  2   )     ref  ->  ecx         single-def "argument with side effect"
 ;  V28 tmp12        [V28,T15] (  2,  2   )     ref  ->  ecx         single-def "argument with side effect"
 ;* V29 cse0         [V29,T20] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
-;  V30 cse1         [V30,T07] (  4,  6.50)     int  ->  [ebp-0x24]  spill-single-def "CSE - moderate"
+;  V30 cse1         [V30,T07] (  4,  6.50)     int  ->  [ebp-0x20]  spill-single-def "CSE - moderate"
 ;
-; Lcl frame size = 36
+; Lcl frame size = 32
 
 G_M57321_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -48,7 +48,7 @@ G_M57321_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 36
+       sub      esp, 32
        vzeroupper 
        mov      esi, ecx
        ; gcrRegs +[esi]
@@ -60,18 +60,18 @@ G_M57321_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        inc      ebx
        mov      dword ptr [ebp-0x10], ebx
        mov      ecx, dword ptr [esi+0x04]
-       mov      dword ptr [ebp-0x24], ecx
+       mov      dword ptr [ebp-0x20], ecx
        mov      eax, ecx
        cdq      
        idiv     edx:eax, ebx
        cmp      eax, 5
-       jg       G_M57321_IG20
+       jg       G_M57321_IG16
                        ;; size=29 bbWeight=1 PerfScore 32.50
 G_M57321_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        lea      eax, [ebx+4*ebx]
        mov      dword ptr [ebp-0x14], eax
        cmp      eax, 0xD1FFAB1E
-       jg       G_M57321_IG20
+       jg       G_M57321_IG16
        mov      ecx, 0xD1FFAB1E
        mov      edx, 55
        call     CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
@@ -81,20 +81,20 @@ G_M57321_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x2C], eax
+       mov      gword ptr [ebp-0x28], eax
        ; GC ptr vars +{V06}
        test     eax, eax
        jne      SHORT G_M57321_IG04
        mov      edx, dword ptr [ebp-0x14]
        test     edx, edx
-       jne      G_M57321_IG26
+       jne      G_M57321_IG21
        xor      ecx, ecx
        ; byrRegs +[ecx]
-       mov      bword ptr [ebp-0x30], ecx
+       mov      bword ptr [ebp-0x2C], ecx
        ; GC ptr vars +{V24}
        xor      ecx, ecx
        ; byrRegs -[ecx]
-       mov      dword ptr [ebp-0x20], ecx
+       mov      dword ptr [ebp-0x1C], ecx
        jmp      SHORT G_M57321_IG05
                        ;; size=79 bbWeight=0.50 PerfScore 11.12
 G_M57321_IG04:        ; bbWeight=0.50, gcVars=00000008 {V06}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref
@@ -102,31 +102,31 @@ G_M57321_IG04:        ; bbWeight=0.50, gcVars=00000008 {V06}, gcrefRegs=00000041
        mov      ecx, dword ptr [eax+0x04]
        mov      edx, dword ptr [ebp-0x14]
        cmp      dword ptr [eax+0x04], edx
-       jb       G_M57321_IG26
+       jb       G_M57321_IG21
        lea      ecx, bword ptr [eax+0x08]
        ; byrRegs +[ecx]
-       mov      bword ptr [ebp-0x30], ecx
+       mov      bword ptr [ebp-0x2C], ecx
        ; GC ptr vars +{V24}
-       mov      dword ptr [ebp-0x20], edx
+       mov      dword ptr [ebp-0x1C], edx
                      ;; size=24 bbWeight=0.50 PerfScore 4.75
-G_M57321_IG05:        ; bbWeight=0.50, gcVars=00020008 {V06 V24}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M57321_IG05:        ; bbWeight=0.50, gcVars=00020008 {V06 V24}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
        ; byrRegs -[ecx]
        push     -1
-       mov      ecx, bword ptr [ebp-0x30]
+       mov      ecx, bword ptr [ebp-0x2C]
        ; byrRegs +[ecx]
-       mov      edx, dword ptr [ebp-0x20]
+       mov      edx, dword ptr [ebp-0x1C]
        ; GC ptr vars -{V24}
        call     [<unknown method>]
        ; byrRegs -[ecx]
        xor      ecx, ecx
        mov      dword ptr [ebp-0x18], ecx
        xor      edx, edx
-       cmp      dword ptr [ebp-0x24], 0
-       jle      G_M57321_IG18
-                       ;; size=31 bbWeight=0.50 PerfScore 5.25
+       cmp      dword ptr [ebp-0x20], 0
+       jle      SHORT G_M57321_IG14
+                       ;; size=27 bbWeight=0.50 PerfScore 5.25
 G_M57321_IG06:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      gword ptr [ebp-0x28], esi
+       mov      gword ptr [ebp-0x24], esi
        ; GC ptr vars +{V00}
        mov      ebx, gword ptr [esi+4*edx+0x08]
        ; gcrRegs +[ebx]
@@ -135,21 +135,20 @@ G_M57321_IG06:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      dword ptr [ebp+0x0C], edi
        sub      ebx, edi
        lea      ebx, [ebx+4*ebx]
-       mov      dword ptr [ebp-0x1C], ebx
        lea      eax, [ebx+0x05]
        mov      edi, ebx
        cmp      ebx, eax
-       jge      SHORT G_M57321_IG17
-                       ;; size=30 bbWeight=4 PerfScore 39.00
+       jge      SHORT G_M57321_IG13
+                       ;; size=27 bbWeight=4 PerfScore 35.00
 G_M57321_IG07:        ; bbWeight=2, gcVars=00000048 {V00 V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[esi]
-       mov      ecx, gword ptr [ebp-0x2C]
+       mov      ecx, gword ptr [ebp-0x28]
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       SHORT G_M57321_IG12
+       je       SHORT G_M57321_IG10
        mov      esi, ebx
        or       esi, eax
-       jl       SHORT G_M57321_IG11
+       jl       SHORT G_M57321_IG10
        cmp      dword ptr [ecx+0x04], eax
        jl       SHORT G_M57321_IG10
                        ;; size=18 bbWeight=2 PerfScore 15.50
@@ -157,64 +156,51 @@ G_M57321_IG08:        ; bbWeight=15.84, gcrefRegs=00000002 {ecx}, byrefRegs=0000
        lea      esi, bword ptr [ecx+4*edi+0x08]
        ; byrRegs +[esi]
        cmp      dword ptr [esi], 0
-       jl       SHORT G_M57321_IG15
+       jl       SHORT G_M57321_IG11
        inc      edi
        cmp      edi, eax
        jl       SHORT G_M57321_IG08
                        ;; size=14 bbWeight=15.84 PerfScore 102.96
-G_M57321_IG09:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+G_M57321_IG09:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[esi]
-       jmp      SHORT G_M57321_IG17
-                       ;; size=2 bbWeight=2 PerfScore 4.00
-G_M57321_IG10:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-       jmp      SHORT G_M57321_IG12
-                       ;; size=2 bbWeight=1 PerfScore 2.00
-G_M57321_IG11:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-                       ;; size=0 bbWeight=1 PerfScore 0.00
-G_M57321_IG12:        ; bbWeight=0.16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M57321_IG13
+                       ;; size=2 bbWeight=4 PerfScore 8.00
+G_M57321_IG10:        ; bbWeight=0.16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        cmp      edi, dword ptr [ecx+0x04]
-       jae      G_M57321_IG25
-       lea      ebx, bword ptr [ecx+4*edi+0x08]
-       ; byrRegs +[ebx]
-       cmp      dword ptr [ebx], 0
-       mov      esi, ebx
+       jae      G_M57321_IG20
+       lea      esi, bword ptr [ecx+4*edi+0x08]
        ; byrRegs +[esi]
-       jl       SHORT G_M57321_IG14
+       cmp      dword ptr [esi], 0
+       jl       SHORT G_M57321_IG11
        inc      edi
        cmp      edi, eax
-       jl       SHORT G_M57321_IG12
-                       ;; size=25 bbWeight=0.16 PerfScore 1.72
-G_M57321_IG13:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-       ; byrRegs -[ebx esi]
-       jmp      SHORT G_M57321_IG17
-                       ;; size=2 bbWeight=2 PerfScore 4.00
-G_M57321_IG14:        ; bbWeight=0.08, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref
-       ; byrRegs +[esi]
-       mov      ebx, dword ptr [ebp-0x1C]
-                       ;; size=3 bbWeight=0.08 PerfScore 0.08
-G_M57321_IG15:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref, isz
+       jl       SHORT G_M57321_IG10
+       jmp      SHORT G_M57321_IG13
+                       ;; size=25 bbWeight=0.16 PerfScore 2.00
+G_M57321_IG11:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref, isz
        cmp      edi, ebx
-       jne      SHORT G_M57321_IG16
+       jne      SHORT G_M57321_IG12
        mov      ebx, dword ptr [ebp-0x18]
        inc      ebx
        mov      dword ptr [ebp-0x18], ebx
                        ;; size=11 bbWeight=2 PerfScore 7.00
-G_M57321_IG16:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref
+G_M57321_IG12:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref
        mov      dword ptr [esi], edx
                        ;; size=2 bbWeight=2 PerfScore 2.00
-G_M57321_IG17:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M57321_IG13:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[ecx]
        ; byrRegs -[esi]
        cmp      edi, eax
-       je       SHORT G_M57321_IG19
+       je       SHORT G_M57321_IG15
        inc      edx
-       mov      edi, dword ptr [ebp-0x24]
-       cmp      edi, edx
-       mov      esi, gword ptr [ebp-0x28]
+       mov      ebx, dword ptr [ebp-0x20]
+       cmp      ebx, edx
+       mov      esi, gword ptr [ebp-0x24]
...
  
-21 (-3.08%) : 43.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(uint,int,byref,byref):uint (FullOpts)
@@ -210,21 +210,21 @@ G_M64904_IG17:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        vpor     xmm2, xmm2, xmm4
        vpmovmskb ecx, xmm2
        popcnt   ecx, ecx
-       vmovups  xmm2, xmmword ptr [ebp-0x44]
-       vpaddw   xmm4, xmm0, xmm2
+       vpaddw   xmm4, xmm0, xmmword ptr [ebp-0x44]
        vpcmpgtw xmm4, xmm3, xmm4
        vpmovmskb eax, xmm4
        cmp      eax, 0xFFFF
        jne      SHORT G_M64904_IG20
-                      ;; size=55 bbWeight=4 PerfScore 83.00
+                     ;; size=51 bbWeight=4 PerfScore 77.67
 G_M64904_IG18:        ; bbWeight=16, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        add      ebx, ecx
        mov      eax, dword ptr [ebp-0x74]
        adc      eax, 0
        cmp      esi, edi
        mov      dword ptr [ebp-0x74], eax
+       mov      edi, dword ptr [ebp-0x48]
        jbe      SHORT G_M64904_IG15
-                      ;; size=15 bbWeight=16 PerfScore 64.00
+                        ;; size=18 bbWeight=16 PerfScore 80.00
 G_M64904_IG19:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, dword ptr [ebp-0x14]
        jmp      G_M64904_IG28
@@ -250,9 +250,7 @@ G_M64904_IG21:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
        mov      ecx, dword ptr [ebp-0x6C]
-       vmovups  xmm2, xmmword ptr [ebp-0x44]
-       vmovups  xmm3, xmmword ptr [ebp-0x34]
-                       ;; size=32 bbWeight=8 PerfScore 92.00
+                     ;; size=22 bbWeight=8 PerfScore 44.00
 G_M64904_IG22:        ; bbWeight=32, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      eax, dword ptr [ebp-0x70]
        mov      edx, eax
@@ -269,9 +267,7 @@ G_M64904_IG23:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
        mov      ecx, dword ptr [ebp-0x6C]
-       vmovups  xmm2, xmmword ptr [ebp-0x44]
-       vmovups  xmm3, xmmword ptr [ebp-0x34]
-                       ;; size=32 bbWeight=8 PerfScore 92.00
+                     ;; size=22 bbWeight=8 PerfScore 44.00
 G_M64904_IG24:        ; bbWeight=32, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      eax, dword ptr [ebp-0x70]
        shl      eax, 2
@@ -292,9 +288,9 @@ G_M64904_IG26:        ; bbWeight=32, gcrefRegs=00000000 {}, byrefRegs=00000000 {
        sub      edi, eax
        add      eax, eax
        sub      ebx, eax
-       mov      eax, dword ptr [ebp-0x74]
-       sbb      eax, 0
-       mov      dword ptr [ebp-0x74], eax
+       mov      edx, dword ptr [ebp-0x74]
+       sbb      edx, 0
+       mov      dword ptr [ebp-0x74], edx
        mov      dword ptr [ebp-0x10], edi
        mov      edi, dword ptr [ebp-0x48]
        jmp      G_M64904_IG18
@@ -385,6 +381,6 @@ RWD16   dq  7800780078007800h, 7800780078007800h
 RWD32      dq  A000A000A000A000h, A000A000A000A000h
 
 
-; Total bytes of code 682, prolog size 16, PerfScore 1263.75, instruction count 214, allocated bytes for code 682 (MethodHash=96570277) for method System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(uint,int,byref,byref):uint (FullOpts)
+; Total bytes of code 661, prolog size 16, PerfScore 1178.42, instruction count 210, allocated bytes for code 661 (MethodHash=96570277) for method System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(uint,int,byref,byref):uint (FullOpts)
 ; ============================================================
 
  
-10 (-3.05%) : 15475.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong]:<TryFoldAlternation>g__TrySplitConcatSubsumption|52_0(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong],byref):ubyte (FullOpts)
@@ -53,7 +53,7 @@ G_M37099_IG03:        ; bbWeight=0.50, gcVars=00000002 {V04}, gcrefRegs=000000C4
                        ;; size=3 bbWeight=0.50 PerfScore 0.50
 G_M37099_IG04:        ; bbWeight=4, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000008 {ebx}, byref, isz
        cmp      edx, esi
-       je       G_M37099_IG10
+       je       SHORT G_M37099_IG10
        mov      gword ptr [ebp-0x18], edx
        ; GC ptr vars +{V05}
        mov      ecx, gword ptr [edx+0x10]
@@ -86,7 +86,7 @@ G_M37099_IG04:        ; bbWeight=4, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=
        mov      edi, dword ptr [edx+0x08]
        cmp      dword ptr [ebx+0x04], edi
        jbe      SHORT G_M37099_IG06
-                      ;; size=70 bbWeight=4 PerfScore 131.00
+                        ;; size=66 bbWeight=4 PerfScore 131.00
 G_M37099_IG05:        ; bbWeight=2, gcVars=000000C7 {V00 V04 V05 V07 V09}, gcrefRegs=00000046 {ecx edx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax ebx]
        lea      ebx, [edi+0x01]
@@ -118,23 +118,22 @@ G_M37099_IG07:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        cmp      dword ptr [edi+0x18], 2
        mov      edx, edi
        ; gcrRegs +[edx]
-       mov      ebx, bword ptr [ebp+0x08]
-       ; byrRegs +[ebx]
        je       SHORT G_M37099_IG09
-                       ;; size=17 bbWeight=4 PerfScore 33.00
-G_M37099_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000008 {ebx}, gcvars, byref
+                        ;; size=14 bbWeight=4 PerfScore 29.00
+G_M37099_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[edx esi edi]
        ; GC ptr vars -{V00 V04 V05}
-       mov      bword ptr [ebp+0x08], ebx
        jmp      G_M37099_IG15
-                      ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M37099_IG09:        ; bbWeight=2, gcVars=00000082 {V00 V04}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000008 {ebx}, gcvars, byref
+                     ;; size=5 bbWeight=0.50 PerfScore 1.00
+G_M37099_IG09:        ; bbWeight=2, gcVars=00000082 {V00 V04}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[edx esi]
        ; GC ptr vars +{V00 V01 V04 V07}
+       mov      ebx, bword ptr [ebp+0x08]
+       ; byrRegs +[ebx]
        mov      edi, gword ptr [ebp-0x10]
        ; gcrRegs +[edi]
-       jmp      G_M37099_IG04
-                       ;; size=8 bbWeight=2 PerfScore 6.00
+       jmp      SHORT G_M37099_IG04
+                       ;; size=8 bbWeight=2 PerfScore 8.00
 G_M37099_IG10:        ; bbWeight=0.50, gcVars=00000002 {V04}, gcrefRegs=00000080 {edi}, byrefRegs=00000008 {ebx}, gcvars, byref
        ; gcrRegs -[edx esi]
        ; GC ptr vars -{V00 V01 V07}
@@ -241,6 +240,6 @@ G_M37099_IG16:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
        ret      8
                        ;; size=10 bbWeight=0.50 PerfScore 2.25
 
-; Total bytes of code 328, prolog size 9, PerfScore 243.62, instruction count 113, allocated bytes for code 328 (MethodHash=7b316f14) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:<TryFoldAlternation>g__TrySplitConcatSubsumption|52_0(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],byref):ubyte (FullOpts)
+; Total bytes of code 318, prolog size 9, PerfScore 241.12, instruction count 112, allocated bytes for code 318 (MethodHash=7b316f14) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:<TryFoldAlternation>g__TrySplitConcatSubsumption|52_0(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],byref):ubyte (FullOpts)
 ; ============================================================
 
  
+35 (+5.10%) : 2058.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (FullOpts)
@@ -8,19 +8,19 @@
 ; 0 inlinees with PGO data; 43 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T06] ( 17, 44   )   byref  ->  [ebp-0x28]  single-def
-;  V01 arg1         [V01,T11] (  4, 22   )     ref  ->  [ebp-0x2C]  class-hnd single-def <System.Reflection.CustomAttributeNamedParameter[]>
+;  V00 arg0         [V00,T06] ( 17, 44   )   byref  ->  esi         single-def
+;  V01 arg1         [V01,T11] (  4, 22   )     ref  ->  [ebp-0x28]  class-hnd single-def <System.Reflection.CustomAttributeNamedParameter[]>
 ;  V02 arg2         [V02,T24] (  2,  8   )     ref  ->  [ebp+0x08]  class-hnd single-def <System.Reflection.RuntimeModule>
 ;  V03 loc0         [V03,T27] (  3,  6   )     int  ->  [ebp-0x10]  spill-single-def
 ;  V04 loc1         [V04,T20] (  4, 13   )     int  ->  [ebp-0x14] 
 ;  V05 loc2         [V05,T22] (  3, 10   )     int  ->  ecx        
-;  V06 loc3         [V06,T08] (  6, 34   )     ref  ->  ebx         class-hnd exact <System.Reflection.CustomAttributeType>
+;  V06 loc3         [V06,T08] (  6, 34   )     ref  ->  [ebp-0x2C]  class-hnd exact spill-single-def <System.Reflection.CustomAttributeType>
 ;  V07 loc4         [V07,T12] (  5, 26   )     ref  ->  [ebp-0x30]  class-hnd exact spill-single-def <System.String>
 ;  V08 loc5         [V08,T18] (  5, 18   )     ref  ->  [ebp-0x34]  class-hnd <System.Reflection.CustomAttributeNamedParameter>
 ;* V09 loc6         [V09,T28] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Reflection.CustomAttributeNamedParameter[]>
 ;  V10 loc7         [V10,T02] (  5, 68   )     int  ->  [ebp-0x18] 
-;  V11 loc8         [V11,T07] (  4, 42   )     ref  ->  esi         class-hnd exact <System.Reflection.CustomAttributeNamedParameter>
-;  V12 loc9         [V12,T01] (  8, 74   )     ref  ->  edi         class-hnd exact <System.Reflection.CustomAttributeType>
+;  V11 loc8         [V11,T07] (  4, 42   )     ref  ->  [ebp-0x38]  class-hnd exact spill-single-def <System.Reflection.CustomAttributeNamedParameter>
+;  V12 loc9         [V12,T01] (  8, 74   )     ref  ->  [ebp-0x3C]  class-hnd exact spill-single-def <System.Reflection.CustomAttributeType>
 ;* V13 tmp0         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Type>
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
@@ -60,7 +60,7 @@
 ;* V49 tmp36        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V21._length (fldOffset=0x4)" P-INDEP
 ;* V50 tmp37        [V50    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V51 tmp38        [V51    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x4)" P-INDEP
-;  V52 tmp39        [V52,T30] (  2,  2   )   byref  ->  [ebp-0x38]  spill-single-def "field V25._reference (fldOffset=0x0)" P-INDEP
+;  V52 tmp39        [V52,T30] (  2,  2   )   byref  ->  [ebp-0x40]  spill-single-def "field V25._reference (fldOffset=0x0)" P-INDEP
 ;* V53 tmp40        [V53    ] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0x4)" P-INDEP
 ;* V54 tmp41        [V54    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V55 tmp42        [V55    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x4)" P-INDEP
@@ -72,21 +72,21 @@
 ;* V61 tmp48        [V61    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x4)" P-INDEP
 ;  V62 tmp49        [V62,T25] (  2,  8   )   byref  ->  ebx         "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V63 tmp50        [V63    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x4)" P-INDEP
-;  V64 tmp51        [V64,T05] (  3, 48   )     ref  ->  eax         "argument with side effect"
+;  V64 tmp51        [V64,T05] (  3, 48   )     ref  ->  ebx         "argument with side effect"
 ;  V65 tmp52        [V65,T35] (  2,  0   )     ref  ->  edx         "argument with side effect"
 ;  V66 tmp53        [V66,T36] (  2,  0   )     ref  ->  edx         "argument with side effect"
 ;  V67 tmp54        [V67,T37] (  2,  0   )     ref  ->  edx         "argument with side effect"
 ;  V68 tmp55        [V68,T38] (  2,  0   )     ref  ->  edx         "argument with side effect"
 ;  V69 cse0         [V69,T14] (  3, 24   )     int  ->  [ebp-0x1C]  spill-single-def "CSE - moderate"
-;  V70 cse1         [V70,T15] (  3, 24   )     int  ->  eax         "CSE - moderate"
+;  V70 cse1         [V70,T15] (  3, 24   )     int  ->  ebx         "CSE - moderate"
 ;  V71 cse2         [V71,T16] (  3, 24   )     int  ->  eax         "CSE - moderate"
 ;  V72 cse3         [V72,T21] (  3, 12   )     int  ->  ebx         "CSE - conservative"
 ;  V73 cse4         [V73,T29] (  3,  3   )     int  ->  edx         "CSE - conservative"
 ;  V74 cse5         [V74,T03] (  3, 68   )     int  ->  [ebp-0x20]  spill-single-def "CSE - moderate"
 ;  V75 cse6         [V75,T17] (  3, 24   )     int  ->  [ebp-0x24]  spill-single-def "CSE - moderate"
-;  TEMP_01                                     int  ->  [ebp-0x3C]
+;  TEMP_01                                     int  ->  [ebp-0x44]
 ;
-; Lcl frame size = 48
+; Lcl frame size = 56
 
 G_M41795_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -94,7 +94,7 @@ G_M41795_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 48
+       sub      esp, 56
        mov      esi, ecx
        ; byrRegs +[esi]
        mov      edi, edx
@@ -106,13 +106,13 @@ G_M41795_IG02:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000040
        mov      eax, dword ptr [esi]
        mov      edx, dword ptr [ecx+0x04]
        cmp      eax, edx
-       ja       G_M41795_IG31
+       ja       G_M41795_IG33
        sub      edx, eax
        cmp      edx, 2
-       jb       G_M41795_IG31
+       jb       G_M41795_IG33
        add      eax, bword ptr [ecx]
        ; byrRegs +[eax]
-       mov      bword ptr [ebp-0x38], eax
+       mov      bword ptr [ebp-0x40], eax
        ; GC ptr vars +{V52}
        mov      ecx, dword ptr [esi+0x08]
        ; byrRegs -[ecx]
@@ -131,7 +131,7 @@ G_M41795_IG03:        ; bbWeight=0.50, gcVars=0000000040000000 {V52}, gcrefRegs=
                        ;; size=16 bbWeight=0.50 PerfScore 1.75
 G_M41795_IG04:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref
        add      dword ptr [esi], 2
-       mov      eax, bword ptr [ebp-0x38]
+       mov      eax, bword ptr [ebp-0x40]
        ; byrRegs +[eax]
        movsx    eax, word  ptr [eax]
        ; byrRegs -[eax]
@@ -139,7 +139,7 @@ G_M41795_IG04:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000040
        xor      edx, edx
        mov      dword ptr [ebp-0x14], edx
        test     eax, eax
-       jle      G_M41795_IG29
+       jle      G_M41795_IG31
                      ;; size=25 bbWeight=1 PerfScore 11.50
 G_M41795_IG05:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, gcvars, byref, isz
        ; GC ptr vars -{V52}
@@ -148,9 +148,9 @@ G_M41795_IG05:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=000000
        mov      eax, dword ptr [esi]
        mov      ebx, dword ptr [ecx+0x04]
        cmp      eax, ebx
-       ja       G_M41795_IG31
+       ja       G_M41795_IG33
        sub      ebx, eax
-       je       G_M41795_IG31
+       je       G_M41795_IG33
        mov      ebx, eax
        add      ebx, bword ptr [ecx]
        ; byrRegs +[ebx]
@@ -177,7 +177,7 @@ G_M41795_IG07:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000048
 G_M41795_IG08:        ; bbWeight=2, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref
        ; byrRegs -[ebx]
        cmp      ecx, 84
-       jne      G_M41795_IG32
+       jne      G_M41795_IG34
                       ;; size=9 bbWeight=2 PerfScore 2.50
 G_M41795_IG09:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref
        mov      ecx, esi
@@ -187,8 +187,8 @@ G_M41795_IG09:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000040
        call     [System.Reflection.CustomAttributeEncodedArgument:ParseCustomAttributeType(byref,System.Reflection.RuntimeModule):System.Reflection.CustomAttributeType]
        ; gcrRegs -[edx] +[eax]
        ; byrRegs -[ecx]
-       mov      ebx, eax
-       ; gcrRegs +[ebx]
+       mov      gword ptr [ebp-0x2C], eax
+       ; GC ptr vars +{V06}
        mov      ecx, esi
        ; byrRegs +[ecx]
        call     [System.Reflection.CustomAttributeEncodedArgument+CustomAttributeDataParser:GetString():System.String:this]
@@ -196,15 +196,15 @@ G_M41795_IG09:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000040
        mov      gword ptr [ebp-0x30], eax
        ; GC ptr vars +{V07}
        test     eax, eax
-       je       G_M41795_IG33
-                       ;; size=32 bbWeight=4 PerfScore 40.00
-G_M41795_IG10:        ; bbWeight=2, gcVars=0000000000001000 {V07}, gcrefRegs=00000089 {eax ebx edi}, byrefRegs=00000040 {esi}, gcvars, byref
+       je       G_M41795_IG35
+                       ;; size=33 bbWeight=4 PerfScore 43.00
+G_M41795_IG10:        ; bbWeight=2, gcVars=0000000000001100 {V06 V07}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000040 {esi}, gcvars, byref
        mov      edx, dword ptr [eax+0x04]
        mov      dword ptr [ebp-0x20], edx
        test     edx, edx
-       je       G_M41795_IG33
+       je       G_M41795_IG35
                      ;; size=14 bbWeight=2 PerfScore 8.50
-G_M41795_IG11:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, byref
+G_M41795_IG11:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref
        ; gcrRegs -[eax]
        xor      ecx, ecx
        ; gcrRegs +[ecx]
@@ -212,177 +212,201 @@ G_M41795_IG11:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
        ; GC ptr vars +{V08}
        xor      ecx, ecx
        ; gcrRegs -[ecx]
-       mov      gword ptr [ebp-0x2C], edi
+       mov      gword ptr [ebp-0x28], edi
        ; GC ptr vars +{V01}
        mov      edi, dword ptr [edi+0x04]
        ; gcrRegs -[edi]
        mov      dword ptr [ebp-0x24], edi
        test     edi, edi
-       jle      G_M41795_IG28
+       jle      G_M41795_IG27
                      ;; size=24 bbWeight=4 PerfScore 27.00
-G_M41795_IG12:        ; bbWeight=2, gcVars=0000000000041800 {V01 V07 V08}, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, gcvars, byref
-       mov      bword ptr [ebp-0x28], esi
-       ; GC ptr vars +{V00}
-                       ;; size=3 bbWeight=2 PerfScore 2.00
-G_M41795_IG13:        ; bbWeight=16, gcVars=0000000000041840 {V00 V01 V07 V08}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; byrRegs -[esi]
-       mov      esi, gword ptr [ebp-0x2C]
-       ; gcrRegs +[esi]
-       mov      dword ptr [ebp-0x18], ecx
-       mov      esi, gword ptr [esi+4*ecx+0x08]
-       mov      edi, gword ptr [esi+0x08]
+G_M41795_IG12:        ; bbWeight=16, gcVars=0000000000041900 {V01 V06 V07 V08}, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, gcvars, byref
+       mov      edi, gword ptr [ebp-0x28]
        ; gcrRegs +[edi]
-       cmp      dword ptr [edi+0x08], 81
-       je       SHORT G_M41795_IG15
-                       ;; size=19 bbWeight=16 PerfScore 160.00
-G_M41795_IG14:        ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, dword ptr [edi+0x08]
-       mov      dword ptr [ebp-0x3C], eax
-       mov      eax, dword ptr [ebx+0x08]
-       mov      dword ptr [ebp-0x1C], eax
-       mov      eax, dword ptr [ebp-0x3C]
-       cmp      eax, dword ptr [ebp-0x1C]
+       mov      dword ptr [ebp-0x18], ecx
+       mov      edi, gword ptr [edi+4*ecx+0x08]
+       mov      gword ptr [ebp-0x38], edi
+       ; GC ptr vars +{V11}
+       mov      eax, gword ptr [edi+0x08]
+       ; gcrRegs +[eax]
+       mov      gword ptr [ebp-0x3C], eax
+       ; GC ptr vars +{V12}
+       cmp      dword ptr [eax+0x08], 81
+       je       G_M41795_IG26
+                       ;; size=29 bbWeight=16 PerfScore 192.00
+G_M41795_IG13:        ; bbWeight=8, gcVars=0000000000041982 {V01 V06 V07 V08 V11 V12}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref, isz
+       ; gcrRegs -[edi]
+       mov      ebx, dword ptr [eax+0x08]
+       mov      dword ptr [ebp-0x44], ebx
+       mov      ebx, gword ptr [ebp-0x2C]
+       ; gcrRegs +[ebx]
+       mov      ebx, dword ptr [ebx+0x08]
+       ; gcrRegs -[ebx]
+       mov      dword ptr [ebp-0x1C], ebx
+       mov      ebx, dword ptr [ebp-0x44]
+       cmp      ebx, dword ptr [ebp-0x1C]
        jne      G_M41795_IG25
        cmp      dword ptr [ebp-0x1C], 29
-       jne      SHORT G_M41795_IG15
-       mov      eax, dword ptr [edi+0x10]
-       cmp      eax, 81
-       je       SHORT G_M41795_IG15
-       cmp      dword ptr [ebx+0x10], eax
-       jne      SHORT G_M41795_IG24
-                       ;; size=43 bbWeight=8 PerfScore 162.00
-G_M41795_IG15:        ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, gword ptr [esi+0x04]
-       ; gcrRegs +[eax]
-       mov      ecx, eax
+       jne      G_M41795_IG24
+       mov      ebx, dword ptr [eax+0x10]
+       cmp      ebx, 81
+       je       SHORT G_M41795_IG14
+       mov      edi, gword ptr [ebp-0x2C]
+       ; gcrRegs +[edi]
+       cmp      dword ptr [edi+0x10], ebx
+       jne      SHORT G_M41795_IG23
+                       ;; size=53 bbWeight=8 PerfScore 178.00
+G_M41795_IG14:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
+       ; gcrRegs -[eax edi]
+       mov      edi, gword ptr [ebp-0x38]
+       ; gcrRegs +[edi]
+       mov      ebx, gword ptr [edi+0x04]
+       ; gcrRegs +[ebx]
+       mov      ecx, ebx
        ; gcrRegs +[ecx]
-       mov      eax, dword ptr [eax]
-       ; gcrRegs -[eax]
-       mov      eax, dword ptr [eax+0x2C]
...
  
+16 (+5.88%) : 16460.dasm - Benchstone.BenchF.InProd:Inner(double[][],double[][],double[][]) (FullOpts)
@@ -45,9 +45,9 @@ G_M15841_IG02:        ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
        ; gcrRegs -[ecx]
        mov      eax, 1
        test     esi, esi
-       je       G_M15841_IG10
+       je       G_M15841_IG11
        cmp      dword ptr [esi+0x04], 700
-       jl       G_M15841_IG10
+       jl       G_M15841_IG11
                       ;; size=52 bbWeight=1 PerfScore 13.00
 G_M15841_IG03:        ; bbWeight=3.96, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, 1
@@ -87,14 +87,15 @@ G_M15841_IG05:        ; bbWeight=15.68, gcrefRegs=000000C8 {ebx esi edi}, byrefR
        mov      eax, dword ptr [ebp-0x10]
        jl       SHORT G_M15841_IG05
                        ;; size=40 bbWeight=15.68 PerfScore 231.30
-G_M15841_IG06:        ; bbWeight=1.98, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M15841_IG06:        ; bbWeight=3.96, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       mov      dword ptr [ebp-0x10], eax
        jmp      SHORT G_M15841_IG08
-                     ;; size=2 bbWeight=1.98 PerfScore 3.96
+                        ;; size=5 bbWeight=3.96 PerfScore 11.88
 G_M15841_IG07:        ; bbWeight=0.16, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [esi+4*eax+0x08]
        ; gcrRegs +[ecx]
        cmp      edx, dword ptr [ecx+0x04]
-       jae      SHORT G_M15841_IG14
+       jae      G_M15841_IG15
        lea      ecx, bword ptr [ecx+8*edx+0x08]
        ; gcrRegs -[ecx]
        ; byrRegs +[ecx]
@@ -114,29 +115,33 @@ G_M15841_IG07:        ; bbWeight=0.16, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        inc      eax
        cmp      eax, 700
        mov      edx, eax
+       jl       SHORT G_M15841_IG10
+                       ;; size=47 bbWeight=0.16 PerfScore 2.85
+G_M15841_IG08:        ; bbWeight=3.96, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
        mov      eax, dword ptr [ebp-0x10]
-       jl       SHORT G_M15841_IG07
-                       ;; size=46 bbWeight=0.16 PerfScore 3.01
-G_M15841_IG08:        ; bbWeight=3.96, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        inc      eax
        cmp      eax, 700
-       jl       SHORT G_M15841_IG03
-                       ;; size=8 bbWeight=3.96 PerfScore 5.94
+       jl       G_M15841_IG03
+                       ;; size=15 bbWeight=3.96 PerfScore 9.90
 G_M15841_IG09:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[ebx esi edi]
-       jmp      SHORT G_M15841_IG13
+       jmp      SHORT G_M15841_IG14
                       ;; size=2 bbWeight=1 PerfScore 2.00
-G_M15841_IG10:        ; bbWeight=0.04, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+G_M15841_IG10:        ; bbWeight=0.08, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ebx esi edi]
+       mov      eax, dword ptr [ebp-0x10]
+       jmp      SHORT G_M15841_IG07
+                       ;; size=5 bbWeight=0.08 PerfScore 0.24
+G_M15841_IG11:        ; bbWeight=0.04, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
        mov      edx, 1
                        ;; size=5 bbWeight=0.04 PerfScore 0.01
-G_M15841_IG11:        ; bbWeight=0.16, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M15841_IG12:        ; bbWeight=0.16, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        cmp      eax, dword ptr [esi+0x04]
-       jae      SHORT G_M15841_IG14
+       jae      SHORT G_M15841_IG15
        mov      ecx, gword ptr [esi+4*eax+0x08]
        ; gcrRegs +[ecx]
        cmp      edx, dword ptr [ecx+0x04]
-       jae      SHORT G_M15841_IG14
+       jae      SHORT G_M15841_IG15
        lea      ecx, bword ptr [ecx+8*edx+0x08]
        ; gcrRegs -[ecx]
        ; byrRegs +[ecx]
@@ -156,14 +161,14 @@ G_M15841_IG11:        ; bbWeight=0.16, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        inc      edx
        cmp      edx, 700
        mov      eax, dword ptr [ebp-0x10]
-       jl       SHORT G_M15841_IG11
+       jl       SHORT G_M15841_IG12
                         ;; size=50 bbWeight=0.16 PerfScore 3.64
-G_M15841_IG12:        ; bbWeight=0.04, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M15841_IG13:        ; bbWeight=0.04, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        inc      eax
        cmp      eax, 700
-       jl       SHORT G_M15841_IG10
+       jl       SHORT G_M15841_IG11
                      ;; size=8 bbWeight=0.04 PerfScore 0.06
-G_M15841_IG13:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M15841_IG14:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[ebx esi edi]
        lea      esp, [ebp-0x0C]
        pop      ebx
@@ -172,11 +177,11 @@ G_M15841_IG13:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        pop      ebp
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
-G_M15841_IG14:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M15841_IG15:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 272, prolog size 16, PerfScore 304.61, instruction count 93, allocated bytes for code 272 (MethodHash=ed43c21e) for method Benchstone.BenchF.InProd:Inner(double[][],double[][],double[][]) (FullOpts)
+; Total bytes of code 288, prolog size 16, PerfScore 316.57, instruction count 96, allocated bytes for code 288 (MethodHash=ed43c21e) for method Benchstone.BenchF.InProd:Inner(double[][],double[][],double[][]) (FullOpts)
 ; ============================================================
 
  
+21 (+9.63%) : 23294.dasm - Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (FullOpts)
@@ -42,15 +42,15 @@ G_M52602_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000004
        mov      edx, 1
        ; byrRegs -[edx]
        test     eax, eax
-       jle      G_M52602_IG12
+       jle      G_M52602_IG14
                      ;; size=18 bbWeight=1 PerfScore 4.50
-G_M52602_IG03:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+G_M52602_IG03:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        lea      esi, [edx+0x01]
        mov      dword ptr [ebp-0x18], esi
        mov      edi, esi
        cmp      edi, eax
-       jg       G_M52602_IG11
-                       ;; size=16 bbWeight=4 PerfScore 12.00
+       jg       SHORT G_M52602_IG10
+                       ;; size=12 bbWeight=4 PerfScore 12.00
 G_M52602_IG04:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        mov      ebx, 1
        test     ecx, ecx
@@ -60,7 +60,7 @@ G_M52602_IG05:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        test     eax, eax
        jl       SHORT G_M52602_IG08
        cmp      dword ptr [ecx+0x04], eax
-       jle      SHORT G_M52602_IG09
+       jle      SHORT G_M52602_IG11
                         ;; size=9 bbWeight=8 PerfScore 42.00
 G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        mov      gword ptr [ebp-0x20], ecx
@@ -70,14 +70,14 @@ G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=0000
        mov      ecx, esi
        mov      eax, dword ptr [ecx+0x04]
        cmp      edx, eax
-       jae      G_M52602_IG13
+       jae      G_M52602_IG17
        mov      ecx, dword ptr [ecx+4*edx+0x08]
        ; gcrRegs -[ecx]
        mov      dword ptr [ebp-0x14], ecx
        mov      ecx, esi
        ; gcrRegs +[ecx]
        cmp      edi, eax
-       jae      SHORT G_M52602_IG13
+       jae      G_M52602_IG17
        mov      eax, dword ptr [ecx+4*edi+0x08]
        mov      ecx, dword ptr [ebp-0x14]
        ; gcrRegs -[ecx]
@@ -88,17 +88,31 @@ G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=0000
        mov      ecx, gword ptr [ebp-0x20]
        ; gcrRegs +[ecx]
        jle      SHORT G_M52602_IG06
-                      ;; size=55 bbWeight=63.36 PerfScore 1235.52
-G_M52602_IG07:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=59 bbWeight=63.36 PerfScore 1235.52
+G_M52602_IG07:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        ; GC ptr vars -{V00}
-       jmp      SHORT G_M52602_IG10
-                       ;; size=2 bbWeight=8 PerfScore 16.00
+       mov      gword ptr [ebp-0x20], ecx
+       ; GC ptr vars +{V00}
+       mov      eax, dword ptr [ebp-0x10]
+       jmp      SHORT G_M52602_IG12
+                       ;; size=8 bbWeight=16 PerfScore 64.00
 G_M52602_IG08:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-                      ;; size=0 bbWeight=4 PerfScore 0.00
-G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; GC ptr vars -{V00}
+       jmp      SHORT G_M52602_IG11
+                       ;; size=2 bbWeight=4 PerfScore 8.00
+G_M52602_IG09:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M52602_IG11
+                       ;; size=2 bbWeight=8 PerfScore 16.00
+G_M52602_IG10:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       mov      gword ptr [ebp-0x20], ecx
+       ; GC ptr vars +{V00}
+       jmp      SHORT G_M52602_IG13
+                       ;; size=5 bbWeight=2 PerfScore 6.00
+G_M52602_IG11:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; GC ptr vars -{V00}
        cmp      ebx, dword ptr [ecx+0x04]
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      gword ptr [ebp-0x20], ecx
        ; GC ptr vars +{V00}
        mov      esi, gword ptr [ecx+4*ebx+0x08]
@@ -109,13 +123,13 @@ G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000
        ; gcrRegs -[ecx]
        mov      dword ptr [ebp-0x1C], ecx
        cmp      edx, ecx
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      esi, dword ptr [esi+4*edx+0x08]
        ; gcrRegs -[esi]
        mov      ecx, gword ptr [ebp-0x24]
        ; gcrRegs +[ecx]
        cmp      edi, dword ptr [ebp-0x1C]
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      ecx, dword ptr [ecx+4*edi+0x08]
        ; gcrRegs -[ecx]
        mov      eax, gword ptr [ebp-0x24]
@@ -126,25 +140,25 @@ G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000
        mov      eax, dword ptr [ebp-0x10]
        ; gcrRegs -[eax]
        cmp      ebx, eax
-       mov      ecx, gword ptr [ebp-0x20]
-       ; gcrRegs +[ecx]
-       jle      SHORT G_M52602_IG09
-                       ;; size=61 bbWeight=0.64 PerfScore 16.64
-G_M52602_IG10:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
-       ; GC ptr vars -{V00 V11}
+       jle      SHORT G_M52602_IG16
+                       ;; size=58 bbWeight=0.64 PerfScore 16.00
+G_M52602_IG12:        ; bbWeight=16, gcVars=00000800 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V11}
        inc      edi
-       mov      eax, dword ptr [ebp-0x10]
        cmp      edi, eax
-       jle      G_M52602_IG04
-                       ;; size=12 bbWeight=16 PerfScore 40.00
-G_M52602_IG11:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+       jle      SHORT G_M52602_IG15
+                       ;; size=5 bbWeight=16 PerfScore 24.00
+G_M52602_IG13:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      esi, dword ptr [ebp-0x18]
        mov      edx, esi
        cmp      edx, eax
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
        jle      G_M52602_IG03
-                     ;; size=13 bbWeight=4 PerfScore 10.00
-G_M52602_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+                        ;; size=16 bbWeight=4 PerfScore 14.00
+G_M52602_IG14:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
        ; gcrRegs -[ecx]
+       ; GC ptr vars -{V00}
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -152,11 +166,25 @@ G_M52602_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        pop      ebp
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
-G_M52602_IG13:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M52602_IG15:        ; bbWeight=8, gcVars=00000800 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars +{V00 V11}
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
+       jmp      G_M52602_IG04
+                       ;; size=8 bbWeight=8 PerfScore 24.00
+G_M52602_IG16:        ; bbWeight=0.32, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[ecx]
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
+       jmp      SHORT G_M52602_IG11
+                       ;; size=5 bbWeight=0.32 PerfScore 0.96
+G_M52602_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[ecx]
+       ; GC ptr vars -{V00 V11}
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 218, prolog size 9, PerfScore 1408.66, instruction count 82, allocated bytes for code 218 (MethodHash=2f153285) for method Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (FullOpts)
+; Total bytes of code 239, prolog size 9, PerfScore 1498.98, instruction count 90, allocated bytes for code 239 (MethodHash=2f153285) for method Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (FullOpts)
 ; ============================================================
 
  
  
benchmarks.run_pgo.windows.x86.checked.mch
-15 (-8.52%) : 10595.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(uint,System.Object):System.Object (Tier1)
@@ -13,7 +13,7 @@
 ;  V01 arg1         [V01,T02] (  7,  4.89)     ref  ->  edx         class-hnd <System.Object>
 ;  V02 loc0         [V02,T07] (  4,  3.56)     int  ->  [ebp-0x14]  spill-single-def
 ;* V03 loc1         [V03    ] (  0,  0   )     int  ->  zero-ref   
-;  V04 tmp0         [V04,T10] (  4,  0.89)     int  ->  ecx         "Inline return value spill temp"
+;  V04 tmp0         [V04,T10] (  4,  0.89)     int  ->  eax         "Inline return value spill temp"
 ;* V05 tmp1         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <int[]>
 ;  V06 tmp2         [V06,T06] (  4,  4   )   byref  ->  [ebp-0x18]  spill-single-def "Inline stloc first use temp"
 ;  V07 tmp3         [V07,T05] (  4,  5.56)     int  ->  ebx         "Inline stloc first use temp"
@@ -21,7 +21,7 @@
 ;  V09 tmp5         [V09,T03] (  5,  6.44)   byref  ->  esi         "Inline stloc first use temp"
 ;  V10 tmp6         [V10,T01] (  5,  7.33)     int  ->  edi         "Inline stloc first use temp"
 ;  V11 tmp7         [V11,T08] (  2,  3.56)     int  ->  eax         "Inline stloc first use temp"
-;  V12 tmp8         [V12,T09] (  3,  2   )     int  ->  registers   "Inline stloc first use temp"
+;  V12 tmp8         [V12,T09] (  3,  2   )     int  ->  eax         "Inline stloc first use temp"
 ;* V13 tmp9         [V13    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V14 tmp10        [V14    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V15 tmp11        [V15,T11] (  2,  0.44)     ref  ->  edi         single-def "Field obj"
@@ -94,12 +94,12 @@ G_M9847_IG08:        ; bbWeight=0.89, gcrefRegs=00000004 {edx}, byrefRegs=000000
        mov      eax, dword ptr [ebp-0x10]
        xor      eax, dword ptr [esi+0x08]
        cmp      eax, 1
-       jbe      SHORT G_M9847_IG12
+       jbe      SHORT G_M9847_IG11
                      ;; size=11 bbWeight=0.89 PerfScore 4.67
 G_M9847_IG09:        ; bbWeight=1.78, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[esi]
        test     edi, edi
-       je       SHORT G_M9847_IG11
+       je       SHORT G_M9847_IG12
        inc      ecx
        add      ebx, ecx
        mov      edi, bword ptr [ebp-0x18]
@@ -111,43 +111,36 @@ G_M9847_IG09:        ; bbWeight=1.78, gcrefRegs=00000004 {edx}, byrefRegs=000000
 G_M9847_IG10:        ; bbWeight=0.22, gcVars=00000000 {}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; byrRegs -[edi]
        ; GC ptr vars -{V06}
-       mov      eax, dword ptr [ebp-0x10]
-       jmp      SHORT G_M9847_IG13
-                       ;; size=5 bbWeight=0.22 PerfScore 0.67
-G_M9847_IG11:        ; bbWeight=0.89, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, dword ptr [ebp-0x10]
-       jmp      SHORT G_M9847_IG13
-                       ;; size=5 bbWeight=0.89 PerfScore 2.67
-G_M9847_IG12:        ; bbWeight=0.22, gcrefRegs=00000004 {edx}, byrefRegs=00000040 {esi}, byref, isz
+       jmp      SHORT G_M9847_IG12
+                       ;; size=2 bbWeight=0.22 PerfScore 0.44
+G_M9847_IG11:        ; bbWeight=0.22, gcrefRegs=00000004 {edx}, byrefRegs=00000040 {esi}, byref, isz
        ; byrRegs +[esi]
-       mov      ecx, eax
-       mov      eax, dword ptr [ebp-0x10]
        cmp      edi, dword ptr [esi]
-       jne      SHORT G_M9847_IG13
-       jmp      SHORT G_M9847_IG14
-                       ;; size=11 bbWeight=0.22 PerfScore 1.61
-G_M9847_IG13:        ; bbWeight=0.22, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
+       jne      SHORT G_M9847_IG12
+       jmp      SHORT G_M9847_IG13
+                       ;; size=6 bbWeight=0.22 PerfScore 1.33
+G_M9847_IG12:        ; bbWeight=0.22, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
        ; byrRegs -[esi]
-       mov      ecx, 2
+       mov      eax, 2
                         ;; size=5 bbWeight=0.22 PerfScore 0.06
-G_M9847_IG14:        ; bbWeight=0.22, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref, isz
-       cmp      ecx, 1
+G_M9847_IG13:        ; bbWeight=0.22, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref, isz
+       cmp      eax, 1
        je       SHORT G_M9847_IG04
-       test     ecx, ecx
-       jne      SHORT G_M9847_IG16
+       test     eax, eax
+       jne      SHORT G_M9847_IG15
                      ;; size=9 bbWeight=0.22 PerfScore 0.56
-G_M9847_IG15:        ; bbWeight=0.11, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M9847_IG14:        ; bbWeight=0.11, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edx]
        xor      edx, edx
        ; gcrRegs +[edx]
-       jmp      G_M9847_IG04
-                       ;; size=7 bbWeight=0.11 PerfScore 0.25
-G_M9847_IG16:        ; bbWeight=0.11, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
-       mov      ecx, eax
+       jmp      SHORT G_M9847_IG04
+                       ;; size=4 bbWeight=0.11 PerfScore 0.25
+G_M9847_IG15:        ; bbWeight=0.11, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
+       mov      ecx, dword ptr [ebp-0x10]
        call     <unknown method>
        ; gcrRegs -[edx] +[eax]
-                       ;; size=7 bbWeight=0.11 PerfScore 0.14
-G_M9847_IG17:        ; bbWeight=0.11, epilog, nogc, extend
+                       ;; size=8 bbWeight=0.11 PerfScore 0.22
+G_M9847_IG16:        ; bbWeight=0.11, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -156,6 +149,6 @@ G_M9847_IG17:        ; bbWeight=0.11, epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=0.11 PerfScore 0.39
 
-; Total bytes of code 176, prolog size 11, PerfScore 54.19, instruction count 75, allocated bytes for code 176 (MethodHash=fd20d988) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(uint,System.Object):System.Object (Tier1)
+; Total bytes of code 161, prolog size 11, PerfScore 51.11, instruction count 70, allocated bytes for code 161 (MethodHash=fd20d988) for method System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(uint,System.Object):System.Object (Tier1)
 ; ============================================================
 
  
-15 (-6.55%) : 113153.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
@@ -14,7 +14,7 @@
 ;* V02 loc0         [V02    ] (  0,  0   )     int  ->  zero-ref   
 ;  V03 loc1         [V03,T12] (  2,  0.25)     ref  ->  esi         class-hnd single-def <System.Object>
 ;  V04 loc2         [V04,T07] (  4,  4.25)     int  ->  [ebp-0x14]  spill-single-def
-;  V05 tmp0         [V05,T10] (  4,  0.88)     int  ->  registers   "Inline return value spill temp"
+;  V05 tmp0         [V05,T10] (  4,  0.88)     int  ->  ebx         "Inline return value spill temp"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <int[]>
 ;  V07 tmp2         [V07,T06] (  4,  4.50)   byref  ->  [ebp-0x1C]  spill-single-def "Inline stloc first use temp"
 ;  V08 tmp3         [V08,T05] (  4,  6.25)     int  ->  ebx         "Inline stloc first use temp"
@@ -95,99 +95,85 @@ G_M33320_IG06:        ; bbWeight=2, gcVars=00000048 {V01 V07}, gcrefRegs=0000000
        and      eax, -2
        mov      edx, dword ptr [ebp-0x14]
        cmp      edi, edx
-       jne      SHORT G_M33320_IG12
+       jne      SHORT G_M33320_IG11
                      ;; size=24 bbWeight=2 PerfScore 16.00
 G_M33320_IG07:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
        mov      edi, dword ptr [ebp-0x10]
        mov      edx, edi
        xor      edx, dword ptr [esi+0x08]
        cmp      edx, 1
-       jbe      SHORT G_M33320_IG13
+       jbe      SHORT G_M33320_IG12
                        ;; size=13 bbWeight=1 PerfScore 5.50
 G_M33320_IG08:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[esi]
        test     eax, eax
-       je       SHORT G_M33320_IG11
+       je       SHORT G_M33320_IG13
        inc      ecx
        add      ebx, ecx
        mov      eax, bword ptr [ebp-0x1C]
        ; byrRegs +[eax]
        and      ebx, dword ptr [eax+0x04]
        cmp      ecx, 8
+       mov      dword ptr [ebp-0x10], edi
        jl       SHORT G_M33320_IG10
-                     ;; size=18 bbWeight=2 PerfScore 14.00
+                     ;; size=21 bbWeight=2 PerfScore 16.00
 G_M33320_IG09:        ; bbWeight=0.25, gcVars=00000008 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; byrRegs -[eax]
        ; GC ptr vars -{V07}
-       mov      eax, edi
        mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
-       mov      edi, eax
-       jmp      SHORT G_M33320_IG15
-                       ;; size=9 bbWeight=0.25 PerfScore 0.88
+       mov      gword ptr [ebp-0x18], edx
+       mov      edi, dword ptr [ebp-0x10]
+       jmp      SHORT G_M33320_IG13
+                       ;; size=11 bbWeight=0.25 PerfScore 1.25
 G_M33320_IG10:        ; bbWeight=1, gcVars=00000048 {V01 V07}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref, isz
        ; gcrRegs -[edx]
        ; byrRegs +[eax]
        ; GC ptr vars +{V07}
-       mov      dword ptr [ebp-0x10], edi
        mov      edi, eax
        ; byrRegs +[edi]
        jmp      SHORT G_M33320_IG06
-                      ;; size=7 bbWeight=1 PerfScore 3.25
-G_M33320_IG11:        ; bbWeight=1, gcVars=00000008 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+                      ;; size=4 bbWeight=1 PerfScore 2.25
+G_M33320_IG11:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[eax edi]
-       ; GC ptr vars -{V07}
-       mov      edx, gword ptr [ebp-0x18]
-       ; gcrRegs +[edx]
-       jmp      SHORT G_M33320_IG15
-                       ;; size=5 bbWeight=1 PerfScore 3.00
-G_M33320_IG12:        ; bbWeight=1, gcVars=00000048 {V01 V07}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[edx]
-       ; GC ptr vars +{V07}
        mov      edi, dword ptr [ebp-0x10]
        jmp      SHORT G_M33320_IG08
                        ;; size=5 bbWeight=1 PerfScore 3.00
-G_M33320_IG13:        ; bbWeight=0.25, gcVars=00000008 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, gcvars, byref, isz
+G_M33320_IG12:        ; bbWeight=0.25, gcVars=00000008 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, gcvars, byref, isz
        ; byrRegs +[esi]
        ; GC ptr vars -{V07}
-       mov      dword ptr [ebp-0x10], edi
-       mov      edi, edx
+       mov      ebx, edx
+       cmp      eax, dword ptr [esi]
+       jne      SHORT G_M33320_IG13
+       jmp      SHORT G_M33320_IG14
+                       ;; size=8 bbWeight=0.25 PerfScore 1.56
+G_M33320_IG13:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; byrRegs -[esi]
+       mov      ebx, 2
+                       ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M33320_IG14:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       cmp      ebx, 1
        mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
-       cmp      eax, dword ptr [esi]
-       jne      SHORT G_M33320_IG14
-       jmp      SHORT G_M33320_IG16
-                       ;; size=14 bbWeight=0.25 PerfScore 2.06
-G_M33320_IG14:        ; bbWeight=0.12, gcVars=00000000 {}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref
-       ; byrRegs -[esi]
-       ; GC ptr vars -{V01}
-       mov      edi, dword ptr [ebp-0x10]
-                       ;; size=3 bbWeight=0.12 PerfScore 0.12
-G_M33320_IG15:        ; bbWeight=0.25, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
-       mov      esi, 2
-       mov      dword ptr [ebp-0x10], edi
-       mov      edi, esi
-                       ;; size=10 bbWeight=0.25 PerfScore 0.38
-G_M33320_IG16:        ; bbWeight=0.25, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
-       cmp      edi, 1
        je       G_M33320_IG03
-                      ;; size=9 bbWeight=0.25 PerfScore 0.31
-G_M33320_IG17:        ; bbWeight=0.12, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
-       mov      eax, dword ptr [ebp-0x10]
+                        ;; size=12 bbWeight=0.25 PerfScore 0.56
+G_M33320_IG15:        ; bbWeight=0.12, gcVars=00000000 {}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars -{V01}
+       mov      eax, edi
        mov      ecx, eax
        call     <unknown method>
        ; gcrRegs -[edx] +[eax]
        mov      esi, eax
        ; gcrRegs +[esi]
        xor      ecx, ecx
-       test     edi, edi
+       test     ebx, ebx
        setne    cl
        call     [System.Diagnostics.Debug:Assert(ubyte)]
        ; gcrRegs -[eax]
        mov      eax, esi
        ; gcrRegs +[eax]
-                      ;; size=27 bbWeight=0.12 PerfScore 0.91
-G_M33320_IG18:        ; bbWeight=0.12, epilog, nogc, extend
+                      ;; size=26 bbWeight=0.12 PerfScore 0.81
+G_M33320_IG16:        ; bbWeight=0.12, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -196,6 +182,6 @@ G_M33320_IG18:        ; bbWeight=0.12, epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=0.12 PerfScore 0.44
 
-; Total bytes of code 229, prolog size 11, PerfScore 68.50, instruction count 94, allocated bytes for code 229 (MethodHash=45b17dd7) for method System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
+; Total bytes of code 214, prolog size 11, PerfScore 66.09, instruction count 88, allocated bytes for code 214 (MethodHash=45b17dd7) for method System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
 ; ============================================================
 
  
-12 (-6.45%) : 112253.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
@@ -12,9 +12,9 @@
 ;  V00 arg0         [V00,T03] (  6,  3.14)     int  ->  [ebp-0x10]  single-def
 ;  V01 arg1         [V01,T00] (  6,  4.30)     ref  ->  edx         class-hnd single-def <System.Object>
 ;* V02 loc0         [V02    ] (  0,  0   )     int  ->  zero-ref   
-;  V03 loc1         [V03,T12] (  2,  0.05)     ref  ->  esi         class-hnd single-def <System.Object>
+;  V03 loc1         [V03,T12] (  2,  0.05)     ref  ->  edi         class-hnd single-def <System.Object>
 ;  V04 loc2         [V04,T08] (  4,  2.07)     int  ->  [ebp-0x14]  spill-single-def
-;  V05 tmp0         [V05,T10] (  4,  0.51)     int  ->  ebx         "Inline return value spill temp"
+;  V05 tmp0         [V05,T10] (  4,  0.51)     int  ->  esi         "Inline return value spill temp"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <int[]>
 ;  V07 tmp2         [V07,T06] (  4,  2.93)   byref  ->  [ebp-0x18]  spill-single-def "Inline stloc first use temp"
 ;  V08 tmp3         [V08,T05] (  4,  4.07)     int  ->  ebx         "Inline stloc first use temp"
@@ -22,7 +22,7 @@
 ;  V10 tmp5         [V10,T04] (  5,  4.72)   byref  ->  esi         "Inline stloc first use temp"
 ;  V11 tmp6         [V11,T02] (  5,  5.37)     int  ->  edi         "Inline stloc first use temp"
 ;  V12 tmp7         [V12,T07] (  2,  2.60)     int  ->  eax         "Inline stloc first use temp"
-;  V13 tmp8         [V13,T09] (  3,  1.47)     int  ->  registers   "Inline stloc first use temp"
+;  V13 tmp8         [V13,T09] (  3,  1.47)     int  ->  eax         "Inline stloc first use temp"
 ;* V14 tmp9         [V14    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V15 tmp10        [V15    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V16 tmp11        [V16,T11] (  2,  0.33)     ref  ->  edi         single-def "Field obj"
@@ -95,12 +95,12 @@ G_M33320_IG08:        ; bbWeight=0.65, gcrefRegs=00000004 {edx}, byrefRegs=00000
        mov      eax, dword ptr [ebp-0x10]
        xor      eax, dword ptr [esi+0x08]
        cmp      eax, 1
-       jbe      SHORT G_M33320_IG12
+       jbe      SHORT G_M33320_IG11
                        ;; size=11 bbWeight=0.65 PerfScore 3.42
 G_M33320_IG09:        ; bbWeight=1.30, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[esi]
        test     edi, edi
-       je       SHORT G_M33320_IG11
+       je       SHORT G_M33320_IG12
        inc      ecx
        add      ebx, ecx
        mov      edi, bword ptr [ebp-0x18]
@@ -112,44 +112,39 @@ G_M33320_IG09:        ; bbWeight=1.30, gcrefRegs=00000004 {edx}, byrefRegs=00000
 G_M33320_IG10:        ; bbWeight=0.16, gcVars=00000000 {}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; byrRegs -[edi]
        ; GC ptr vars -{V07}
-       mov      eax, dword ptr [ebp-0x10]
-       jmp      SHORT G_M33320_IG13
-                       ;; size=5 bbWeight=0.16 PerfScore 0.49
-G_M33320_IG11:        ; bbWeight=0.65, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, dword ptr [ebp-0x10]
-       jmp      SHORT G_M33320_IG13
-                       ;; size=5 bbWeight=0.65 PerfScore 1.95
-G_M33320_IG12:        ; bbWeight=0.16, gcrefRegs=00000004 {edx}, byrefRegs=00000040 {esi}, byref, isz
+       jmp      SHORT G_M33320_IG12
+                       ;; size=2 bbWeight=0.16 PerfScore 0.33
+G_M33320_IG11:        ; bbWeight=0.16, gcrefRegs=00000004 {edx}, byrefRegs=00000040 {esi}, byref, isz
        ; byrRegs +[esi]
-       mov      ebx, eax
-       mov      eax, dword ptr [ebp-0x10]
        cmp      edi, dword ptr [esi]
-       jne      SHORT G_M33320_IG13
-       jmp      SHORT G_M33320_IG14
-                       ;; size=11 bbWeight=0.16 PerfScore 1.18
-G_M33320_IG13:        ; bbWeight=0.16, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
+       jne      SHORT G_M33320_IG12
+       mov      esi, eax
        ; byrRegs -[esi]
-       mov      ebx, 2
+       jmp      SHORT G_M33320_IG13
+                       ;; size=8 bbWeight=0.16 PerfScore 1.02
+G_M33320_IG12:        ; bbWeight=0.16, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
+       mov      esi, 2
                      ;; size=5 bbWeight=0.16 PerfScore 0.04
-G_M33320_IG14:        ; bbWeight=0.16, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
-       cmp      ebx, 1
-       je       G_M33320_IG03
-                       ;; size=9 bbWeight=0.16 PerfScore 0.20
-G_M33320_IG15:        ; bbWeight=0.02, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
+G_M33320_IG13:        ; bbWeight=0.16, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref, isz
+       cmp      esi, 1
+       je       SHORT G_M33320_IG03
+                       ;; size=5 bbWeight=0.16 PerfScore 0.20
+G_M33320_IG14:        ; bbWeight=0.02, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
+       mov      eax, dword ptr [ebp-0x10]
        mov      ecx, eax
        call     <unknown method>
        ; gcrRegs -[edx] +[eax]
-       mov      esi, eax
-       ; gcrRegs +[esi]
+       mov      edi, eax
+       ; gcrRegs +[edi]
        xor      ecx, ecx
-       test     ebx, ebx
+       test     esi, esi
        setne    cl
        call     [System.Diagnostics.Debug:Assert(ubyte)]
        ; gcrRegs -[eax]
-       mov      eax, esi
+       mov      eax, edi
        ; gcrRegs +[eax]
-                       ;; size=24 bbWeight=0.02 PerfScore 0.15
-G_M33320_IG16:        ; bbWeight=0.02, epilog, nogc, extend
+                      ;; size=27 bbWeight=0.02 PerfScore 0.17
+G_M33320_IG15:        ; bbWeight=0.02, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -158,6 +153,6 @@ G_M33320_IG16:        ; bbWeight=0.02, epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=0.02 PerfScore 0.08
 
-; Total bytes of code 186, prolog size 11, PerfScore 40.84, instruction count 77, allocated bytes for code 186 (MethodHash=45b17dd7) for method System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
+; Total bytes of code 174, prolog size 11, PerfScore 38.59, instruction count 74, allocated bytes for code 174 (MethodHash=45b17dd7) for method System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
 ; ============================================================
 
  
+16 (+8.99%) : 7316.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
@@ -41,14 +41,14 @@ G_M33320_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
 G_M33320_IG02:        ; bbWeight=1, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edx]
        test     edx, edx
-       je       SHORT G_M33320_IG09
+       je       G_M33320_IG10
        mov      gword ptr [ebp-0x18], edx
        ; GC ptr vars +{V01}
        mov      esi, dword ptr [edx]
        mov      dword ptr [ebp-0x14], esi
        cmp      esi, eax
        mov      edx, gword ptr [ebp-0x18]
-       je       SHORT G_M33320_IG09
+       je       SHORT G_M33320_IG10
        mov      edi, gword ptr [D1FFAB1EH]      ; static handle
        ; gcrRegs +[edi]
        add      edi, 8
@@ -63,7 +63,7 @@ G_M33320_IG02:        ; bbWeight=1, gcrefRegs=00000004 {edx}, byrefRegs=00000000
        shr      ebx, cl
        xor      ecx, ecx
        mov      gword ptr [ebp-0x18], edx
-                        ;; size=53 bbWeight=1 PerfScore 19.00
+                     ;; size=57 bbWeight=1 PerfScore 19.00
 G_M33320_IG03:        ; bbWeight=8, gcVars=00000200 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, gcvars, byref, isz
        ; gcrRegs -[edx]
        lea      edx, [ebx+0x01]
@@ -80,41 +80,50 @@ G_M33320_IG04:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000084 {e
        mov      esi, dword ptr [ebp-0x10]
        xor      esi, dword ptr [edx+0x08]
        cmp      esi, 1
-       jbe      SHORT G_M33320_IG06
+       jbe      SHORT G_M33320_IG07
                        ;; size=11 bbWeight=4 PerfScore 21.00
 G_M33320_IG05:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
        ; byrRegs -[edx]
        test     eax, eax
-       je       SHORT G_M33320_IG07
+       je       SHORT G_M33320_IG08
        inc      ecx
        add      ebx, ecx
        and      ebx, dword ptr [edi+0x04]
        cmp      ecx, 8
-       jge      SHORT G_M33320_IG07
-       jmp      SHORT G_M33320_IG03
-                       ;; size=17 bbWeight=8 PerfScore 64.00
-G_M33320_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
-       ; byrRegs -[edi] +[edx]
-       cmp      eax, dword ptr [edx]
-       jne      SHORT G_M33320_IG07
+       jl       SHORT G_M33320_IG03
+                       ;; size=15 bbWeight=8 PerfScore 48.00
+G_M33320_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; byrRegs -[edi]
+       mov      eax, dword ptr [ebp-0x10]
+       mov      edx, gword ptr [ebp-0x18]
+       ; gcrRegs +[edx]
+       mov      dword ptr [ebp-0x10], eax
+       mov      gword ptr [ebp-0x18], edx
        jmp      SHORT G_M33320_IG08
+                     ;; size=14 bbWeight=1 PerfScore 6.00
+G_M33320_IG07:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
+       ; gcrRegs -[edx]
+       ; byrRegs +[edx]
+       cmp      eax, dword ptr [edx]
+       jne      SHORT G_M33320_IG08
+       jmp      SHORT G_M33320_IG09
                         ;; size=6 bbWeight=1 PerfScore 6.00
-G_M33320_IG07:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M33320_IG08:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; byrRegs -[edx]
        mov      esi, 2
                        ;; size=5 bbWeight=1 PerfScore 0.25
-G_M33320_IG08:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M33320_IG09:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        cmp      esi, 1
        mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
-       jne      SHORT G_M33320_IG11
+       jne      SHORT G_M33320_IG12
                       ;; size=8 bbWeight=1 PerfScore 2.25
-G_M33320_IG09:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref
+G_M33320_IG10:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars -{V01}
        mov      eax, edx
        ; gcrRegs +[eax]
                        ;; size=2 bbWeight=1 PerfScore 0.25
-G_M33320_IG10:        ; bbWeight=1, epilog, nogc, extend
+G_M33320_IG11:        ; bbWeight=1, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -122,7 +131,7 @@ G_M33320_IG10:        ; bbWeight=1, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
-G_M33320_IG11:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref
+G_M33320_IG12:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax]
        mov      eax, dword ptr [ebp-0x10]
        mov      ecx, eax
@@ -138,7 +147,7 @@ G_M33320_IG11:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000004 {edx}
        mov      eax, edi
        ; gcrRegs +[eax]
                        ;; size=27 bbWeight=0 PerfScore 0.00
-G_M33320_IG12:        ; bbWeight=0, epilog, nogc, extend
+G_M33320_IG13:        ; bbWeight=0, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -147,6 +156,6 @@ G_M33320_IG12:        ; bbWeight=0, epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 178, prolog size 11, PerfScore 191.00, instruction count 75, allocated bytes for code 178 (MethodHash=45b17dd7) for method System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
+; Total bytes of code 194, prolog size 11, PerfScore 181.00, instruction count 79, allocated bytes for code 194 (MethodHash=45b17dd7) for method System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
 ; ============================================================
 
  
+15 (+9.32%) : 9867.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,uint,System.Object) (Tier1)
@@ -28,7 +28,7 @@
 ;
 ; Lcl frame size = 12
 
-G_M35959_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
+G_M35959_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
        mov      ebp, esp
        push     edi
@@ -76,28 +76,38 @@ G_M35959_IG04:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000001 {e
        mov      esi, dword ptr [ebp-0x10]
        xor      esi, dword ptr [eax+0x08]
        cmp      esi, 1
-       jbe      SHORT G_M35959_IG06
+       jbe      SHORT G_M35959_IG08
                        ;; size=11 bbWeight=4 PerfScore 21.00
 G_M35959_IG05:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[eax]
        test     edx, edx
-       je       SHORT G_M35959_IG08
+       je       SHORT G_M35959_IG07
        inc      ecx
        add      ebx, ecx
        mov      esi, bword ptr [ebp-0x18]
        ; byrRegs +[esi]
        and      ebx, dword ptr [esi+0x04]
        cmp      ecx, 8
-       jge      SHORT G_M35959_IG08
-       jmp      SHORT G_M35959_IG03
-                       ;; size=20 bbWeight=8 PerfScore 72.00
-G_M35959_IG06:        ; bbWeight=1, gcVars=00000200 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref, isz
-       ; byrRegs -[esi] +[eax]
+       jl       SHORT G_M35959_IG03
+                       ;; size=18 bbWeight=8 PerfScore 56.00
+G_M35959_IG06:        ; bbWeight=1, gcVars=00000200 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; byrRegs -[esi]
        ; GC ptr vars -{V06}
+       mov      eax, bword ptr [ebp-0x14]
+       ; byrRegs +[eax]
+       jmp      SHORT G_M35959_IG12
+                       ;; size=5 bbWeight=1 PerfScore 3.00
+G_M35959_IG07:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; byrRegs -[eax]
+       mov      eax, bword ptr [ebp-0x14]
+       ; byrRegs +[eax]
+       jmp      SHORT G_M35959_IG12
+                       ;; size=5 bbWeight=4 PerfScore 12.00
+G_M35959_IG08:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref, isz
        cmp      edx, dword ptr [eax]
-       jne      SHORT G_M35959_IG08
+       jne      SHORT G_M35959_IG11
        cmp      esi, 1
-       jne      SHORT G_M35959_IG08
+       jne      SHORT G_M35959_IG10
        mov      ecx, bword ptr [ebp-0x14]
        ; byrRegs +[ecx]
        mov      edx, gword ptr [ebp+0x08]
@@ -107,7 +117,7 @@ G_M35959_IG06:        ; bbWeight=1, gcVars=00000200 {V00}, gcrefRegs=00000000 {}
        ; gcrRegs -[edx]
        ; byrRegs -[eax ecx]
                        ;; size=20 bbWeight=1 PerfScore 8.25
-G_M35959_IG07:        ; bbWeight=1, epilog, nogc, extend
+G_M35959_IG09:        ; bbWeight=1, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -115,19 +125,29 @@ G_M35959_IG07:        ; bbWeight=1, epilog, nogc, extend
        pop      ebp
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
-G_M35959_IG08:        ; bbWeight=0, gcVars=00000200 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M35959_IG10:        ; bbWeight=0.50, gcVars=00000200 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; GC ptr vars +{V00 V09}
+       mov      eax, bword ptr [ebp-0x14]
+       ; byrRegs +[eax]
+       jmp      SHORT G_M35959_IG12
+                       ;; size=5 bbWeight=0.50 PerfScore 1.50
+G_M35959_IG11:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; byrRegs -[eax]
+       mov      eax, bword ptr [ebp-0x14]
+       ; byrRegs +[eax]
+                       ;; size=3 bbWeight=0.50 PerfScore 0.50
+G_M35959_IG12:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref
+       ; GC ptr vars -{V00 V09}
        push     gword ptr [ebp+0x08]
        ; gcr arg push 0
-       mov      ecx, bword ptr [ebp-0x14]
+       mov      ecx, eax
        ; byrRegs +[ecx]
        mov      edx, dword ptr [ebp-0x10]
-       ; GC ptr vars -{V00 V09}
        call     [System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper_NoCacheLookup(byref,uint,System.Object)]
-       ; byrRegs -[ecx]
+       ; byrRegs -[eax ecx]
        ; gcr arg pop 1
-                     ;; size=15 bbWeight=0 PerfScore 0.00
-G_M35959_IG09:        ; bbWeight=0, epilog, nogc, extend
+                     ;; size=14 bbWeight=0 PerfScore 0.00
+G_M35959_IG13:        ; bbWeight=0, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -136,6 +156,6 @@ G_M35959_IG09:        ; bbWeight=0, epilog, nogc, extend
        ret      4
                        ;; size=10 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 161, prolog size 15, PerfScore 182.75, instruction count 65, allocated bytes for code 161 (MethodHash=fc727388) for method System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,uint,System.Object) (Tier1)
+; Total bytes of code 176, prolog size 15, PerfScore 183.75, instruction count 71, allocated bytes for code 176 (MethodHash=fc727388) for method System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,uint,System.Object) (Tier1)
 ; ============================================================
 
  
+21 (+9.63%) : 104908.dasm - Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (Tier0-FullOpts)
@@ -42,15 +42,15 @@ G_M52602_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000004
        mov      edx, 1
        ; byrRegs -[edx]
        test     eax, eax
-       jle      G_M52602_IG12
+       jle      G_M52602_IG14
                      ;; size=18 bbWeight=1 PerfScore 4.50
-G_M52602_IG03:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+G_M52602_IG03:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        lea      esi, [edx+0x01]
        mov      dword ptr [ebp-0x18], esi
        mov      edi, esi
        cmp      edi, eax
-       jg       G_M52602_IG11
-                       ;; size=16 bbWeight=4 PerfScore 12.00
+       jg       SHORT G_M52602_IG10
+                       ;; size=12 bbWeight=4 PerfScore 12.00
 G_M52602_IG04:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        mov      ebx, 1
        test     ecx, ecx
@@ -60,7 +60,7 @@ G_M52602_IG05:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        test     eax, eax
        jl       SHORT G_M52602_IG08
        cmp      dword ptr [ecx+0x04], eax
-       jle      SHORT G_M52602_IG09
+       jle      SHORT G_M52602_IG11
                         ;; size=9 bbWeight=8 PerfScore 42.00
 G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        mov      gword ptr [ebp-0x20], ecx
@@ -70,14 +70,14 @@ G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=0000
        mov      ecx, esi
        mov      eax, dword ptr [ecx+0x04]
        cmp      edx, eax
-       jae      G_M52602_IG13
+       jae      G_M52602_IG17
        mov      ecx, dword ptr [ecx+4*edx+0x08]
        ; gcrRegs -[ecx]
        mov      dword ptr [ebp-0x14], ecx
        mov      ecx, esi
        ; gcrRegs +[ecx]
        cmp      edi, eax
-       jae      SHORT G_M52602_IG13
+       jae      G_M52602_IG17
        mov      eax, dword ptr [ecx+4*edi+0x08]
        mov      ecx, dword ptr [ebp-0x14]
        ; gcrRegs -[ecx]
@@ -88,17 +88,31 @@ G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=0000
        mov      ecx, gword ptr [ebp-0x20]
        ; gcrRegs +[ecx]
        jle      SHORT G_M52602_IG06
-                      ;; size=55 bbWeight=63.36 PerfScore 1235.52
-G_M52602_IG07:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=59 bbWeight=63.36 PerfScore 1235.52
+G_M52602_IG07:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        ; GC ptr vars -{V00}
-       jmp      SHORT G_M52602_IG10
-                       ;; size=2 bbWeight=8 PerfScore 16.00
+       mov      gword ptr [ebp-0x20], ecx
+       ; GC ptr vars +{V00}
+       mov      eax, dword ptr [ebp-0x10]
+       jmp      SHORT G_M52602_IG12
+                       ;; size=8 bbWeight=16 PerfScore 64.00
 G_M52602_IG08:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-                      ;; size=0 bbWeight=4 PerfScore 0.00
-G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; GC ptr vars -{V00}
+       jmp      SHORT G_M52602_IG11
+                       ;; size=2 bbWeight=4 PerfScore 8.00
+G_M52602_IG09:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M52602_IG11
+                       ;; size=2 bbWeight=8 PerfScore 16.00
+G_M52602_IG10:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       mov      gword ptr [ebp-0x20], ecx
+       ; GC ptr vars +{V00}
+       jmp      SHORT G_M52602_IG13
+                       ;; size=5 bbWeight=2 PerfScore 6.00
+G_M52602_IG11:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; GC ptr vars -{V00}
        cmp      ebx, dword ptr [ecx+0x04]
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      gword ptr [ebp-0x20], ecx
        ; GC ptr vars +{V00}
        mov      esi, gword ptr [ecx+4*ebx+0x08]
@@ -109,13 +123,13 @@ G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000
        ; gcrRegs -[ecx]
        mov      dword ptr [ebp-0x1C], ecx
        cmp      edx, ecx
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      esi, dword ptr [esi+4*edx+0x08]
        ; gcrRegs -[esi]
        mov      ecx, gword ptr [ebp-0x24]
        ; gcrRegs +[ecx]
        cmp      edi, dword ptr [ebp-0x1C]
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      ecx, dword ptr [ecx+4*edi+0x08]
        ; gcrRegs -[ecx]
        mov      eax, gword ptr [ebp-0x24]
@@ -126,25 +140,25 @@ G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000
        mov      eax, dword ptr [ebp-0x10]
        ; gcrRegs -[eax]
        cmp      ebx, eax
-       mov      ecx, gword ptr [ebp-0x20]
-       ; gcrRegs +[ecx]
-       jle      SHORT G_M52602_IG09
-                       ;; size=61 bbWeight=0.64 PerfScore 16.64
-G_M52602_IG10:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
-       ; GC ptr vars -{V00 V11}
+       jle      SHORT G_M52602_IG16
+                       ;; size=58 bbWeight=0.64 PerfScore 16.00
+G_M52602_IG12:        ; bbWeight=16, gcVars=00000800 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V11}
        inc      edi
-       mov      eax, dword ptr [ebp-0x10]
        cmp      edi, eax
-       jle      G_M52602_IG04
-                       ;; size=12 bbWeight=16 PerfScore 40.00
-G_M52602_IG11:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+       jle      SHORT G_M52602_IG15
+                       ;; size=5 bbWeight=16 PerfScore 24.00
+G_M52602_IG13:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      esi, dword ptr [ebp-0x18]
        mov      edx, esi
        cmp      edx, eax
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
        jle      G_M52602_IG03
-                     ;; size=13 bbWeight=4 PerfScore 10.00
-G_M52602_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+                        ;; size=16 bbWeight=4 PerfScore 14.00
+G_M52602_IG14:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
        ; gcrRegs -[ecx]
+       ; GC ptr vars -{V00}
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -152,11 +166,25 @@ G_M52602_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        pop      ebp
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
-G_M52602_IG13:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M52602_IG15:        ; bbWeight=8, gcVars=00000800 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars +{V00 V11}
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
+       jmp      G_M52602_IG04
+                       ;; size=8 bbWeight=8 PerfScore 24.00
+G_M52602_IG16:        ; bbWeight=0.32, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[ecx]
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
+       jmp      SHORT G_M52602_IG11
+                       ;; size=5 bbWeight=0.32 PerfScore 0.96
+G_M52602_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[ecx]
+       ; GC ptr vars -{V00 V11}
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 218, prolog size 9, PerfScore 1408.66, instruction count 82, allocated bytes for code 218 (MethodHash=2f153285) for method Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (Tier0-FullOpts)
+; Total bytes of code 239, prolog size 9, PerfScore 1498.98, instruction count 90, allocated bytes for code 239 (MethodHash=2f153285) for method Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (Tier0-FullOpts)
 ; ============================================================
 
  
  
benchmarks.run_tiered.windows.x86.checked.mch
-19 (-4.19%) : 8387.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int
@@ -8,22 +8,22 @@
 ; 0 inlinees with PGO data; 7 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T06] (  4,  7   )     ref  ->  [ebp-0x28]  class-hnd single-def <System.String[]>
+;  V00 arg0         [V00,T06] (  4,  7   )     ref  ->  [ebp-0x24]  class-hnd single-def <System.String[]>
 ;* V01 arg1         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.String]>
 ;  V02 arg2         [V02,T09] (  2,  5   )     int  ->  [ebp+0x0C]  single-def
 ;  V03 arg3         [V03,T19] (  1,  1   )     int  ->  [ebp+0x08]  single-def
 ;  V04 loc0         [V04,T11] (  4,  3   )     int  ->  [ebp-0x10]  spill-single-def
 ;  V05 loc1         [V05,T10] (  8,  4   )     int  ->  [ebp-0x14]  spill-single-def
-;  V06 loc2         [V06,T03] ( 13, 24.16)     ref  ->  [ebp-0x2C]  class-hnd spill-single-def <int[]>
+;  V06 loc2         [V06,T03] ( 13, 24.16)     ref  ->  [ebp-0x28]  class-hnd spill-single-def <int[]>
 ;  V07 loc3         [V07,T08] (  4,  5   )     int  ->  [ebp-0x18] 
 ;  V08 loc4         [V08,T16] (  3,  1.50)     ref  ->  esi         class-hnd single-def <int[]>
 ;* V09 loc5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Span`1[int]>
 ;  V10 loc6         [V10,T05] (  6, 18.50)     int  ->  edx        
 ;* V11 loc7         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V12 loc8         [V12,T04] (  6, 20   )     int  ->  [ebp-0x1C]  spill-single-def
+;  V12 loc8         [V12,T04] (  6, 20   )     int  ->  ebx        
 ;  V13 loc9         [V13,T02] (  7, 32   )     int  ->  eax        
 ;  V14 loc10        [V14,T00] ( 12, 74.16)     int  ->  edi        
-;  V15 loc11        [V15,T01] (  5, 34   )   byref  ->  registers  
+;  V15 loc11        [V15,T01] (  5, 34   )   byref  ->  esi        
 ;* V16 tmp0         [V16    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
 ;* V17 tmp1         [V17    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V18 tmp2         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <int[]>
@@ -32,15 +32,15 @@
 ;  V21 tmp5         [V21,T12] (  2,  2   )     ref  ->  eax         single-def "Single return block return value"
 ;* V22 tmp6         [V22    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp7         [V23    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x4)" P-INDEP
-;  V24 tmp8         [V24,T17] (  3,  1.50)   byref  ->  [ebp-0x30]  "field V16._reference (fldOffset=0x0)" P-INDEP
-;  V25 tmp9         [V25,T18] (  3,  1.50)     int  ->  [ebp-0x20]  "field V16._length (fldOffset=0x4)" P-INDEP
+;  V24 tmp8         [V24,T17] (  3,  1.50)   byref  ->  [ebp-0x2C]  "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V25 tmp9         [V25,T18] (  3,  1.50)     int  ->  [ebp-0x1C]  "field V16._length (fldOffset=0x4)" P-INDEP
 ;  V26 tmp10        [V26,T13] (  2,  2   )     ref  ->  ecx         single-def "argument with side effect"
 ;  V27 tmp11        [V27,T14] (  2,  2   )     ref  ->  ecx         single-def "argument with side effect"
 ;  V28 tmp12        [V28,T15] (  2,  2   )     ref  ->  ecx         single-def "argument with side effect"
 ;* V29 cse0         [V29,T20] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
-;  V30 cse1         [V30,T07] (  4,  6.50)     int  ->  [ebp-0x24]  spill-single-def "CSE - moderate"
+;  V30 cse1         [V30,T07] (  4,  6.50)     int  ->  [ebp-0x20]  spill-single-def "CSE - moderate"
 ;
-; Lcl frame size = 36
+; Lcl frame size = 32
 
 G_M57321_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -48,7 +48,7 @@ G_M57321_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 36
+       sub      esp, 32
        vzeroupper 
        mov      esi, ecx
        ; gcrRegs +[esi]
@@ -60,18 +60,18 @@ G_M57321_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        inc      ebx
        mov      dword ptr [ebp-0x10], ebx
        mov      ecx, dword ptr [esi+0x04]
-       mov      dword ptr [ebp-0x24], ecx
+       mov      dword ptr [ebp-0x20], ecx
        mov      eax, ecx
        cdq      
        idiv     edx:eax, ebx
        cmp      eax, 5
-       jg       G_M57321_IG20
+       jg       G_M57321_IG16
                        ;; size=29 bbWeight=1 PerfScore 32.50
 G_M57321_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        lea      eax, [ebx+4*ebx]
        mov      dword ptr [ebp-0x14], eax
        cmp      eax, 0xD1FFAB1E
-       jg       G_M57321_IG20
+       jg       G_M57321_IG16
        mov      ecx, 0xD1FFAB1E
        mov      edx, 48
        call     CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
@@ -81,20 +81,20 @@ G_M57321_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x2C], eax
+       mov      gword ptr [ebp-0x28], eax
        ; GC ptr vars +{V06}
        test     eax, eax
        jne      SHORT G_M57321_IG04
        mov      edx, dword ptr [ebp-0x14]
        test     edx, edx
-       jne      G_M57321_IG26
+       jne      G_M57321_IG21
        xor      ecx, ecx
        ; byrRegs +[ecx]
-       mov      bword ptr [ebp-0x30], ecx
+       mov      bword ptr [ebp-0x2C], ecx
        ; GC ptr vars +{V24}
        xor      ecx, ecx
        ; byrRegs -[ecx]
-       mov      dword ptr [ebp-0x20], ecx
+       mov      dword ptr [ebp-0x1C], ecx
        jmp      SHORT G_M57321_IG05
                        ;; size=79 bbWeight=0.50 PerfScore 11.12
 G_M57321_IG04:        ; bbWeight=0.50, gcVars=00000008 {V06}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref
@@ -102,31 +102,31 @@ G_M57321_IG04:        ; bbWeight=0.50, gcVars=00000008 {V06}, gcrefRegs=00000041
        mov      ecx, dword ptr [eax+0x04]
        mov      edx, dword ptr [ebp-0x14]
        cmp      dword ptr [eax+0x04], edx
-       jb       G_M57321_IG26
+       jb       G_M57321_IG21
        lea      ecx, bword ptr [eax+0x08]
        ; byrRegs +[ecx]
-       mov      bword ptr [ebp-0x30], ecx
+       mov      bword ptr [ebp-0x2C], ecx
        ; GC ptr vars +{V24}
-       mov      dword ptr [ebp-0x20], edx
+       mov      dword ptr [ebp-0x1C], edx
                      ;; size=24 bbWeight=0.50 PerfScore 4.75
-G_M57321_IG05:        ; bbWeight=0.50, gcVars=00020008 {V06 V24}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M57321_IG05:        ; bbWeight=0.50, gcVars=00020008 {V06 V24}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
        ; byrRegs -[ecx]
        push     -1
-       mov      ecx, bword ptr [ebp-0x30]
+       mov      ecx, bword ptr [ebp-0x2C]
        ; byrRegs +[ecx]
-       mov      edx, dword ptr [ebp-0x20]
+       mov      edx, dword ptr [ebp-0x1C]
        ; GC ptr vars -{V24}
        call     [<unknown method>]
        ; byrRegs -[ecx]
        xor      ecx, ecx
        mov      dword ptr [ebp-0x18], ecx
        xor      edx, edx
-       cmp      dword ptr [ebp-0x24], 0
-       jle      G_M57321_IG18
-                       ;; size=31 bbWeight=0.50 PerfScore 5.25
+       cmp      dword ptr [ebp-0x20], 0
+       jle      SHORT G_M57321_IG14
+                       ;; size=27 bbWeight=0.50 PerfScore 5.25
 G_M57321_IG06:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      gword ptr [ebp-0x28], esi
+       mov      gword ptr [ebp-0x24], esi
        ; GC ptr vars +{V00}
        mov      ebx, gword ptr [esi+4*edx+0x08]
        ; gcrRegs +[ebx]
@@ -135,21 +135,20 @@ G_M57321_IG06:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      dword ptr [ebp+0x0C], edi
        sub      ebx, edi
        lea      ebx, [ebx+4*ebx]
-       mov      dword ptr [ebp-0x1C], ebx
        lea      eax, [ebx+0x05]
        mov      edi, ebx
        cmp      ebx, eax
-       jge      SHORT G_M57321_IG17
-                       ;; size=30 bbWeight=4 PerfScore 39.00
+       jge      SHORT G_M57321_IG13
+                       ;; size=27 bbWeight=4 PerfScore 35.00
 G_M57321_IG07:        ; bbWeight=2, gcVars=00000048 {V00 V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[esi]
-       mov      ecx, gword ptr [ebp-0x2C]
+       mov      ecx, gword ptr [ebp-0x28]
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       SHORT G_M57321_IG12
+       je       SHORT G_M57321_IG10
        mov      esi, ebx
        or       esi, eax
-       jl       SHORT G_M57321_IG11
+       jl       SHORT G_M57321_IG10
        cmp      dword ptr [ecx+0x04], eax
        jl       SHORT G_M57321_IG10
                        ;; size=18 bbWeight=2 PerfScore 15.50
@@ -157,64 +156,51 @@ G_M57321_IG08:        ; bbWeight=15.84, gcrefRegs=00000002 {ecx}, byrefRegs=0000
        lea      esi, bword ptr [ecx+4*edi+0x08]
        ; byrRegs +[esi]
        cmp      dword ptr [esi], 0
-       jl       SHORT G_M57321_IG15
+       jl       SHORT G_M57321_IG11
        inc      edi
        cmp      edi, eax
        jl       SHORT G_M57321_IG08
                        ;; size=14 bbWeight=15.84 PerfScore 102.96
-G_M57321_IG09:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+G_M57321_IG09:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[esi]
-       jmp      SHORT G_M57321_IG17
-                       ;; size=2 bbWeight=2 PerfScore 4.00
-G_M57321_IG10:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-       jmp      SHORT G_M57321_IG12
-                       ;; size=2 bbWeight=1 PerfScore 2.00
-G_M57321_IG11:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-                       ;; size=0 bbWeight=1 PerfScore 0.00
-G_M57321_IG12:        ; bbWeight=0.16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M57321_IG13
+                       ;; size=2 bbWeight=4 PerfScore 8.00
+G_M57321_IG10:        ; bbWeight=0.16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        cmp      edi, dword ptr [ecx+0x04]
-       jae      G_M57321_IG25
-       lea      ebx, bword ptr [ecx+4*edi+0x08]
-       ; byrRegs +[ebx]
-       cmp      dword ptr [ebx], 0
-       mov      esi, ebx
+       jae      G_M57321_IG20
+       lea      esi, bword ptr [ecx+4*edi+0x08]
        ; byrRegs +[esi]
-       jl       SHORT G_M57321_IG14
+       cmp      dword ptr [esi], 0
+       jl       SHORT G_M57321_IG11
        inc      edi
        cmp      edi, eax
-       jl       SHORT G_M57321_IG12
-                       ;; size=25 bbWeight=0.16 PerfScore 1.72
-G_M57321_IG13:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-       ; byrRegs -[ebx esi]
-       jmp      SHORT G_M57321_IG17
-                       ;; size=2 bbWeight=2 PerfScore 4.00
-G_M57321_IG14:        ; bbWeight=0.08, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref
-       ; byrRegs +[esi]
-       mov      ebx, dword ptr [ebp-0x1C]
-                       ;; size=3 bbWeight=0.08 PerfScore 0.08
-G_M57321_IG15:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref, isz
+       jl       SHORT G_M57321_IG10
+       jmp      SHORT G_M57321_IG13
+                       ;; size=25 bbWeight=0.16 PerfScore 2.00
+G_M57321_IG11:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref, isz
        cmp      edi, ebx
-       jne      SHORT G_M57321_IG16
+       jne      SHORT G_M57321_IG12
        mov      ebx, dword ptr [ebp-0x18]
        inc      ebx
        mov      dword ptr [ebp-0x18], ebx
                        ;; size=11 bbWeight=2 PerfScore 7.00
-G_M57321_IG16:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref
+G_M57321_IG12:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref
        mov      dword ptr [esi], edx
                        ;; size=2 bbWeight=2 PerfScore 2.00
-G_M57321_IG17:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M57321_IG13:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[ecx]
        ; byrRegs -[esi]
        cmp      edi, eax
-       je       SHORT G_M57321_IG19
+       je       SHORT G_M57321_IG15
        inc      edx
-       mov      edi, dword ptr [ebp-0x24]
-       cmp      edi, edx
-       mov      esi, gword ptr [ebp-0x28]
+       mov      ebx, dword ptr [ebp-0x20]
+       cmp      ebx, edx
+       mov      esi, gword ptr [ebp-0x24]
...
  
-21 (-3.08%) : 101.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(uint,int,byref,byref):uint (Tier0-FullOpts)
@@ -210,21 +210,21 @@ G_M64904_IG17:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        vpor     xmm2, xmm2, xmm4
        vpmovmskb ecx, xmm2
        popcnt   ecx, ecx
-       vmovups  xmm2, xmmword ptr [ebp-0x44]
-       vpaddw   xmm4, xmm0, xmm2
+       vpaddw   xmm4, xmm0, xmmword ptr [ebp-0x44]
        vpcmpgtw xmm4, xmm3, xmm4
        vpmovmskb eax, xmm4
        cmp      eax, 0xFFFF
        jne      SHORT G_M64904_IG20
-                      ;; size=55 bbWeight=4 PerfScore 83.00
+                     ;; size=51 bbWeight=4 PerfScore 77.67
 G_M64904_IG18:        ; bbWeight=16, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        add      ebx, ecx
        mov      eax, dword ptr [ebp-0x74]
        adc      eax, 0
        cmp      esi, edi
        mov      dword ptr [ebp-0x74], eax
+       mov      edi, dword ptr [ebp-0x48]
        jbe      SHORT G_M64904_IG15
-                      ;; size=15 bbWeight=16 PerfScore 64.00
+                        ;; size=18 bbWeight=16 PerfScore 80.00
 G_M64904_IG19:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, dword ptr [ebp-0x14]
        jmp      G_M64904_IG28
@@ -250,9 +250,7 @@ G_M64904_IG21:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
        mov      ecx, dword ptr [ebp-0x6C]
-       vmovups  xmm2, xmmword ptr [ebp-0x44]
-       vmovups  xmm3, xmmword ptr [ebp-0x34]
-                       ;; size=32 bbWeight=8 PerfScore 92.00
+                     ;; size=22 bbWeight=8 PerfScore 44.00
 G_M64904_IG22:        ; bbWeight=32, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      eax, dword ptr [ebp-0x70]
        mov      edx, eax
@@ -269,9 +267,7 @@ G_M64904_IG23:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
        mov      ecx, dword ptr [ebp-0x6C]
-       vmovups  xmm2, xmmword ptr [ebp-0x44]
-       vmovups  xmm3, xmmword ptr [ebp-0x34]
-                       ;; size=32 bbWeight=8 PerfScore 92.00
+                     ;; size=22 bbWeight=8 PerfScore 44.00
 G_M64904_IG24:        ; bbWeight=32, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      eax, dword ptr [ebp-0x70]
        shl      eax, 2
@@ -292,9 +288,9 @@ G_M64904_IG26:        ; bbWeight=32, gcrefRegs=00000000 {}, byrefRegs=00000000 {
        sub      edi, eax
        add      eax, eax
        sub      ebx, eax
-       mov      eax, dword ptr [ebp-0x74]
-       sbb      eax, 0
-       mov      dword ptr [ebp-0x74], eax
+       mov      edx, dword ptr [ebp-0x74]
+       sbb      edx, 0
+       mov      dword ptr [ebp-0x74], edx
        mov      dword ptr [ebp-0x10], edi
        mov      edi, dword ptr [ebp-0x48]
        jmp      G_M64904_IG18
@@ -385,6 +381,6 @@ RWD16   dq  7800780078007800h, 7800780078007800h
 RWD32      dq  A000A000A000A000h, A000A000A000A000h
 
 
-; Total bytes of code 682, prolog size 16, PerfScore 1263.75, instruction count 214, allocated bytes for code 682 (MethodHash=96570277) for method System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(uint,int,byref,byref):uint (Tier0-FullOpts)
+; Total bytes of code 661, prolog size 16, PerfScore 1178.42, instruction count 210, allocated bytes for code 661 (MethodHash=96570277) for method System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(uint,int,byref,byref):uint (Tier0-FullOpts)
 ; ============================================================
 
  
-10 (-3.05%) : 30099.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong]:<TryFoldAlternation>g__TrySplitConcatSubsumption|52_0(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode1[ulong],byref):ubyte (Tier0-FullOpts)
@@ -53,7 +53,7 @@ G_M37099_IG03:        ; bbWeight=0.50, gcVars=00000002 {V04}, gcrefRegs=000000C4
                        ;; size=3 bbWeight=0.50 PerfScore 0.50
 G_M37099_IG04:        ; bbWeight=4, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000008 {ebx}, byref, isz
        cmp      edx, esi
-       je       G_M37099_IG10
+       je       SHORT G_M37099_IG10
        mov      gword ptr [ebp-0x18], edx
        ; GC ptr vars +{V05}
        mov      ecx, gword ptr [edx+0x10]
@@ -86,7 +86,7 @@ G_M37099_IG04:        ; bbWeight=4, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=
        mov      edi, dword ptr [edx+0x08]
        cmp      dword ptr [ebx+0x04], edi
        jbe      SHORT G_M37099_IG06
-                      ;; size=70 bbWeight=4 PerfScore 131.00
+                        ;; size=66 bbWeight=4 PerfScore 131.00
 G_M37099_IG05:        ; bbWeight=2, gcVars=000000C7 {V00 V04 V05 V07 V09}, gcrefRegs=00000046 {ecx edx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax ebx]
        lea      ebx, [edi+0x01]
@@ -118,23 +118,22 @@ G_M37099_IG07:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        cmp      dword ptr [edi+0x18], 2
        mov      edx, edi
        ; gcrRegs +[edx]
-       mov      ebx, bword ptr [ebp+0x08]
-       ; byrRegs +[ebx]
        je       SHORT G_M37099_IG09
-                       ;; size=17 bbWeight=4 PerfScore 33.00
-G_M37099_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000008 {ebx}, gcvars, byref
+                        ;; size=14 bbWeight=4 PerfScore 29.00
+G_M37099_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[edx esi edi]
        ; GC ptr vars -{V00 V04 V05}
-       mov      bword ptr [ebp+0x08], ebx
        jmp      G_M37099_IG15
-                      ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M37099_IG09:        ; bbWeight=2, gcVars=00000082 {V00 V04}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000008 {ebx}, gcvars, byref
+                     ;; size=5 bbWeight=0.50 PerfScore 1.00
+G_M37099_IG09:        ; bbWeight=2, gcVars=00000082 {V00 V04}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[edx esi]
        ; GC ptr vars +{V00 V01 V04 V07}
+       mov      ebx, bword ptr [ebp+0x08]
+       ; byrRegs +[ebx]
        mov      edi, gword ptr [ebp-0x10]
        ; gcrRegs +[edi]
-       jmp      G_M37099_IG04
-                       ;; size=8 bbWeight=2 PerfScore 6.00
+       jmp      SHORT G_M37099_IG04
+                       ;; size=8 bbWeight=2 PerfScore 8.00
 G_M37099_IG10:        ; bbWeight=0.50, gcVars=00000002 {V04}, gcrefRegs=00000080 {edi}, byrefRegs=00000008 {ebx}, gcvars, byref
        ; gcrRegs -[edx esi]
        ; GC ptr vars -{V00 V01 V07}
@@ -241,6 +240,6 @@ G_M37099_IG16:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
        ret      8
                        ;; size=10 bbWeight=0.50 PerfScore 2.25
 
-; Total bytes of code 328, prolog size 9, PerfScore 243.62, instruction count 113, allocated bytes for code 328 (MethodHash=7b316f14) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:<TryFoldAlternation>g__TrySplitConcatSubsumption|52_0(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],byref):ubyte (Tier0-FullOpts)
+; Total bytes of code 318, prolog size 9, PerfScore 241.12, instruction count 112, allocated bytes for code 318 (MethodHash=7b316f14) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:<TryFoldAlternation>g__TrySplitConcatSubsumption|52_0(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],byref):ubyte (Tier0-FullOpts)
 ; ============================================================
 
  
+35 (+5.10%) : 16128.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (Tier0-FullOpts)
@@ -8,19 +8,19 @@
 ; 0 inlinees with PGO data; 43 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T06] ( 17, 44   )   byref  ->  [ebp-0x28]  single-def
-;  V01 arg1         [V01,T11] (  4, 22   )     ref  ->  [ebp-0x2C]  class-hnd single-def <System.Reflection.CustomAttributeNamedParameter[]>
+;  V00 arg0         [V00,T06] ( 17, 44   )   byref  ->  esi         single-def
+;  V01 arg1         [V01,T11] (  4, 22   )     ref  ->  [ebp-0x28]  class-hnd single-def <System.Reflection.CustomAttributeNamedParameter[]>
 ;  V02 arg2         [V02,T24] (  2,  8   )     ref  ->  [ebp+0x08]  class-hnd single-def <System.Reflection.RuntimeModule>
 ;  V03 loc0         [V03,T27] (  3,  6   )     int  ->  [ebp-0x10]  spill-single-def
 ;  V04 loc1         [V04,T20] (  4, 13   )     int  ->  [ebp-0x14] 
 ;  V05 loc2         [V05,T22] (  3, 10   )     int  ->  ecx        
-;  V06 loc3         [V06,T08] (  6, 34   )     ref  ->  ebx         class-hnd exact <System.Reflection.CustomAttributeType>
+;  V06 loc3         [V06,T08] (  6, 34   )     ref  ->  [ebp-0x2C]  class-hnd exact spill-single-def <System.Reflection.CustomAttributeType>
 ;  V07 loc4         [V07,T12] (  5, 26   )     ref  ->  [ebp-0x30]  class-hnd exact spill-single-def <System.String>
 ;  V08 loc5         [V08,T18] (  5, 18   )     ref  ->  [ebp-0x34]  class-hnd <System.Reflection.CustomAttributeNamedParameter>
 ;* V09 loc6         [V09,T28] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Reflection.CustomAttributeNamedParameter[]>
 ;  V10 loc7         [V10,T02] (  5, 68   )     int  ->  [ebp-0x18] 
-;  V11 loc8         [V11,T07] (  4, 42   )     ref  ->  esi         class-hnd exact <System.Reflection.CustomAttributeNamedParameter>
-;  V12 loc9         [V12,T01] (  8, 74   )     ref  ->  edi         class-hnd exact <System.Reflection.CustomAttributeType>
+;  V11 loc8         [V11,T07] (  4, 42   )     ref  ->  [ebp-0x38]  class-hnd exact spill-single-def <System.Reflection.CustomAttributeNamedParameter>
+;  V12 loc9         [V12,T01] (  8, 74   )     ref  ->  [ebp-0x3C]  class-hnd exact spill-single-def <System.Reflection.CustomAttributeType>
 ;* V13 tmp0         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Type>
 ;* V14 tmp1         [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V15 tmp2         [V15    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
@@ -60,7 +60,7 @@
 ;* V49 tmp36        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V21._length (fldOffset=0x4)" P-INDEP
 ;* V50 tmp37        [V50    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V51 tmp38        [V51    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x4)" P-INDEP
-;  V52 tmp39        [V52,T30] (  2,  2   )   byref  ->  [ebp-0x38]  spill-single-def "field V25._reference (fldOffset=0x0)" P-INDEP
+;  V52 tmp39        [V52,T30] (  2,  2   )   byref  ->  [ebp-0x40]  spill-single-def "field V25._reference (fldOffset=0x0)" P-INDEP
 ;* V53 tmp40        [V53    ] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0x4)" P-INDEP
 ;* V54 tmp41        [V54    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V55 tmp42        [V55    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x4)" P-INDEP
@@ -72,21 +72,21 @@
 ;* V61 tmp48        [V61    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x4)" P-INDEP
 ;  V62 tmp49        [V62,T25] (  2,  8   )   byref  ->  ebx         "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V63 tmp50        [V63    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x4)" P-INDEP
-;  V64 tmp51        [V64,T05] (  3, 48   )     ref  ->  eax         "argument with side effect"
+;  V64 tmp51        [V64,T05] (  3, 48   )     ref  ->  ebx         "argument with side effect"
 ;  V65 tmp52        [V65,T35] (  2,  0   )     ref  ->  edx         "argument with side effect"
 ;  V66 tmp53        [V66,T36] (  2,  0   )     ref  ->  edx         "argument with side effect"
 ;  V67 tmp54        [V67,T37] (  2,  0   )     ref  ->  edx         "argument with side effect"
 ;  V68 tmp55        [V68,T38] (  2,  0   )     ref  ->  edx         "argument with side effect"
 ;  V69 cse0         [V69,T14] (  3, 24   )     int  ->  [ebp-0x1C]  spill-single-def "CSE - moderate"
-;  V70 cse1         [V70,T15] (  3, 24   )     int  ->  eax         "CSE - moderate"
+;  V70 cse1         [V70,T15] (  3, 24   )     int  ->  ebx         "CSE - moderate"
 ;  V71 cse2         [V71,T16] (  3, 24   )     int  ->  eax         "CSE - moderate"
 ;  V72 cse3         [V72,T21] (  3, 12   )     int  ->  ebx         "CSE - conservative"
 ;  V73 cse4         [V73,T29] (  3,  3   )     int  ->  edx         "CSE - conservative"
 ;  V74 cse5         [V74,T03] (  3, 68   )     int  ->  [ebp-0x20]  spill-single-def "CSE - moderate"
 ;  V75 cse6         [V75,T17] (  3, 24   )     int  ->  [ebp-0x24]  spill-single-def "CSE - moderate"
-;  TEMP_01                                     int  ->  [ebp-0x3C]
+;  TEMP_01                                     int  ->  [ebp-0x44]
 ;
-; Lcl frame size = 48
+; Lcl frame size = 56
 
 G_M41795_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -94,7 +94,7 @@ G_M41795_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 48
+       sub      esp, 56
        mov      esi, ecx
        ; byrRegs +[esi]
        mov      edi, edx
@@ -106,13 +106,13 @@ G_M41795_IG02:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000040
        mov      eax, dword ptr [esi]
        mov      edx, dword ptr [ecx+0x04]
        cmp      eax, edx
-       ja       G_M41795_IG31
+       ja       G_M41795_IG33
        sub      edx, eax
        cmp      edx, 2
-       jb       G_M41795_IG31
+       jb       G_M41795_IG33
        add      eax, bword ptr [ecx]
        ; byrRegs +[eax]
-       mov      bword ptr [ebp-0x38], eax
+       mov      bword ptr [ebp-0x40], eax
        ; GC ptr vars +{V52}
        mov      ecx, dword ptr [esi+0x08]
        ; byrRegs -[ecx]
@@ -131,7 +131,7 @@ G_M41795_IG03:        ; bbWeight=0.50, gcVars=0000000040000000 {V52}, gcrefRegs=
                        ;; size=16 bbWeight=0.50 PerfScore 1.75
 G_M41795_IG04:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref
        add      dword ptr [esi], 2
-       mov      eax, bword ptr [ebp-0x38]
+       mov      eax, bword ptr [ebp-0x40]
        ; byrRegs +[eax]
        movsx    eax, word  ptr [eax]
        ; byrRegs -[eax]
@@ -139,7 +139,7 @@ G_M41795_IG04:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000040
        xor      edx, edx
        mov      dword ptr [ebp-0x14], edx
        test     eax, eax
-       jle      G_M41795_IG29
+       jle      G_M41795_IG31
                      ;; size=25 bbWeight=1 PerfScore 11.50
 G_M41795_IG05:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, gcvars, byref, isz
        ; GC ptr vars -{V52}
@@ -148,9 +148,9 @@ G_M41795_IG05:        ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=000000
        mov      eax, dword ptr [esi]
        mov      ebx, dword ptr [ecx+0x04]
        cmp      eax, ebx
-       ja       G_M41795_IG31
+       ja       G_M41795_IG33
        sub      ebx, eax
-       je       G_M41795_IG31
+       je       G_M41795_IG33
        mov      ebx, eax
        add      ebx, bword ptr [ecx]
        ; byrRegs +[ebx]
@@ -177,7 +177,7 @@ G_M41795_IG07:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000048
 G_M41795_IG08:        ; bbWeight=2, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref
        ; byrRegs -[ebx]
        cmp      ecx, 84
-       jne      G_M41795_IG32
+       jne      G_M41795_IG34
                       ;; size=9 bbWeight=2 PerfScore 2.50
 G_M41795_IG09:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref
        mov      ecx, esi
@@ -187,8 +187,8 @@ G_M41795_IG09:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000040
        call     [System.Reflection.CustomAttributeEncodedArgument:ParseCustomAttributeType(byref,System.Reflection.RuntimeModule):System.Reflection.CustomAttributeType]
        ; gcrRegs -[edx] +[eax]
        ; byrRegs -[ecx]
-       mov      ebx, eax
-       ; gcrRegs +[ebx]
+       mov      gword ptr [ebp-0x2C], eax
+       ; GC ptr vars +{V06}
        mov      ecx, esi
        ; byrRegs +[ecx]
        call     [System.Reflection.CustomAttributeEncodedArgument+CustomAttributeDataParser:GetString():System.String:this]
@@ -196,15 +196,15 @@ G_M41795_IG09:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000040
        mov      gword ptr [ebp-0x30], eax
        ; GC ptr vars +{V07}
        test     eax, eax
-       je       G_M41795_IG33
-                       ;; size=32 bbWeight=4 PerfScore 40.00
-G_M41795_IG10:        ; bbWeight=2, gcVars=0000000000001000 {V07}, gcrefRegs=00000089 {eax ebx edi}, byrefRegs=00000040 {esi}, gcvars, byref
+       je       G_M41795_IG35
+                       ;; size=33 bbWeight=4 PerfScore 43.00
+G_M41795_IG10:        ; bbWeight=2, gcVars=0000000000001100 {V06 V07}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000040 {esi}, gcvars, byref
        mov      edx, dword ptr [eax+0x04]
        mov      dword ptr [ebp-0x20], edx
        test     edx, edx
-       je       G_M41795_IG33
+       je       G_M41795_IG35
                      ;; size=14 bbWeight=2 PerfScore 8.50
-G_M41795_IG11:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, byref
+G_M41795_IG11:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref
        ; gcrRegs -[eax]
        xor      ecx, ecx
        ; gcrRegs +[ecx]
@@ -212,177 +212,201 @@ G_M41795_IG11:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=0000
        ; GC ptr vars +{V08}
        xor      ecx, ecx
        ; gcrRegs -[ecx]
-       mov      gword ptr [ebp-0x2C], edi
+       mov      gword ptr [ebp-0x28], edi
        ; GC ptr vars +{V01}
        mov      edi, dword ptr [edi+0x04]
        ; gcrRegs -[edi]
        mov      dword ptr [ebp-0x24], edi
        test     edi, edi
-       jle      G_M41795_IG28
+       jle      G_M41795_IG27
                      ;; size=24 bbWeight=4 PerfScore 27.00
-G_M41795_IG12:        ; bbWeight=2, gcVars=0000000000041800 {V01 V07 V08}, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, gcvars, byref
-       mov      bword ptr [ebp-0x28], esi
-       ; GC ptr vars +{V00}
-                       ;; size=3 bbWeight=2 PerfScore 2.00
-G_M41795_IG13:        ; bbWeight=16, gcVars=0000000000041840 {V00 V01 V07 V08}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; byrRegs -[esi]
-       mov      esi, gword ptr [ebp-0x2C]
-       ; gcrRegs +[esi]
-       mov      dword ptr [ebp-0x18], ecx
-       mov      esi, gword ptr [esi+4*ecx+0x08]
-       mov      edi, gword ptr [esi+0x08]
+G_M41795_IG12:        ; bbWeight=16, gcVars=0000000000041900 {V01 V06 V07 V08}, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, gcvars, byref
+       mov      edi, gword ptr [ebp-0x28]
        ; gcrRegs +[edi]
-       cmp      dword ptr [edi+0x08], 81
-       je       SHORT G_M41795_IG15
-                       ;; size=19 bbWeight=16 PerfScore 160.00
-G_M41795_IG14:        ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, dword ptr [edi+0x08]
-       mov      dword ptr [ebp-0x3C], eax
-       mov      eax, dword ptr [ebx+0x08]
-       mov      dword ptr [ebp-0x1C], eax
-       mov      eax, dword ptr [ebp-0x3C]
-       cmp      eax, dword ptr [ebp-0x1C]
+       mov      dword ptr [ebp-0x18], ecx
+       mov      edi, gword ptr [edi+4*ecx+0x08]
+       mov      gword ptr [ebp-0x38], edi
+       ; GC ptr vars +{V11}
+       mov      eax, gword ptr [edi+0x08]
+       ; gcrRegs +[eax]
+       mov      gword ptr [ebp-0x3C], eax
+       ; GC ptr vars +{V12}
+       cmp      dword ptr [eax+0x08], 81
+       je       G_M41795_IG26
+                       ;; size=29 bbWeight=16 PerfScore 192.00
+G_M41795_IG13:        ; bbWeight=8, gcVars=0000000000041982 {V01 V06 V07 V08 V11 V12}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref, isz
+       ; gcrRegs -[edi]
+       mov      ebx, dword ptr [eax+0x08]
+       mov      dword ptr [ebp-0x44], ebx
+       mov      ebx, gword ptr [ebp-0x2C]
+       ; gcrRegs +[ebx]
+       mov      ebx, dword ptr [ebx+0x08]
+       ; gcrRegs -[ebx]
+       mov      dword ptr [ebp-0x1C], ebx
+       mov      ebx, dword ptr [ebp-0x44]
+       cmp      ebx, dword ptr [ebp-0x1C]
        jne      G_M41795_IG25
        cmp      dword ptr [ebp-0x1C], 29
-       jne      SHORT G_M41795_IG15
-       mov      eax, dword ptr [edi+0x10]
-       cmp      eax, 81
-       je       SHORT G_M41795_IG15
-       cmp      dword ptr [ebx+0x10], eax
-       jne      SHORT G_M41795_IG24
-                       ;; size=43 bbWeight=8 PerfScore 162.00
-G_M41795_IG15:        ; bbWeight=8, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, gword ptr [esi+0x04]
-       ; gcrRegs +[eax]
-       mov      ecx, eax
+       jne      G_M41795_IG24
+       mov      ebx, dword ptr [eax+0x10]
+       cmp      ebx, 81
+       je       SHORT G_M41795_IG14
+       mov      edi, gword ptr [ebp-0x2C]
+       ; gcrRegs +[edi]
+       cmp      dword ptr [edi+0x10], ebx
+       jne      SHORT G_M41795_IG23
+                       ;; size=53 bbWeight=8 PerfScore 178.00
+G_M41795_IG14:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
+       ; gcrRegs -[eax edi]
+       mov      edi, gword ptr [ebp-0x38]
+       ; gcrRegs +[edi]
+       mov      ebx, gword ptr [edi+0x04]
+       ; gcrRegs +[ebx]
+       mov      ecx, ebx
        ; gcrRegs +[ecx]
-       mov      eax, dword ptr [eax]
-       ; gcrRegs -[eax]
-       mov      eax, dword ptr [eax+0x2C]
...
  
+16 (+5.88%) : 32144.dasm - Benchstone.BenchF.InProd:Inner(double[][],double[][],double[][]) (Tier0-FullOpts)
@@ -45,9 +45,9 @@ G_M15841_IG02:        ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
        ; gcrRegs -[ecx]
        mov      eax, 1
        test     esi, esi
-       je       G_M15841_IG10
+       je       G_M15841_IG11
        cmp      dword ptr [esi+0x04], 700
-       jl       G_M15841_IG10
+       jl       G_M15841_IG11
                       ;; size=52 bbWeight=1 PerfScore 13.00
 G_M15841_IG03:        ; bbWeight=3.96, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, 1
@@ -87,14 +87,15 @@ G_M15841_IG05:        ; bbWeight=15.68, gcrefRegs=000000C8 {ebx esi edi}, byrefR
        mov      eax, dword ptr [ebp-0x10]
        jl       SHORT G_M15841_IG05
                        ;; size=40 bbWeight=15.68 PerfScore 231.30
-G_M15841_IG06:        ; bbWeight=1.98, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M15841_IG06:        ; bbWeight=3.96, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       mov      dword ptr [ebp-0x10], eax
        jmp      SHORT G_M15841_IG08
-                     ;; size=2 bbWeight=1.98 PerfScore 3.96
+                        ;; size=5 bbWeight=3.96 PerfScore 11.88
 G_M15841_IG07:        ; bbWeight=0.16, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [esi+4*eax+0x08]
        ; gcrRegs +[ecx]
        cmp      edx, dword ptr [ecx+0x04]
-       jae      SHORT G_M15841_IG14
+       jae      G_M15841_IG15
        lea      ecx, bword ptr [ecx+8*edx+0x08]
        ; gcrRegs -[ecx]
        ; byrRegs +[ecx]
@@ -114,29 +115,33 @@ G_M15841_IG07:        ; bbWeight=0.16, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        inc      eax
        cmp      eax, 700
        mov      edx, eax
+       jl       SHORT G_M15841_IG10
+                       ;; size=47 bbWeight=0.16 PerfScore 2.85
+G_M15841_IG08:        ; bbWeight=3.96, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
        mov      eax, dword ptr [ebp-0x10]
-       jl       SHORT G_M15841_IG07
-                       ;; size=46 bbWeight=0.16 PerfScore 3.01
-G_M15841_IG08:        ; bbWeight=3.96, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        inc      eax
        cmp      eax, 700
-       jl       SHORT G_M15841_IG03
-                       ;; size=8 bbWeight=3.96 PerfScore 5.94
+       jl       G_M15841_IG03
+                       ;; size=15 bbWeight=3.96 PerfScore 9.90
 G_M15841_IG09:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[ebx esi edi]
-       jmp      SHORT G_M15841_IG13
+       jmp      SHORT G_M15841_IG14
                       ;; size=2 bbWeight=1 PerfScore 2.00
-G_M15841_IG10:        ; bbWeight=0.04, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+G_M15841_IG10:        ; bbWeight=0.08, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ebx esi edi]
+       mov      eax, dword ptr [ebp-0x10]
+       jmp      SHORT G_M15841_IG07
+                       ;; size=5 bbWeight=0.08 PerfScore 0.24
+G_M15841_IG11:        ; bbWeight=0.04, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
        mov      edx, 1
                        ;; size=5 bbWeight=0.04 PerfScore 0.01
-G_M15841_IG11:        ; bbWeight=0.16, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M15841_IG12:        ; bbWeight=0.16, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        cmp      eax, dword ptr [esi+0x04]
-       jae      SHORT G_M15841_IG14
+       jae      SHORT G_M15841_IG15
        mov      ecx, gword ptr [esi+4*eax+0x08]
        ; gcrRegs +[ecx]
        cmp      edx, dword ptr [ecx+0x04]
-       jae      SHORT G_M15841_IG14
+       jae      SHORT G_M15841_IG15
        lea      ecx, bword ptr [ecx+8*edx+0x08]
        ; gcrRegs -[ecx]
        ; byrRegs +[ecx]
@@ -156,14 +161,14 @@ G_M15841_IG11:        ; bbWeight=0.16, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        inc      edx
        cmp      edx, 700
        mov      eax, dword ptr [ebp-0x10]
-       jl       SHORT G_M15841_IG11
+       jl       SHORT G_M15841_IG12
                         ;; size=50 bbWeight=0.16 PerfScore 3.64
-G_M15841_IG12:        ; bbWeight=0.04, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M15841_IG13:        ; bbWeight=0.04, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        inc      eax
        cmp      eax, 700
-       jl       SHORT G_M15841_IG10
+       jl       SHORT G_M15841_IG11
                      ;; size=8 bbWeight=0.04 PerfScore 0.06
-G_M15841_IG13:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M15841_IG14:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[ebx esi edi]
        lea      esp, [ebp-0x0C]
        pop      ebx
@@ -172,11 +177,11 @@ G_M15841_IG13:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        pop      ebp
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
-G_M15841_IG14:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M15841_IG15:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 272, prolog size 16, PerfScore 304.61, instruction count 93, allocated bytes for code 272 (MethodHash=ed43c21e) for method Benchstone.BenchF.InProd:Inner(double[][],double[][],double[][]) (Tier0-FullOpts)
+; Total bytes of code 288, prolog size 16, PerfScore 316.57, instruction count 96, allocated bytes for code 288 (MethodHash=ed43c21e) for method Benchstone.BenchF.InProd:Inner(double[][],double[][],double[][]) (Tier0-FullOpts)
 ; ============================================================
 
  
+21 (+9.63%) : 46781.dasm - Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (Tier0-FullOpts)
@@ -42,15 +42,15 @@ G_M52602_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000004
        mov      edx, 1
        ; byrRegs -[edx]
        test     eax, eax
-       jle      G_M52602_IG12
+       jle      G_M52602_IG14
                      ;; size=18 bbWeight=1 PerfScore 4.50
-G_M52602_IG03:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+G_M52602_IG03:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        lea      esi, [edx+0x01]
        mov      dword ptr [ebp-0x18], esi
        mov      edi, esi
        cmp      edi, eax
-       jg       G_M52602_IG11
-                       ;; size=16 bbWeight=4 PerfScore 12.00
+       jg       SHORT G_M52602_IG10
+                       ;; size=12 bbWeight=4 PerfScore 12.00
 G_M52602_IG04:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        mov      ebx, 1
        test     ecx, ecx
@@ -60,7 +60,7 @@ G_M52602_IG05:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        test     eax, eax
        jl       SHORT G_M52602_IG08
        cmp      dword ptr [ecx+0x04], eax
-       jle      SHORT G_M52602_IG09
+       jle      SHORT G_M52602_IG11
                         ;; size=9 bbWeight=8 PerfScore 42.00
 G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        mov      gword ptr [ebp-0x20], ecx
@@ -70,14 +70,14 @@ G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=0000
        mov      ecx, esi
        mov      eax, dword ptr [ecx+0x04]
        cmp      edx, eax
-       jae      G_M52602_IG13
+       jae      G_M52602_IG17
        mov      ecx, dword ptr [ecx+4*edx+0x08]
        ; gcrRegs -[ecx]
        mov      dword ptr [ebp-0x14], ecx
        mov      ecx, esi
        ; gcrRegs +[ecx]
        cmp      edi, eax
-       jae      SHORT G_M52602_IG13
+       jae      G_M52602_IG17
        mov      eax, dword ptr [ecx+4*edi+0x08]
        mov      ecx, dword ptr [ebp-0x14]
        ; gcrRegs -[ecx]
@@ -88,17 +88,31 @@ G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=0000
        mov      ecx, gword ptr [ebp-0x20]
        ; gcrRegs +[ecx]
        jle      SHORT G_M52602_IG06
-                      ;; size=55 bbWeight=63.36 PerfScore 1235.52
-G_M52602_IG07:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=59 bbWeight=63.36 PerfScore 1235.52
+G_M52602_IG07:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        ; GC ptr vars -{V00}
-       jmp      SHORT G_M52602_IG10
-                       ;; size=2 bbWeight=8 PerfScore 16.00
+       mov      gword ptr [ebp-0x20], ecx
+       ; GC ptr vars +{V00}
+       mov      eax, dword ptr [ebp-0x10]
+       jmp      SHORT G_M52602_IG12
+                       ;; size=8 bbWeight=16 PerfScore 64.00
 G_M52602_IG08:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-                      ;; size=0 bbWeight=4 PerfScore 0.00
-G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; GC ptr vars -{V00}
+       jmp      SHORT G_M52602_IG11
+                       ;; size=2 bbWeight=4 PerfScore 8.00
+G_M52602_IG09:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M52602_IG11
+                       ;; size=2 bbWeight=8 PerfScore 16.00
+G_M52602_IG10:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       mov      gword ptr [ebp-0x20], ecx
+       ; GC ptr vars +{V00}
+       jmp      SHORT G_M52602_IG13
+                       ;; size=5 bbWeight=2 PerfScore 6.00
+G_M52602_IG11:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; GC ptr vars -{V00}
        cmp      ebx, dword ptr [ecx+0x04]
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      gword ptr [ebp-0x20], ecx
        ; GC ptr vars +{V00}
        mov      esi, gword ptr [ecx+4*ebx+0x08]
@@ -109,13 +123,13 @@ G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000
        ; gcrRegs -[ecx]
        mov      dword ptr [ebp-0x1C], ecx
        cmp      edx, ecx
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      esi, dword ptr [esi+4*edx+0x08]
        ; gcrRegs -[esi]
        mov      ecx, gword ptr [ebp-0x24]
        ; gcrRegs +[ecx]
        cmp      edi, dword ptr [ebp-0x1C]
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      ecx, dword ptr [ecx+4*edi+0x08]
        ; gcrRegs -[ecx]
        mov      eax, gword ptr [ebp-0x24]
@@ -126,25 +140,25 @@ G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000
        mov      eax, dword ptr [ebp-0x10]
        ; gcrRegs -[eax]
        cmp      ebx, eax
-       mov      ecx, gword ptr [ebp-0x20]
-       ; gcrRegs +[ecx]
-       jle      SHORT G_M52602_IG09
-                       ;; size=61 bbWeight=0.64 PerfScore 16.64
-G_M52602_IG10:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
-       ; GC ptr vars -{V00 V11}
+       jle      SHORT G_M52602_IG16
+                       ;; size=58 bbWeight=0.64 PerfScore 16.00
+G_M52602_IG12:        ; bbWeight=16, gcVars=00000800 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V11}
        inc      edi
-       mov      eax, dword ptr [ebp-0x10]
        cmp      edi, eax
-       jle      G_M52602_IG04
-                       ;; size=12 bbWeight=16 PerfScore 40.00
-G_M52602_IG11:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+       jle      SHORT G_M52602_IG15
+                       ;; size=5 bbWeight=16 PerfScore 24.00
+G_M52602_IG13:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      esi, dword ptr [ebp-0x18]
        mov      edx, esi
        cmp      edx, eax
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
        jle      G_M52602_IG03
-                     ;; size=13 bbWeight=4 PerfScore 10.00
-G_M52602_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+                        ;; size=16 bbWeight=4 PerfScore 14.00
+G_M52602_IG14:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
        ; gcrRegs -[ecx]
+       ; GC ptr vars -{V00}
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -152,11 +166,25 @@ G_M52602_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        pop      ebp
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
-G_M52602_IG13:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M52602_IG15:        ; bbWeight=8, gcVars=00000800 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars +{V00 V11}
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
+       jmp      G_M52602_IG04
+                       ;; size=8 bbWeight=8 PerfScore 24.00
+G_M52602_IG16:        ; bbWeight=0.32, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[ecx]
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
+       jmp      SHORT G_M52602_IG11
+                       ;; size=5 bbWeight=0.32 PerfScore 0.96
+G_M52602_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[ecx]
+       ; GC ptr vars -{V00 V11}
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 218, prolog size 9, PerfScore 1408.66, instruction count 82, allocated bytes for code 218 (MethodHash=2f153285) for method Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (Tier0-FullOpts)
+; Total bytes of code 239, prolog size 9, PerfScore 1498.98, instruction count 90, allocated bytes for code 239 (MethodHash=2f153285) for method Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (Tier0-FullOpts)
 ; ============================================================
 
  
  
coreclr_tests.run.windows.x86.checked.mch
-39 (-5.91%) : 468392.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:MergeWithGlobalList(System.Canon[]):this (Tier1)
@@ -10,15 +10,15 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  8,  4.44)     ref  ->  esi         this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  8,  3.72)     ref  ->  edi         class-hnd single-def <System.__Canon[]>
+;  V01 arg1         [V01,T01] (  8,  3.89)     ref  ->  edi         class-hnd single-def <System.__Canon[]>
 ;  V02 loc0         [V02,T02] ( 17,  4.80)     ref  ->  ebx         class-hnd <System.__Canon[]>
 ;  V03 loc1         [V03,T08] (  5,  1.11)     int  ->  [ebp-0x10]  spill-single-def
 ;  V04 loc2         [V04,T05] (  9,  2.00)     int  ->  [ebp-0x14] 
-;  V05 loc3         [V05,T06] (  6,  1.28)     int  ->  [ebp-0x18] 
+;  V05 loc3         [V05,T06] (  6,  1.44)     int  ->  [ebp-0x18] 
 ;  V06 loc4         [V06,T07] ( 10,  1.11)     ref  ->  [ebp-0x2C]  class-hnd spill-single-def <System.__Canon>
-;  V07 loc5         [V07,T10] (  3,  0.61)   ubyte  ->  [ebp-0x1C] 
-;  V08 loc6         [V08,T03] ( 11,  3.02)     int  ->  [ebp-0x20] 
-;  V09 loc7         [V09,T04] ( 11,  2.63)     ref  ->  [ebp-0x30]  class-hnd <System.__Canon>
+;  V07 loc5         [V07,T09] (  3,  0.78)   ubyte  ->  [ebp-0x1C] 
+;  V08 loc6         [V08,T04] ( 11,  3.02)     int  ->  [ebp-0x20] 
+;  V09 loc7         [V09,T03] ( 11,  2.80)     ref  ->  [ebp-0x30]  class-hnd <System.__Canon>
 ;  V10 loc8         [V10,T17] (  3,  0.22)     int  ->  [ebp-0x24] 
 ;  V11 loc9         [V11    ] (  3,  0.33)     ref  ->  [ebp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.__Canon[]>
 ;* V12 tmp0         [V12    ] (  0,  0   )     int  ->  zero-ref    "spilling helperCall"
@@ -35,11 +35,10 @@
 ;* V23 tmp11        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;  V24 rat0         [V24,T14] (  3,  0.49)     int  ->  edx         "Spilling to split statement for tree"
 ;  V25 rat1         [V25,T15] (  3,  0.44)     int  ->  ebx         "runtime lookup"
-;  V26 rat2         [V26,T09] (  3,  0.62)     int  ->  ebx         "fgMakeTemp is creating a new local variable"
-;  TEMP_02                                     ref  ->  [ebp-0x34]
-;  TEMP_01                                     int  ->  [ebp-0x38]
+;  V26 rat2         [V26,T10] (  3,  0.62)     int  ->  ebx         "fgMakeTemp is creating a new local variable"
+;  TEMP_01                                     ref  ->  [ebp-0x34]
 ;
-; Lcl frame size = 44
+; Lcl frame size = 40
 
 G_M8298_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -47,7 +46,7 @@ G_M8298_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
        push     edi
        push     esi
        push     ebx
-       sub      esp, 44
+       sub      esp, 40
        xor      eax, eax
        mov      dword ptr [ebp-0x28], eax
        mov      dword ptr [ebp-0x34], eax
@@ -60,7 +59,7 @@ G_M8298_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
        mov      ebx, gword ptr [esi+0x04]
        ; gcrRegs +[ebx]
        test     ebx, ebx
-       jne      SHORT G_M8298_IG07
+       jne      SHORT G_M8298_IG05
                        ;; size=7 bbWeight=1 PerfScore 3.25
 G_M8298_IG03:        ; bbWeight=0.78, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ebx]
@@ -78,36 +77,17 @@ G_M8298_IG04:        ; bbWeight=0.78, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.78 PerfScore 2.72
-G_M8298_IG05:        ; bbWeight=0.33, gcVars=00000080 {V06}, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs +[ecx ebx edi]
-       ; GC ptr vars +{V06 V07}
-       mov      gword ptr [ebp-0x30], ecx
-       ; GC ptr vars +{V09}
-       mov      edx, dword ptr [ecx+0x28]
-       mov      ecx, gword ptr [ebp-0x2C]
-       cmp      edx, dword ptr [ecx+0x28]
-       jne      G_M8298_IG15
-                       ;; size=18 bbWeight=0.33 PerfScore 2.64
-G_M8298_IG06:        ; bbWeight=2.67, gcVars=00000090 {V06 V09}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[ecx]
-       ; GC ptr vars -{V07}
-       mov      ecx, gword ptr [ebp-0x30]
-       ; gcrRegs +[ecx]
-       mov      dword ptr [ebp-0x20], eax
-       jmp      G_M8298_IG23
-                       ;; size=11 bbWeight=2.67 PerfScore 10.67
-G_M8298_IG07:        ; bbWeight=0.22, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[ecx]
-       ; GC ptr vars -{V06 V09}
+G_M8298_IG05:        ; bbWeight=0.22, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs +[ebx edi]
        mov      eax, dword ptr [ebx+0x04]
        mov      dword ptr [ebp-0x10], eax
        xor      edx, edx
        mov      dword ptr [ebp-0x14], edx
        xor      ecx, ecx
        cmp      dword ptr [edi+0x04], 0
-       jle      G_M8298_IG36
+       jle      G_M8298_IG35
                         ;; size=23 bbWeight=0.22 PerfScore 1.89
-G_M8298_IG08:        ; bbWeight=0.22, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M8298_IG06:        ; bbWeight=0.22, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      dword ptr [ebp-0x18], ecx
        mov      eax, gword ptr [edi+4*ecx+0x08]
        ; gcrRegs +[eax]
@@ -118,133 +98,140 @@ G_M8298_IG08:        ; bbWeight=0.22, gcrefRegs=000000C8 {ebx esi edi}, byrefReg
        mov      dword ptr [ebp-0x1C], eax
        xor      eax, eax
        cmp      dword ptr [ebp-0x10], 0
-       jg       SHORT G_M8298_IG12
+       jg       SHORT G_M8298_IG10
                         ;; size=23 bbWeight=0.22 PerfScore 1.89
-G_M8298_IG09:        ; bbWeight=0.22, gcVars=00000080 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M8298_IG07:        ; bbWeight=0.22, gcVars=00000080 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      dword ptr [ebp-0x1C], 0
-       jne      G_M8298_IG35
+       jne      G_M8298_IG34
        mov      edx, dword ptr [ebp-0x14]
        test     edx, edx
-       jne      SHORT G_M8298_IG10
+       jne      SHORT G_M8298_IG08
        mov      edx, eax
                        ;; size=19 bbWeight=0.22 PerfScore 1.22
-G_M8298_IG10:        ; bbWeight=0.22, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+G_M8298_IG08:        ; bbWeight=0.22, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
        cmp      dword ptr [ebx+0x04], edx
-       jg       G_M8298_IG32
+       jg       G_M8298_IG31
                         ;; size=9 bbWeight=0.22 PerfScore 0.89
-G_M8298_IG11:        ; bbWeight=0.11, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
-       jmp      G_M8298_IG25
+G_M8298_IG09:        ; bbWeight=0.11, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+       jmp      G_M8298_IG24
                        ;; size=5 bbWeight=0.11 PerfScore 0.22
-G_M8298_IG12:        ; bbWeight=0.11, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M8298_IG10:        ; bbWeight=0.11, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        test     ebx, ebx
-       je       SHORT G_M8298_IG17
+       je       SHORT G_M8298_IG16
        mov      ecx, dword ptr [ebp-0x10]
        cmp      dword ptr [ebx+0x04], ecx
-       jl       SHORT G_M8298_IG17
+       jl       SHORT G_M8298_IG16
                       ;; size=12 bbWeight=0.11 PerfScore 0.69
-G_M8298_IG13:        ; bbWeight=0.89, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M8298_IG11:        ; bbWeight=0.89, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebx+4*eax+0x08]
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       SHORT G_M8298_IG09
+       je       SHORT G_M8298_IG07
                        ;; size=8 bbWeight=0.89 PerfScore 2.89
-G_M8298_IG14:        ; bbWeight=0.33, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, byref
+G_M8298_IG12:        ; bbWeight=0.33, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [ebp-0x2C]
        ; gcrRegs +[edx]
        cmp      dword ptr [edx], 0xD1FFAB1E
-       jne      G_M8298_IG41
+       jne      G_M8298_IG40
        cmp      dword ptr [ecx], 0xD1FFAB1E
-       je       G_M8298_IG05
-                       ;; size=27 bbWeight=0.33 PerfScore 2.97
-G_M8298_IG15:        ; bbWeight=0.55, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx edx]
+       jne      SHORT G_M8298_IG13
+       mov      gword ptr [ebp-0x30], ecx
+       ; GC ptr vars +{V09}
+       mov      edx, dword ptr [ecx+0x28]
+       ; gcrRegs -[edx]
+       mov      ecx, gword ptr [ebp-0x2C]
+       cmp      edx, dword ptr [ecx+0x28]
+       je       SHORT G_M8298_IG15
+                       ;; size=37 bbWeight=0.33 PerfScore 5.61
+G_M8298_IG13:        ; bbWeight=0.55, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[ecx]
+       ; GC ptr vars -{V09}
        inc      eax
        mov      ecx, dword ptr [ebp-0x10]
        cmp      eax, ecx
-       jl       SHORT G_M8298_IG13
+       jl       SHORT G_M8298_IG11
                        ;; size=8 bbWeight=0.55 PerfScore 1.38
-G_M8298_IG16:        ; bbWeight=0.89, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       jmp      SHORT G_M8298_IG09
-                       ;; size=2 bbWeight=0.89 PerfScore 1.78
-G_M8298_IG17:        ; bbWeight=0.01, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      eax, dword ptr [ebx+0x04]
-       jae      G_M8298_IG40
+G_M8298_IG14:        ; bbWeight=0.22, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M8298_IG07
+                       ;; size=2 bbWeight=0.22 PerfScore 0.44
+G_M8298_IG15:        ; bbWeight=0.17, gcVars=00000088 {V06 V09}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V03 V09}
        mov      dword ptr [ebp-0x20], eax
+       jmp      SHORT G_M8298_IG22
+                       ;; size=5 bbWeight=0.17 PerfScore 0.49
+G_M8298_IG16:        ; bbWeight=0.01, gcVars=00000080 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V03 V09}
+       cmp      eax, dword ptr [ebx+0x04]
+       jae      G_M8298_IG39
        mov      ecx, gword ptr [ebx+4*eax+0x08]
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       SHORT G_M8298_IG21
-                       ;; size=20 bbWeight=0.01 PerfScore 0.07
-G_M8298_IG18:        ; bbWeight=0.00, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       je       SHORT G_M8298_IG07
+                       ;; size=17 bbWeight=0.01 PerfScore 0.06
+G_M8298_IG17:        ; bbWeight=0.00, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [ebp-0x2C]
        ; gcrRegs +[edx]
        cmp      dword ptr [edx], 0xD1FFAB1E
-       je       SHORT G_M8298_IG22
+       je       SHORT G_M8298_IG20
                         ;; size=11 bbWeight=0.00 PerfScore 0.02
-G_M8298_IG19:        ; bbWeight=0, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M8298_IG18:        ; bbWeight=0, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edx]
        mov      gword ptr [ebp-0x30], ecx
        ; GC ptr vars +{V09}
+       mov      dword ptr [ebp-0x20], eax
        mov      edx, gword ptr [ebp-0x2C]
        ; gcrRegs +[edx]
        mov      ecx, edx
        mov      gword ptr [ebp-0x34], ecx
        mov      edx, gword ptr [ebp-0x30]
        mov      ecx, gword ptr [ebp-0x2C]
-       mov      ecx, dword ptr [ecx]
-       ; gcrRegs -[ecx]
-       mov      ecx, dword ptr [ecx+0x2C]
-       mov      dword ptr [ebp-0x38], ecx
+       mov      eax, dword ptr [ecx]
+       mov      eax, dword ptr [eax+0x2C]
        mov      ecx, gword ptr [ebp-0x34]
-       ; gcrRegs +[ecx]
-       mov      eax, dword ptr [ebp-0x38]
        call     [eax+0x10]<unknown method>
        ; gcrRegs -[ecx edx]
        test     eax, eax
-       mov      ecx, gword ptr [ebp-0x30]
-       ; gcrRegs +[ecx]
-       jne      SHORT G_M8298_IG23
-                       ;; size=41 bbWeight=0 PerfScore 0.00
-G_M8298_IG20:        ; bbWeight=0.01, gcVars=00000080 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[ecx]
-       ; GC ptr vars -{V09}
+       jne      SHORT G_M8298_IG22
        mov      eax, dword ptr [ebp-0x20]
+                     ;; size=38 bbWeight=0 PerfScore 0.00
+G_M8298_IG19:        ; bbWeight=0.01, gcVars=00000080 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V09}
        inc      eax
        cmp      eax, dword ptr [ebp-0x10]
-       jge      G_M8298_IG09
-       jmp      SHORT G_M8298_IG17
-                       ;; size=15 bbWeight=0.01 PerfScore 0.03
-G_M8298_IG21:        ; bbWeight=0.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
-       mov      eax, dword ptr [ebp-0x20]
-       jmp      G_M8298_IG09
-                       ;; size=8 bbWeight=0.00 PerfScore 0.01
...
  
-39 (-5.91%) : 476524.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:MergeWithGlobalList(System.Canon[]):this (Tier1)
@@ -10,15 +10,15 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  8,  4.44)     ref  ->  esi         this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  8,  3.72)     ref  ->  edi         class-hnd single-def <System.__Canon[]>
+;  V01 arg1         [V01,T01] (  8,  3.89)     ref  ->  edi         class-hnd single-def <System.__Canon[]>
 ;  V02 loc0         [V02,T02] ( 17,  4.80)     ref  ->  ebx         class-hnd <System.__Canon[]>
 ;  V03 loc1         [V03,T08] (  5,  1.11)     int  ->  [ebp-0x10]  spill-single-def
 ;  V04 loc2         [V04,T05] (  9,  2.00)     int  ->  [ebp-0x14] 
-;  V05 loc3         [V05,T06] (  6,  1.28)     int  ->  [ebp-0x18] 
+;  V05 loc3         [V05,T06] (  6,  1.44)     int  ->  [ebp-0x18] 
 ;  V06 loc4         [V06,T07] ( 10,  1.11)     ref  ->  [ebp-0x2C]  class-hnd spill-single-def <System.__Canon>
-;  V07 loc5         [V07,T10] (  3,  0.61)   ubyte  ->  [ebp-0x1C] 
-;  V08 loc6         [V08,T03] ( 11,  3.02)     int  ->  [ebp-0x20] 
-;  V09 loc7         [V09,T04] ( 11,  2.63)     ref  ->  [ebp-0x30]  class-hnd <System.__Canon>
+;  V07 loc5         [V07,T09] (  3,  0.78)   ubyte  ->  [ebp-0x1C] 
+;  V08 loc6         [V08,T04] ( 11,  3.02)     int  ->  [ebp-0x20] 
+;  V09 loc7         [V09,T03] ( 11,  2.80)     ref  ->  [ebp-0x30]  class-hnd <System.__Canon>
 ;  V10 loc8         [V10,T17] (  3,  0.22)     int  ->  [ebp-0x24] 
 ;  V11 loc9         [V11    ] (  3,  0.33)     ref  ->  [ebp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.__Canon[]>
 ;* V12 tmp0         [V12    ] (  0,  0   )     int  ->  zero-ref    "spilling helperCall"
@@ -35,11 +35,10 @@
 ;* V23 tmp11        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;  V24 rat0         [V24,T14] (  3,  0.49)     int  ->  edx         "Spilling to split statement for tree"
 ;  V25 rat1         [V25,T15] (  3,  0.44)     int  ->  ebx         "runtime lookup"
-;  V26 rat2         [V26,T09] (  3,  0.62)     int  ->  ebx         "fgMakeTemp is creating a new local variable"
-;  TEMP_02                                     ref  ->  [ebp-0x34]
-;  TEMP_01                                     int  ->  [ebp-0x38]
+;  V26 rat2         [V26,T10] (  3,  0.62)     int  ->  ebx         "fgMakeTemp is creating a new local variable"
+;  TEMP_01                                     ref  ->  [ebp-0x34]
 ;
-; Lcl frame size = 44
+; Lcl frame size = 40
 
 G_M8298_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -47,7 +46,7 @@ G_M8298_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
        push     edi
        push     esi
        push     ebx
-       sub      esp, 44
+       sub      esp, 40
        xor      eax, eax
        mov      dword ptr [ebp-0x28], eax
        mov      dword ptr [ebp-0x34], eax
@@ -60,7 +59,7 @@ G_M8298_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
        mov      ebx, gword ptr [esi+0x04]
        ; gcrRegs +[ebx]
        test     ebx, ebx
-       jne      SHORT G_M8298_IG07
+       jne      SHORT G_M8298_IG05
                        ;; size=7 bbWeight=1 PerfScore 3.25
 G_M8298_IG03:        ; bbWeight=0.78, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ebx]
@@ -78,36 +77,17 @@ G_M8298_IG04:        ; bbWeight=0.78, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.78 PerfScore 2.72
-G_M8298_IG05:        ; bbWeight=0.33, gcVars=00000080 {V06}, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs +[ecx ebx edi]
-       ; GC ptr vars +{V06 V07}
-       mov      gword ptr [ebp-0x30], ecx
-       ; GC ptr vars +{V09}
-       mov      edx, dword ptr [ecx+0x28]
-       mov      ecx, gword ptr [ebp-0x2C]
-       cmp      edx, dword ptr [ecx+0x28]
-       jne      G_M8298_IG15
-                       ;; size=18 bbWeight=0.33 PerfScore 2.64
-G_M8298_IG06:        ; bbWeight=2.67, gcVars=00000090 {V06 V09}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[ecx]
-       ; GC ptr vars -{V07}
-       mov      ecx, gword ptr [ebp-0x30]
-       ; gcrRegs +[ecx]
-       mov      dword ptr [ebp-0x20], eax
-       jmp      G_M8298_IG23
-                       ;; size=11 bbWeight=2.67 PerfScore 10.67
-G_M8298_IG07:        ; bbWeight=0.22, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[ecx]
-       ; GC ptr vars -{V06 V09}
+G_M8298_IG05:        ; bbWeight=0.22, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs +[ebx edi]
        mov      eax, dword ptr [ebx+0x04]
        mov      dword ptr [ebp-0x10], eax
        xor      edx, edx
        mov      dword ptr [ebp-0x14], edx
        xor      ecx, ecx
        cmp      dword ptr [edi+0x04], 0
-       jle      G_M8298_IG36
+       jle      G_M8298_IG35
                         ;; size=23 bbWeight=0.22 PerfScore 1.89
-G_M8298_IG08:        ; bbWeight=0.22, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M8298_IG06:        ; bbWeight=0.22, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      dword ptr [ebp-0x18], ecx
        mov      eax, gword ptr [edi+4*ecx+0x08]
        ; gcrRegs +[eax]
@@ -118,133 +98,140 @@ G_M8298_IG08:        ; bbWeight=0.22, gcrefRegs=000000C8 {ebx esi edi}, byrefReg
        mov      dword ptr [ebp-0x1C], eax
        xor      eax, eax
        cmp      dword ptr [ebp-0x10], 0
-       jg       SHORT G_M8298_IG12
+       jg       SHORT G_M8298_IG10
                         ;; size=23 bbWeight=0.22 PerfScore 1.89
-G_M8298_IG09:        ; bbWeight=0.22, gcVars=00000080 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M8298_IG07:        ; bbWeight=0.22, gcVars=00000080 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      dword ptr [ebp-0x1C], 0
-       jne      G_M8298_IG35
+       jne      G_M8298_IG34
        mov      edx, dword ptr [ebp-0x14]
        test     edx, edx
-       jne      SHORT G_M8298_IG10
+       jne      SHORT G_M8298_IG08
        mov      edx, eax
                        ;; size=19 bbWeight=0.22 PerfScore 1.22
-G_M8298_IG10:        ; bbWeight=0.22, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+G_M8298_IG08:        ; bbWeight=0.22, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
        cmp      dword ptr [ebx+0x04], edx
-       jg       G_M8298_IG32
+       jg       G_M8298_IG31
                         ;; size=9 bbWeight=0.22 PerfScore 0.89
-G_M8298_IG11:        ; bbWeight=0.11, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
-       jmp      G_M8298_IG25
+G_M8298_IG09:        ; bbWeight=0.11, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+       jmp      G_M8298_IG24
                        ;; size=5 bbWeight=0.11 PerfScore 0.22
-G_M8298_IG12:        ; bbWeight=0.11, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M8298_IG10:        ; bbWeight=0.11, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        test     ebx, ebx
-       je       SHORT G_M8298_IG17
+       je       SHORT G_M8298_IG16
        mov      ecx, dword ptr [ebp-0x10]
        cmp      dword ptr [ebx+0x04], ecx
-       jl       SHORT G_M8298_IG17
+       jl       SHORT G_M8298_IG16
                       ;; size=12 bbWeight=0.11 PerfScore 0.69
-G_M8298_IG13:        ; bbWeight=0.89, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M8298_IG11:        ; bbWeight=0.89, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebx+4*eax+0x08]
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       SHORT G_M8298_IG09
+       je       SHORT G_M8298_IG07
                        ;; size=8 bbWeight=0.89 PerfScore 2.89
-G_M8298_IG14:        ; bbWeight=0.33, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, byref
+G_M8298_IG12:        ; bbWeight=0.33, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [ebp-0x2C]
        ; gcrRegs +[edx]
        cmp      dword ptr [edx], 0xD1FFAB1E
-       jne      G_M8298_IG41
+       jne      G_M8298_IG40
        cmp      dword ptr [ecx], 0xD1FFAB1E
-       je       G_M8298_IG05
-                       ;; size=27 bbWeight=0.33 PerfScore 2.97
-G_M8298_IG15:        ; bbWeight=0.55, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx edx]
+       jne      SHORT G_M8298_IG13
+       mov      gword ptr [ebp-0x30], ecx
+       ; GC ptr vars +{V09}
+       mov      edx, dword ptr [ecx+0x28]
+       ; gcrRegs -[edx]
+       mov      ecx, gword ptr [ebp-0x2C]
+       cmp      edx, dword ptr [ecx+0x28]
+       je       SHORT G_M8298_IG15
+                       ;; size=37 bbWeight=0.33 PerfScore 5.61
+G_M8298_IG13:        ; bbWeight=0.55, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[ecx]
+       ; GC ptr vars -{V09}
        inc      eax
        mov      ecx, dword ptr [ebp-0x10]
        cmp      eax, ecx
-       jl       SHORT G_M8298_IG13
+       jl       SHORT G_M8298_IG11
                        ;; size=8 bbWeight=0.55 PerfScore 1.38
-G_M8298_IG16:        ; bbWeight=0.89, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       jmp      SHORT G_M8298_IG09
-                       ;; size=2 bbWeight=0.89 PerfScore 1.78
-G_M8298_IG17:        ; bbWeight=0.01, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      eax, dword ptr [ebx+0x04]
-       jae      G_M8298_IG40
+G_M8298_IG14:        ; bbWeight=0.22, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M8298_IG07
+                       ;; size=2 bbWeight=0.22 PerfScore 0.44
+G_M8298_IG15:        ; bbWeight=0.17, gcVars=00000088 {V06 V09}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V03 V09}
        mov      dword ptr [ebp-0x20], eax
+       jmp      SHORT G_M8298_IG22
+                       ;; size=5 bbWeight=0.17 PerfScore 0.49
+G_M8298_IG16:        ; bbWeight=0.01, gcVars=00000080 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V03 V09}
+       cmp      eax, dword ptr [ebx+0x04]
+       jae      G_M8298_IG39
        mov      ecx, gword ptr [ebx+4*eax+0x08]
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       SHORT G_M8298_IG21
-                       ;; size=20 bbWeight=0.01 PerfScore 0.07
-G_M8298_IG18:        ; bbWeight=0.00, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       je       SHORT G_M8298_IG07
+                       ;; size=17 bbWeight=0.01 PerfScore 0.06
+G_M8298_IG17:        ; bbWeight=0.00, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, gword ptr [ebp-0x2C]
        ; gcrRegs +[edx]
        cmp      dword ptr [edx], 0xD1FFAB1E
-       je       SHORT G_M8298_IG22
+       je       SHORT G_M8298_IG20
                         ;; size=11 bbWeight=0.00 PerfScore 0.02
-G_M8298_IG19:        ; bbWeight=0, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M8298_IG18:        ; bbWeight=0, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edx]
        mov      gword ptr [ebp-0x30], ecx
        ; GC ptr vars +{V09}
+       mov      dword ptr [ebp-0x20], eax
        mov      edx, gword ptr [ebp-0x2C]
        ; gcrRegs +[edx]
        mov      ecx, edx
        mov      gword ptr [ebp-0x34], ecx
        mov      edx, gword ptr [ebp-0x30]
        mov      ecx, gword ptr [ebp-0x2C]
-       mov      ecx, dword ptr [ecx]
-       ; gcrRegs -[ecx]
-       mov      ecx, dword ptr [ecx+0x2C]
-       mov      dword ptr [ebp-0x38], ecx
+       mov      eax, dword ptr [ecx]
+       mov      eax, dword ptr [eax+0x2C]
        mov      ecx, gword ptr [ebp-0x34]
-       ; gcrRegs +[ecx]
-       mov      eax, dword ptr [ebp-0x38]
        call     [eax+0x10]<unknown method>
        ; gcrRegs -[ecx edx]
        test     eax, eax
-       mov      ecx, gword ptr [ebp-0x30]
-       ; gcrRegs +[ecx]
-       jne      SHORT G_M8298_IG23
-                       ;; size=41 bbWeight=0 PerfScore 0.00
-G_M8298_IG20:        ; bbWeight=0.01, gcVars=00000080 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[ecx]
-       ; GC ptr vars -{V09}
+       jne      SHORT G_M8298_IG22
        mov      eax, dword ptr [ebp-0x20]
+                     ;; size=38 bbWeight=0 PerfScore 0.00
+G_M8298_IG19:        ; bbWeight=0.01, gcVars=00000080 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V09}
        inc      eax
        cmp      eax, dword ptr [ebp-0x10]
-       jge      G_M8298_IG09
-       jmp      SHORT G_M8298_IG17
-                       ;; size=15 bbWeight=0.01 PerfScore 0.03
-G_M8298_IG21:        ; bbWeight=0.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
-       mov      eax, dword ptr [ebp-0x20]
-       jmp      G_M8298_IG09
-                       ;; size=8 bbWeight=0.00 PerfScore 0.01
...
  
-35 (-5.89%) : 327638.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:MergeWithGlobalList(System.Canon[]):this (Tier1)
@@ -10,15 +10,15 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T09] (  8,  5.17)     ref  ->  [ebp-0x30]  this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  8,262.39)     ref  ->  [ebp-0x34]  class-hnd single-def <System.__Canon[]>
-;  V02 loc0         [V02,T06] ( 17, 41.30)     ref  ->  [ebp-0x38]  class-hnd <System.__Canon[]>
-;  V03 loc1         [V03,T07] (  5, 35.16)     int  ->  [ebp-0x10]  spill-single-def
+;  V01 arg1         [V01,T04] (  8, 37.20)     ref  ->  [ebp-0x34]  class-hnd single-def <System.__Canon[]>
+;  V02 loc0         [V02,T03] ( 17, 41.30)     ref  ->  registers   class-hnd <System.__Canon[]>
+;  V03 loc1         [V03,T06] (  5, 35.16)     int  ->  [ebp-0x10]  spill-single-def
 ;  V04 loc2         [V04,T10] (  9,  6.76)     int  ->  [ebp-0x14] 
-;  V05 loc3         [V05,T02] (  6,261.88)     int  ->  [ebp-0x18] 
-;  V06 loc4         [V06,T08] (  9, 35.03)     ref  ->  [ebp-0x3C]  class-hnd spill-single-def <System.__Canon>
-;* V07 loc5         [V07,T03] (  0,  0   )   ubyte  ->  zero-ref   
-;  V08 loc6         [V08,T04] ( 11,133.35)     int  ->  [ebp-0x1C] 
-;  V09 loc7         [V09,T00] ( 10,387.07)     ref  ->  edi         class-hnd <System.__Canon>
+;  V05 loc3         [V05,T05] (  6, 36.68)     int  ->  [ebp-0x18] 
+;  V06 loc4         [V06,T07] (  9, 35.03)     ref  ->  [ebp-0x38]  class-hnd spill-single-def <System.__Canon>
+;* V07 loc5         [V07,T08] (  0,  0   )   ubyte  ->  zero-ref   
+;  V08 loc6         [V08,T01] ( 11,133.35)     int  ->  [ebp-0x1C] 
+;  V09 loc7         [V09,T00] ( 10,161.88)     ref  ->  edi         class-hnd <System.__Canon>
 ;  V10 loc8         [V10,T17] (  3,  0.44)     int  ->  [ebp-0x20] 
 ;  V11 loc9         [V11    ] (  3,  0.66)     ref  ->  [ebp-0x24]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.__Canon[]>
 ;* V12 tmp0         [V12    ] (  0,  0   )     int  ->  zero-ref    "spilling helperCall"
@@ -26,7 +26,7 @@
 ;* V14 tmp2         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeMethodInfo>
 ;* V15 tmp3         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V16 tmp4         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Reflection.RuntimeMethodInfo>
-;* V17 tmp5         [V17,T05] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Reflection.RuntimeMethodInfo>
+;* V17 tmp5         [V17,T02] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Reflection.RuntimeMethodInfo>
 ;  V18 tmp6         [V18,T16] (  4,  0.60)     int  ->  [ebp-0x28]  "Inline return value spill temp"
 ;  V19 tmp7         [V19,T12] (  3,  0.99)     int  ->  edx         "Inlining Arg"
 ;  V20 tmp8         [V20,T18] (  3,  0.44)     int  ->  edx         "Inline return value spill temp"
@@ -36,10 +36,10 @@
 ;  V24 rat0         [V24,T14] (  3,  0.97)     int  ->  [ebp-0x2C]  spill-single-def "Spilling to split statement for tree"
 ;  V25 rat1         [V25,T15] (  3,  0.88)     int  ->  edx         "runtime lookup"
 ;  V26 rat2         [V26,T11] (  3,  1.23)     int  ->  edx         "fgMakeTemp is creating a new local variable"
-;  TEMP_02                                     ref  ->  [ebp-0x40]
-;  TEMP_01                                     int  ->  [ebp-0x44]
+;  TEMP_02                                     ref  ->  [ebp-0x3C]
+;  TEMP_01                                     int  ->  [ebp-0x40]
 ;
-; Lcl frame size = 56
+; Lcl frame size = 52
 
 G_M8298_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -47,10 +47,10 @@ G_M8298_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
        push     edi
        push     esi
        push     ebx
-       sub      esp, 56
+       sub      esp, 52
        xor      eax, eax
        mov      dword ptr [ebp-0x24], eax
-       mov      dword ptr [ebp-0x40], eax
+       mov      dword ptr [ebp-0x3C], eax
        mov      gword ptr [ebp-0x30], ecx
        ; GC ptr vars +{V00}
        mov      esi, edx
@@ -72,73 +72,68 @@ G_M8298_IG03:        ; bbWeight=0.90, gcrefRegs=00000048 {ebx esi}, byrefRegs=00
        mov      dword ptr [ebp-0x14], edx
        xor      ecx, ecx
        cmp      dword ptr [esi+0x04], 0
-       jle      G_M8298_IG17
+       jle      G_M8298_IG27
                         ;; size=23 bbWeight=0.90 PerfScore 7.67
 G_M8298_IG04:        ; bbWeight=0.90, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
        mov      dword ptr [ebp-0x18], ecx
        mov      edi, gword ptr [esi+4*ecx+0x08]
        ; gcrRegs +[edi]
-       mov      gword ptr [ebp-0x3C], edi
+       mov      gword ptr [ebp-0x38], edi
        ; GC ptr vars +{V06}
        xor      edx, edx
        test     eax, eax
        jle      SHORT G_M8298_IG12
                        ;; size=16 bbWeight=0.90 PerfScore 4.96
-G_M8298_IG05:        ; bbWeight=0.45, gcVars=00000300 {V00 V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M8298_IG05:        ; bbWeight=0.45, gcVars=00000280 {V00 V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        test     ebx, ebx
        je       SHORT G_M8298_IG11
        test     edi, edi
        je       SHORT G_M8298_IG10
        cmp      dword ptr [edi], 0xD1FFAB1E
-       jne      G_M8298_IG21
+       jne      SHORT G_M8298_IG18
        cmp      dword ptr [ebx+0x04], eax
        jl       SHORT G_M8298_IG09
-                       ;; size=25 bbWeight=0.45 PerfScore 4.74
+                       ;; size=21 bbWeight=0.45 PerfScore 4.74
 G_M8298_IG06:        ; bbWeight=32.36, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edi]
-       mov      gword ptr [ebp-0x38], ebx
-       ; GC ptr vars +{V02}
        mov      edi, gword ptr [ebx+4*edx+0x08]
        ; gcrRegs +[edi]
        test     edi, edi
-       je       G_M8298_IG24
-                       ;; size=15 bbWeight=32.36 PerfScore 137.51
-G_M8298_IG07:        ; bbWeight=31.85, gcVars=00000340 {V00 V02 V06}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[ebx]
+       je       G_M8298_IG21
+                       ;; size=12 bbWeight=32.36 PerfScore 105.16
+G_M8298_IG07:        ; bbWeight=31.85, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        cmp      dword ptr [edi], 0xD1FFAB1E
-       jne      SHORT G_M8298_IG19
+       jne      SHORT G_M8298_IG16
        mov      eax, dword ptr [edi+0x28]
-       mov      ebx, gword ptr [ebp-0x3C]
-       ; gcrRegs +[ebx]
-       cmp      eax, dword ptr [ebx+0x28]
-       jne      SHORT G_M8298_IG19
+       mov      ecx, gword ptr [ebp-0x38]
+       ; gcrRegs +[ecx]
+       cmp      eax, dword ptr [ecx+0x28]
+       je       SHORT G_M8298_IG15
                      ;; size=19 bbWeight=31.85 PerfScore 350.34
-G_M8298_IG08:        ; bbWeight=257.37, gcVars=00000240 {V00 V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[ebx]
-       ; GC ptr vars -{V06}
-       jmp      SHORT G_M8298_IG15
-                       ;; size=2 bbWeight=257.37 PerfScore 514.73
-G_M8298_IG09:        ; bbWeight=0.23, gcVars=00000300 {V00 V06}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[edi] +[ebx]
-       ; GC ptr vars -{V02} +{V08}
+G_M8298_IG08:        ; bbWeight=32.57, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[ecx edi]
+       mov      ecx, gword ptr [ebp-0x38]
+       ; gcrRegs +[ecx]
+       jmp      SHORT G_M8298_IG16
+                       ;; size=5 bbWeight=32.57 PerfScore 97.72
+G_M8298_IG09:        ; bbWeight=0.23, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[ecx]
        mov      eax, dword ptr [ebp-0x10]
-       jmp      SHORT G_M8298_IG21
+       jmp      SHORT G_M8298_IG18
                        ;; size=5 bbWeight=0.23 PerfScore 0.68
 G_M8298_IG10:        ; bbWeight=0.23, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edi]
-       jmp      SHORT G_M8298_IG21
+       jmp      SHORT G_M8298_IG18
                         ;; size=2 bbWeight=0.23 PerfScore 0.45
 G_M8298_IG11:        ; bbWeight=0.23, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       jmp      SHORT G_M8298_IG21
+       jmp      SHORT G_M8298_IG18
                       ;; size=2 bbWeight=0.23 PerfScore 0.45
-G_M8298_IG12:        ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
-       mov      gword ptr [ebp-0x38], ebx
-       ; GC ptr vars +{V02}
-       jmp      G_M8298_IG24
-                       ;; size=8 bbWeight=0.45 PerfScore 1.35
+G_M8298_IG12:        ; bbWeight=0.45, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M8298_IG21
+                       ;; size=2 bbWeight=0.45 PerfScore 0.90
 G_M8298_IG13:        ; bbWeight=0.10, gcVars=00000200 {V00}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[ebx edi]
-       ; GC ptr vars -{V02 V08}
+       ; GC ptr vars -{V06}
        mov      edi, gword ptr [ebp-0x30]
        ; gcrRegs +[edi]
        lea      edx, bword ptr [edi+0x04]
@@ -155,9 +150,8 @@ G_M8298_IG14:        ; bbWeight=0.10, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.10 PerfScore 0.34
-G_M8298_IG15:        ; bbWeight=257.37, gcVars=00000240 {V00 V02}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs +[esi edi]
-       ; GC ptr vars +{V02 V06}
+G_M8298_IG15:        ; bbWeight=32.17, gcVars=00000200 {V00}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs +[ebx esi edi]
        push     edi
        ; gcr arg push 0
        mov      ecx, esi
@@ -166,103 +160,65 @@ G_M8298_IG15:        ; bbWeight=257.37, gcVars=00000240 {V00 V02}, gcrefRegs=000
        call     CORINFO_HELP_ARRADDR_ST
        ; gcrRegs -[ecx edi]
        ; gcr arg pop 1
-                       ;; size=11 bbWeight=257.37 PerfScore 836.44
-G_M8298_IG16:        ; bbWeight=0.90, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       mov      ecx, dword ptr [ebp-0x18]
-       inc      ecx
-       cmp      dword ptr [esi+0x04], ecx
-       mov      eax, dword ptr [ebp-0x10]
-       mov      ebx, gword ptr [ebp-0x38]
-       ; gcrRegs +[ebx]
-       jg       G_M8298_IG04
-                       ;; size=19 bbWeight=0.90 PerfScore 6.54
-G_M8298_IG17:        ; bbWeight=0.90, gcVars=00000200 {V00}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[esi]
-       ; GC ptr vars -{V02 V06}
-       mov      edi, gword ptr [ebp-0x30]
-       ; gcrRegs +[edi]
-       lea      edx, bword ptr [edi+0x04]
-       ; byrRegs +[edx]
-       call     CORINFO_HELP_ASSIGN_REF_EBX
-       ; gcrRegs -[ebx edi]
-       ; byrRegs -[edx]
-                       ;; size=11 bbWeight=0.90 PerfScore 2.26
-G_M8298_IG18:        ; bbWeight=0.90, epilog, nogc, extend
-       lea      esp, [ebp-0x0C]
-       pop      ebx
-       pop      esi
-       pop      edi
-       pop      ebp
-       ret      
-                       ;; size=8 bbWeight=0.90 PerfScore 3.16
-G_M8298_IG19:        ; bbWeight=32.57, gcVars=00000340 {V00 V02 V06}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs +[esi]
-       ; GC ptr vars +{V02 V06 V08}
+       jmp      G_M8298_IG26
+                       ;; size=16 bbWeight=32.17 PerfScore 168.90
+G_M8298_IG16:        ; bbWeight=32.57, gcVars=00000280 {V00 V06}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V06 V07}
        inc      edx
        cmp      edx, dword ptr [ebp-0x10]
-       mov      ebx, gword ptr [ebp-0x38]
-       ; gcrRegs +[ebx]
-       jl       G_M8298_IG06
-                       ;; size=13 bbWeight=32.57 PerfScore 138.44
-G_M8298_IG20:        ; bbWeight=0.45, gcVars=00000300 {V00 V06}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V02 V06 V08}
-       mov      gword ptr [ebp-0x38], ebx
-       ; GC ptr vars +{V02}
-       jmp      SHORT G_M8298_IG24
+       jl       SHORT G_M8298_IG06
+                       ;; size=6 bbWeight=32.57 PerfScore 105.86
+G_M8298_IG17:        ; bbWeight=0.45, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [ebp-0x38]
+       ; gcrRegs +[edi]
+       jmp      SHORT G_M8298_IG21
                      ;; size=5 bbWeight=0.45 PerfScore 1.35
-G_M8298_IG21:        ; bbWeight=0.33, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
-       ; GC ptr vars -{V02}
+G_M8298_IG18:        ; bbWeight=0.33, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edi]
        cmp      edx, dword ptr [ebx+0x04]
        jae      G_M8298_IG40
-       mov      gword ptr [ebp-0x38], ebx
-       ; GC ptr vars +{V02}
        mov      edi, gword ptr [ebx+4*edx+0x08]
        ; gcrRegs +[edi]
        test     edi, edi
-       je       SHORT G_M8298_IG24
-                       ;; size=20 bbWeight=0.33 PerfScore 2.70
-G_M8298_IG22:        ; bbWeight=0.32, gcVars=00000340 {V00 V02 V06}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[ebx]
-       ; GC ptr vars +{V06}
-       mov      eax, gword ptr [ebp-0x3C]
+       je       SHORT G_M8298_IG21
...
  
+13 (+7.88%) : 426589.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
@@ -79,7 +79,7 @@ G_M20817_IG04:        ; bbWeight=0.99, gcrefRegs=00000000 {}, byrefRegs=00000004
 G_M20817_IG05:        ; bbWeight=0.33, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[edx]
        test     eax, eax
-       je       SHORT G_M20817_IG15
+       je       SHORT G_M20817_IG16
                      ;; size=4 bbWeight=0.33 PerfScore 0.41
 G_M20817_IG06:        ; bbWeight=1.32, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        inc      ecx
@@ -90,24 +90,28 @@ G_M20817_IG06:        ; bbWeight=1.32, gcrefRegs=00000000 {}, byrefRegs=00000000
        cmp      ecx, 8
        jl       SHORT G_M20817_IG03
                        ;; size=14 bbWeight=1.32 PerfScore 7.61
-G_M20817_IG07:        ; bbWeight=0.00, gcVars=00000020 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M20817_IG07:        ; bbWeight=0.01, gcVars=00000020 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; byrRegs -[esi]
        ; GC ptr vars -{V05}
-       jmp      SHORT G_M20817_IG15
-                       ;; size=2 bbWeight=0.00 PerfScore 0.00
+       mov      edx, gword ptr [ebp-0x14]
+       ; gcrRegs +[edx]
+       mov      gword ptr [ebp-0x14], edx
+       jmp      SHORT G_M20817_IG16
+                       ;; size=8 bbWeight=0.01 PerfScore 0.03
 G_M20817_IG08:        ; bbWeight=0.99, gcrefRegs=00000000 {}, byrefRegs=00000004 {edx}, byref, isz
+       ; gcrRegs -[edx]
        ; byrRegs +[edx]
        cmp      eax, dword ptr [edx]
-       jne      SHORT G_M20817_IG15
+       jne      SHORT G_M20817_IG16
                      ;; size=4 bbWeight=0.99 PerfScore 3.97
 G_M20817_IG09:        ; bbWeight=0.99, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[edx]
        cmp      esi, 1
-       je       SHORT G_M20817_IG16
+       je       SHORT G_M20817_IG13
                        ;; size=5 bbWeight=0.99 PerfScore 1.24
 G_M20817_IG10:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        test     esi, esi
-       jne      SHORT G_M20817_IG13
+       jne      SHORT G_M20817_IG14
                      ;; size=4 bbWeight=1 PerfScore 1.25
 G_M20817_IG11:        ; bbWeight=0.99, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars -{V01}
@@ -122,9 +126,15 @@ G_M20817_IG12:        ; bbWeight=0.99, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.99 PerfScore 3.47
-G_M20817_IG13:        ; bbWeight=0.01, gcVars=00000020 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M20817_IG13:        ; bbWeight=0.50, gcVars=00000020 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
        ; GC ptr vars +{V01 V05}
+       mov      edx, gword ptr [ebp-0x14]
+       ; gcrRegs +[edx]
+       jmp      SHORT G_M20817_IG18
+                       ;; size=5 bbWeight=0.50 PerfScore 1.49
+G_M20817_IG14:        ; bbWeight=0.01, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[edx]
        mov      ecx, dword ptr [ebp-0x10]
        mov      edx, gword ptr [ebp-0x14]
        ; gcrRegs +[edx]
@@ -132,7 +142,7 @@ G_M20817_IG13:        ; bbWeight=0.01, gcVars=00000020 {V01}, gcrefRegs=00000000
        call     <unknown method>
        ; gcrRegs -[edx] +[eax]
                        ;; size=11 bbWeight=0.01 PerfScore 0.03
-G_M20817_IG14:        ; bbWeight=0.01, epilog, nogc, extend
+G_M20817_IG15:        ; bbWeight=0.01, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -140,18 +150,23 @@ G_M20817_IG14:        ; bbWeight=0.01, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.01 PerfScore 0.03
-G_M20817_IG15:        ; bbWeight=0.01, gcVars=00000020 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M20817_IG16:        ; bbWeight=0.01, gcVars=00000020 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
        ; GC ptr vars +{V01 V05}
        mov      esi, 2
        cmp      esi, 1
        jne      SHORT G_M20817_IG10
                        ;; size=10 bbWeight=0.01 PerfScore 0.01
-G_M20817_IG16:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      eax, gword ptr [ebp-0x14]
+G_M20817_IG17:        ; bbWeight=0.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       mov      edx, gword ptr [ebp-0x14]
+       ; gcrRegs +[edx]
+                       ;; size=3 bbWeight=0.00 PerfScore 0.00
+G_M20817_IG18:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars -{V01 V05}
+       mov      eax, edx
        ; gcrRegs +[eax]
-                      ;; size=3 bbWeight=0 PerfScore 0.00
-G_M20817_IG17:        ; bbWeight=0, epilog, nogc, extend
+                     ;; size=2 bbWeight=0 PerfScore 0.00
+G_M20817_IG19:        ; bbWeight=0, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -160,6 +175,6 @@ G_M20817_IG17:        ; bbWeight=0, epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 165, prolog size 11, PerfScore 51.99, instruction count 73, allocated bytes for code 165 (MethodHash=5919aeae) for method System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
+; Total bytes of code 178, prolog size 11, PerfScore 53.52, instruction count 78, allocated bytes for code 178 (MethodHash=5919aeae) for method System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
 ; ============================================================
 
  
+21 (+9.63%) : 450497.dasm - Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (Tier0-FullOpts)
@@ -42,15 +42,15 @@ G_M52602_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000004
        mov      edx, 1
        ; byrRegs -[edx]
        test     eax, eax
-       jle      G_M52602_IG12
+       jle      G_M52602_IG14
                      ;; size=18 bbWeight=1 PerfScore 4.50
-G_M52602_IG03:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+G_M52602_IG03:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        lea      esi, [edx+0x01]
        mov      dword ptr [ebp-0x18], esi
        mov      edi, esi
        cmp      edi, eax
-       jg       G_M52602_IG11
-                       ;; size=16 bbWeight=4 PerfScore 12.00
+       jg       SHORT G_M52602_IG10
+                       ;; size=12 bbWeight=4 PerfScore 12.00
 G_M52602_IG04:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        mov      ebx, 1
        test     ecx, ecx
@@ -60,7 +60,7 @@ G_M52602_IG05:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        test     eax, eax
        jl       SHORT G_M52602_IG08
        cmp      dword ptr [ecx+0x04], eax
-       jle      SHORT G_M52602_IG09
+       jle      SHORT G_M52602_IG11
                         ;; size=9 bbWeight=8 PerfScore 42.00
 G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        mov      gword ptr [ebp-0x20], ecx
@@ -70,14 +70,14 @@ G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=0000
        mov      ecx, esi
        mov      eax, dword ptr [ecx+0x04]
        cmp      edx, eax
-       jae      G_M52602_IG13
+       jae      G_M52602_IG17
        mov      ecx, dword ptr [ecx+4*edx+0x08]
        ; gcrRegs -[ecx]
        mov      dword ptr [ebp-0x14], ecx
        mov      ecx, esi
        ; gcrRegs +[ecx]
        cmp      edi, eax
-       jae      SHORT G_M52602_IG13
+       jae      G_M52602_IG17
        mov      eax, dword ptr [ecx+4*edi+0x08]
        mov      ecx, dword ptr [ebp-0x14]
        ; gcrRegs -[ecx]
@@ -88,17 +88,31 @@ G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=0000
        mov      ecx, gword ptr [ebp-0x20]
        ; gcrRegs +[ecx]
        jle      SHORT G_M52602_IG06
-                      ;; size=55 bbWeight=63.36 PerfScore 1235.52
-G_M52602_IG07:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=59 bbWeight=63.36 PerfScore 1235.52
+G_M52602_IG07:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        ; GC ptr vars -{V00}
-       jmp      SHORT G_M52602_IG10
-                       ;; size=2 bbWeight=8 PerfScore 16.00
+       mov      gword ptr [ebp-0x20], ecx
+       ; GC ptr vars +{V00}
+       mov      eax, dword ptr [ebp-0x10]
+       jmp      SHORT G_M52602_IG12
+                       ;; size=8 bbWeight=16 PerfScore 64.00
 G_M52602_IG08:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-                      ;; size=0 bbWeight=4 PerfScore 0.00
-G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; GC ptr vars -{V00}
+       jmp      SHORT G_M52602_IG11
+                       ;; size=2 bbWeight=4 PerfScore 8.00
+G_M52602_IG09:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M52602_IG11
+                       ;; size=2 bbWeight=8 PerfScore 16.00
+G_M52602_IG10:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       mov      gword ptr [ebp-0x20], ecx
+       ; GC ptr vars +{V00}
+       jmp      SHORT G_M52602_IG13
+                       ;; size=5 bbWeight=2 PerfScore 6.00
+G_M52602_IG11:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; GC ptr vars -{V00}
        cmp      ebx, dword ptr [ecx+0x04]
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      gword ptr [ebp-0x20], ecx
        ; GC ptr vars +{V00}
        mov      esi, gword ptr [ecx+4*ebx+0x08]
@@ -109,13 +123,13 @@ G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000
        ; gcrRegs -[ecx]
        mov      dword ptr [ebp-0x1C], ecx
        cmp      edx, ecx
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      esi, dword ptr [esi+4*edx+0x08]
        ; gcrRegs -[esi]
        mov      ecx, gword ptr [ebp-0x24]
        ; gcrRegs +[ecx]
        cmp      edi, dword ptr [ebp-0x1C]
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      ecx, dword ptr [ecx+4*edi+0x08]
        ; gcrRegs -[ecx]
        mov      eax, gword ptr [ebp-0x24]
@@ -126,25 +140,25 @@ G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000
        mov      eax, dword ptr [ebp-0x10]
        ; gcrRegs -[eax]
        cmp      ebx, eax
-       mov      ecx, gword ptr [ebp-0x20]
-       ; gcrRegs +[ecx]
-       jle      SHORT G_M52602_IG09
-                       ;; size=61 bbWeight=0.64 PerfScore 16.64
-G_M52602_IG10:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
-       ; GC ptr vars -{V00 V11}
+       jle      SHORT G_M52602_IG16
+                       ;; size=58 bbWeight=0.64 PerfScore 16.00
+G_M52602_IG12:        ; bbWeight=16, gcVars=00000800 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V11}
        inc      edi
-       mov      eax, dword ptr [ebp-0x10]
        cmp      edi, eax
-       jle      G_M52602_IG04
-                       ;; size=12 bbWeight=16 PerfScore 40.00
-G_M52602_IG11:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+       jle      SHORT G_M52602_IG15
+                       ;; size=5 bbWeight=16 PerfScore 24.00
+G_M52602_IG13:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      esi, dword ptr [ebp-0x18]
        mov      edx, esi
        cmp      edx, eax
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
        jle      G_M52602_IG03
-                     ;; size=13 bbWeight=4 PerfScore 10.00
-G_M52602_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+                        ;; size=16 bbWeight=4 PerfScore 14.00
+G_M52602_IG14:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
        ; gcrRegs -[ecx]
+       ; GC ptr vars -{V00}
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -152,11 +166,25 @@ G_M52602_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        pop      ebp
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
-G_M52602_IG13:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M52602_IG15:        ; bbWeight=8, gcVars=00000800 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars +{V00 V11}
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
+       jmp      G_M52602_IG04
+                       ;; size=8 bbWeight=8 PerfScore 24.00
+G_M52602_IG16:        ; bbWeight=0.32, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[ecx]
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
+       jmp      SHORT G_M52602_IG11
+                       ;; size=5 bbWeight=0.32 PerfScore 0.96
+G_M52602_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[ecx]
+       ; GC ptr vars -{V00 V11}
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 218, prolog size 9, PerfScore 1408.66, instruction count 82, allocated bytes for code 218 (MethodHash=2f153285) for method Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (Tier0-FullOpts)
+; Total bytes of code 239, prolog size 9, PerfScore 1498.98, instruction count 90, allocated bytes for code 239 (MethodHash=2f153285) for method Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (Tier0-FullOpts)
 ; ============================================================
 
  
+21 (+9.63%) : 189208.dasm - Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (FullOpts)
@@ -42,15 +42,15 @@ G_M52602_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000004
        mov      edx, 1
        ; byrRegs -[edx]
        test     eax, eax
-       jle      G_M52602_IG12
+       jle      G_M52602_IG14
                      ;; size=18 bbWeight=1 PerfScore 4.50
-G_M52602_IG03:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+G_M52602_IG03:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        lea      esi, [edx+0x01]
        mov      dword ptr [ebp-0x18], esi
        mov      edi, esi
        cmp      edi, eax
-       jg       G_M52602_IG11
-                       ;; size=16 bbWeight=4 PerfScore 12.00
+       jg       SHORT G_M52602_IG10
+                       ;; size=12 bbWeight=4 PerfScore 12.00
 G_M52602_IG04:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        mov      ebx, 1
        test     ecx, ecx
@@ -60,7 +60,7 @@ G_M52602_IG05:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        test     eax, eax
        jl       SHORT G_M52602_IG08
        cmp      dword ptr [ecx+0x04], eax
-       jle      SHORT G_M52602_IG09
+       jle      SHORT G_M52602_IG11
                         ;; size=9 bbWeight=8 PerfScore 42.00
 G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        mov      gword ptr [ebp-0x20], ecx
@@ -70,14 +70,14 @@ G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=0000
        mov      ecx, esi
        mov      eax, dword ptr [ecx+0x04]
        cmp      edx, eax
-       jae      G_M52602_IG13
+       jae      G_M52602_IG17
        mov      ecx, dword ptr [ecx+4*edx+0x08]
        ; gcrRegs -[ecx]
        mov      dword ptr [ebp-0x14], ecx
        mov      ecx, esi
        ; gcrRegs +[ecx]
        cmp      edi, eax
-       jae      SHORT G_M52602_IG13
+       jae      G_M52602_IG17
        mov      eax, dword ptr [ecx+4*edi+0x08]
        mov      ecx, dword ptr [ebp-0x14]
        ; gcrRegs -[ecx]
@@ -88,17 +88,31 @@ G_M52602_IG06:        ; bbWeight=63.36, gcrefRegs=00000002 {ecx}, byrefRegs=0000
        mov      ecx, gword ptr [ebp-0x20]
        ; gcrRegs +[ecx]
        jle      SHORT G_M52602_IG06
-                      ;; size=55 bbWeight=63.36 PerfScore 1235.52
-G_M52602_IG07:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=59 bbWeight=63.36 PerfScore 1235.52
+G_M52602_IG07:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        ; GC ptr vars -{V00}
-       jmp      SHORT G_M52602_IG10
-                       ;; size=2 bbWeight=8 PerfScore 16.00
+       mov      gword ptr [ebp-0x20], ecx
+       ; GC ptr vars +{V00}
+       mov      eax, dword ptr [ebp-0x10]
+       jmp      SHORT G_M52602_IG12
+                       ;; size=8 bbWeight=16 PerfScore 64.00
 G_M52602_IG08:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-                      ;; size=0 bbWeight=4 PerfScore 0.00
-G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; GC ptr vars -{V00}
+       jmp      SHORT G_M52602_IG11
+                       ;; size=2 bbWeight=4 PerfScore 8.00
+G_M52602_IG09:        ; bbWeight=8, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M52602_IG11
+                       ;; size=2 bbWeight=8 PerfScore 16.00
+G_M52602_IG10:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       mov      gword ptr [ebp-0x20], ecx
+       ; GC ptr vars +{V00}
+       jmp      SHORT G_M52602_IG13
+                       ;; size=5 bbWeight=2 PerfScore 6.00
+G_M52602_IG11:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+       ; GC ptr vars -{V00}
        cmp      ebx, dword ptr [ecx+0x04]
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      gword ptr [ebp-0x20], ecx
        ; GC ptr vars +{V00}
        mov      esi, gword ptr [ecx+4*ebx+0x08]
@@ -109,13 +123,13 @@ G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000
        ; gcrRegs -[ecx]
        mov      dword ptr [ebp-0x1C], ecx
        cmp      edx, ecx
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      esi, dword ptr [esi+4*edx+0x08]
        ; gcrRegs -[esi]
        mov      ecx, gword ptr [ebp-0x24]
        ; gcrRegs +[ecx]
        cmp      edi, dword ptr [ebp-0x1C]
-       jae      SHORT G_M52602_IG13
+       jae      SHORT G_M52602_IG17
        mov      ecx, dword ptr [ecx+4*edi+0x08]
        ; gcrRegs -[ecx]
        mov      eax, gword ptr [ebp-0x24]
@@ -126,25 +140,25 @@ G_M52602_IG09:        ; bbWeight=0.64, gcrefRegs=00000002 {ecx}, byrefRegs=00000
        mov      eax, dword ptr [ebp-0x10]
        ; gcrRegs -[eax]
        cmp      ebx, eax
-       mov      ecx, gword ptr [ebp-0x20]
-       ; gcrRegs +[ecx]
-       jle      SHORT G_M52602_IG09
-                       ;; size=61 bbWeight=0.64 PerfScore 16.64
-G_M52602_IG10:        ; bbWeight=16, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
-       ; GC ptr vars -{V00 V11}
+       jle      SHORT G_M52602_IG16
+                       ;; size=58 bbWeight=0.64 PerfScore 16.00
+G_M52602_IG12:        ; bbWeight=16, gcVars=00000800 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V11}
        inc      edi
-       mov      eax, dword ptr [ebp-0x10]
        cmp      edi, eax
-       jle      G_M52602_IG04
-                       ;; size=12 bbWeight=16 PerfScore 40.00
-G_M52602_IG11:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+       jle      SHORT G_M52602_IG15
+                       ;; size=5 bbWeight=16 PerfScore 24.00
+G_M52602_IG13:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      esi, dword ptr [ebp-0x18]
        mov      edx, esi
        cmp      edx, eax
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
        jle      G_M52602_IG03
-                     ;; size=13 bbWeight=4 PerfScore 10.00
-G_M52602_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
+                        ;; size=16 bbWeight=4 PerfScore 14.00
+G_M52602_IG14:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
        ; gcrRegs -[ecx]
+       ; GC ptr vars -{V00}
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -152,11 +166,25 @@ G_M52602_IG12:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        pop      ebp
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
-G_M52602_IG13:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M52602_IG15:        ; bbWeight=8, gcVars=00000800 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars +{V00 V11}
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
+       jmp      G_M52602_IG04
+                       ;; size=8 bbWeight=8 PerfScore 24.00
+G_M52602_IG16:        ; bbWeight=0.32, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[ecx]
+       mov      ecx, gword ptr [ebp-0x20]
+       ; gcrRegs +[ecx]
+       jmp      SHORT G_M52602_IG11
+                       ;; size=5 bbWeight=0.32 PerfScore 0.96
+G_M52602_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[ecx]
+       ; GC ptr vars -{V00 V11}
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 218, prolog size 9, PerfScore 1408.66, instruction count 82, allocated bytes for code 218 (MethodHash=2f153285) for method Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (FullOpts)
+; Total bytes of code 239, prolog size 9, PerfScore 1498.98, instruction count 90, allocated bytes for code 239 (MethodHash=2f153285) for method Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (FullOpts)
 ; ============================================================
 
  
  
libraries.crossgen2.windows.x86.checked.mch
-46 (-7.15%) : 233879.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
@@ -11,24 +11,25 @@
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Microsoft.VisualBasic.CompilerServices.VBBinder>
 ;  V01 arg1         [V01,T10] (  3,  3   )     ref  ->  edx         class-hnd single-def <System.Reflection.MethodBase>
-;  V02 arg2         [V02,T15] (  1,  1   )     ref  ->  [ebp+0x08]  class-hnd single-def <System.Reflection.MethodBase>
-;  V03 loc0         [V03,T11] (  3,  2   )   ubyte  ->  eax        
-;  V04 loc1         [V04,T03] ( 13, 13.08)     ref  ->  esi         class-hnd single-def <<unknown class>>
-;  V05 loc2         [V05,T04] ( 13, 13.08)     ref  ->  edi         class-hnd single-def <<unknown class>>
-;  V06 loc3         [V06,T00] ( 37, 56.16)     int  ->  [ebp-0x10] 
-;  V07 loc4         [V07,T01] ( 10, 16   )     ref  ->  [ebp-0x14]  class-hnd <<unknown class>>
-;  V08 loc5         [V08,T02] ( 10, 16   )     ref  ->  [ebp-0x18]  class-hnd <<unknown class>>
+;  V02 arg2         [V02,T16] (  1,  1   )     ref  ->  [ebp+0x08]  class-hnd single-def <System.Reflection.MethodBase>
+;  V03 loc0         [V03,T12] (  3,  2   )   ubyte  ->  eax        
+;  V04 loc1         [V04,T04] (  9, 12.04)     ref  ->  esi         class-hnd single-def <<unknown class>>
+;  V05 loc2         [V05,T03] ( 13, 13.08)     ref  ->  edi         class-hnd single-def <<unknown class>>
+;  V06 loc3         [V06,T00] ( 32, 59.62)     int  ->  [ebp-0x10] 
+;  V07 loc4         [V07,T01] ( 10, 16   )     ref  ->  [ebp-0x18]  class-hnd <<unknown class>>
+;  V08 loc5         [V08,T02] ( 10, 16   )     ref  ->  [ebp-0x1C]  class-hnd <<unknown class>>
 ;  V09 loc6         [V09,T05] (  8,  9   )     int  ->  ebx         single-def
-;* V10 loc7         [V10,T16] (  0,  0   )     int  ->  zero-ref    single-def
-;  V11 loc8         [V11,T06] (  6,  6   )     int  ->  edi         single-def
+;* V10 loc7         [V10,T17] (  0,  0   )     int  ->  zero-ref    single-def
+;  V11 loc8         [V11,T11] (  3,  5   )     int  ->  edi         single-def
 ;  V12 loc9         [V12,T07] (  6,  6   )     int  ->  esi         single-def
 ;  V13 tmp0         [V13,T08] (  3,  6   )     int  ->  ebx         "non-inline candidate call"
-;  V14 tmp1         [V14,T12] (  2,  2   )     int  ->  ebx         "non-inline candidate call"
-;  V15 tmp2         [V15,T13] (  2,  2   )     int  ->  ebx         "non-inline candidate call"
-;  V16 tmp3         [V16,T14] (  2,  2   )     int  ->  ebx         "Inline return value spill temp"
+;  V14 tmp1         [V14,T13] (  2,  2   )     int  ->  ebx         "non-inline candidate call"
+;  V15 tmp2         [V15,T14] (  2,  2   )     int  ->  ebx         "non-inline candidate call"
+;  V16 tmp3         [V16,T15] (  2,  2   )     int  ->  ebx         "Inline return value spill temp"
 ;  V17 tmp4         [V17,T09] (  3,  6   )     int  ->  eax         "Inlining Arg"
+;  V18 cse0         [V18,T06] (  8,  7.58)     int  ->  [ebp-0x14]  multi-def "CSE - moderate"
 ;
-; Lcl frame size = 12
+; Lcl frame size = 16
 
 G_M40132_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -36,7 +37,7 @@ G_M40132_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 12
+       sub      esp, 16
                       ;; size=9 bbWeight=1 PerfScore 4.50
 G_M40132_IG02:        ; bbWeight=1, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edx]
@@ -72,11 +73,12 @@ G_M40132_IG02:        ; bbWeight=1, gcrefRegs=00000004 {edx}, byrefRegs=00000000
        xor      eax, eax
        test     ebx, ebx
        jl       G_M40132_IG14
-       cmp      dword ptr [esi+0x04], ebx
+       mov      edx, dword ptr [esi+0x04]
+       cmp      edx, ebx
        jle      G_M40132_IG09
        cmp      dword ptr [edi+0x04], ebx
        jle      SHORT G_M40132_IG09
-                      ;; size=80 bbWeight=1 PerfScore 37.00
+                     ;; size=82 bbWeight=1 PerfScore 36.25
 G_M40132_IG03:        ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      dword ptr [ebp-0x10], eax
        mov      ecx, gword ptr [esi+4*eax+0x08]
@@ -84,7 +86,7 @@ G_M40132_IG03:        ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x14], eax
+       mov      gword ptr [ebp-0x18], eax
        ; GC ptr vars +{V07}
        mov      ecx, eax
        ; gcrRegs +[ecx]
@@ -95,12 +97,12 @@ G_M40132_IG03:        ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        je       SHORT G_M40132_IG05
                        ;; size=32 bbWeight=3.96 PerfScore 69.30
 G_M40132_IG04:        ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
-       mov      ecx, gword ptr [ebp-0x14]
+       mov      ecx, gword ptr [ebp-0x18]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V07}
        call     [<unknown method>]
        ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x14], eax
+       mov      gword ptr [ebp-0x18], eax
        ; GC ptr vars +{V07}
                        ;; size=12 bbWeight=1.98 PerfScore 9.90
 G_M40132_IG05:        ; bbWeight=3.96, gcVars=00000002 {V07}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
@@ -111,7 +113,7 @@ G_M40132_IG05:        ; bbWeight=3.96, gcVars=00000002 {V07}, gcrefRegs=000000C0
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x18], eax
+       mov      gword ptr [ebp-0x1C], eax
        ; GC ptr vars +{V08}
        mov      ecx, eax
        ; gcrRegs +[ecx]
@@ -122,42 +124,43 @@ G_M40132_IG05:        ; bbWeight=3.96, gcVars=00000002 {V07}, gcrefRegs=000000C0
        je       SHORT G_M40132_IG07
                        ;; size=32 bbWeight=3.96 PerfScore 69.30
 G_M40132_IG06:        ; bbWeight=1.98, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
-       mov      ecx, gword ptr [ebp-0x18]
+       mov      ecx, gword ptr [ebp-0x1C]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V08}
        call     [<unknown method>]
        ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x18], eax
+       mov      gword ptr [ebp-0x1C], eax
        ; GC ptr vars +{V08}
                        ;; size=12 bbWeight=1.98 PerfScore 9.90
 G_M40132_IG07:        ; bbWeight=3.96, gcVars=00000006 {V07 V08}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
-       mov      edx, gword ptr [ebp-0x14]
+       mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
-       cmp      edx, gword ptr [ebp-0x18]
+       cmp      edx, gword ptr [ebp-0x1C]
        jne      G_M40132_IG15
        mov      edx, dword ptr [ebp-0x10]
        ; gcrRegs -[edx]
        add      edx, 1
-       jo       G_M40132_IG26
+       jo       G_M40132_IG24
        cmp      edx, ebx
        mov      eax, edx
        jle      SHORT G_M40132_IG03
                        ;; size=30 bbWeight=3.96 PerfScore 30.69
-G_M40132_IG08:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M40132_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars -{V07 V08}
        jmp      G_M40132_IG14
-                        ;; size=5 bbWeight=1 PerfScore 2.00
+                       ;; size=5 bbWeight=0.50 PerfScore 1.00
 G_M40132_IG09:        ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      eax, dword ptr [esi+0x04]
-       jae      G_M40132_IG27
+       mov      edx, dword ptr [esi+0x04]
+       cmp      eax, edx
+       jae      G_M40132_IG25
        mov      dword ptr [ebp-0x10], eax
        mov      ecx, gword ptr [esi+4*eax+0x08]
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x14], eax
+       mov      gword ptr [ebp-0x18], eax
        ; GC ptr vars +{V07}
        mov      ecx, eax
        ; gcrRegs +[ecx]
@@ -166,28 +169,28 @@ G_M40132_IG09:        ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        ; gcrRegs -[eax ecx]
        test     eax, eax
        je       SHORT G_M40132_IG11
-                      ;; size=41 bbWeight=0.04 PerfScore 0.86
+                       ;; size=43 bbWeight=0.04 PerfScore 0.83
 G_M40132_IG10:        ; bbWeight=0.02, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
-       mov      ecx, gword ptr [ebp-0x14]
+       mov      ecx, gword ptr [ebp-0x18]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V07}
        call     [<unknown method>]
        ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x14], eax
+       mov      gword ptr [ebp-0x18], eax
        ; GC ptr vars +{V07}
                        ;; size=12 bbWeight=0.02 PerfScore 0.10
 G_M40132_IG11:        ; bbWeight=0.04, gcVars=00000002 {V07}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
        mov      edx, dword ptr [ebp-0x10]
        cmp      edx, dword ptr [edi+0x04]
-       jae      G_M40132_IG27
+       jae      G_M40132_IG25
        mov      dword ptr [ebp-0x10], edx
        mov      ecx, gword ptr [edi+4*edx+0x08]
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x18], eax
+       mov      gword ptr [ebp-0x1C], eax
        ; GC ptr vars +{V08}
        mov      ecx, eax
        ; gcrRegs +[ecx]
@@ -198,36 +201,37 @@ G_M40132_IG11:        ; bbWeight=0.04, gcVars=00000002 {V07}, gcrefRegs=000000C0
        je       SHORT G_M40132_IG13
                        ;; size=44 bbWeight=0.04 PerfScore 0.90
 G_M40132_IG12:        ; bbWeight=0.02, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
-       mov      ecx, gword ptr [ebp-0x18]
+       mov      ecx, gword ptr [ebp-0x1C]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V08}
        call     [<unknown method>]
        ; gcrRegs -[ecx] +[eax]
        mov      ecx, eax
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x18], ecx
+       mov      gword ptr [ebp-0x1C], ecx
        ; GC ptr vars +{V08}
                        ;; size=14 bbWeight=0.02 PerfScore 0.11
 G_M40132_IG13:        ; bbWeight=0.04, gcVars=00000006 {V07 V08}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax ecx]
-       mov      edx, gword ptr [ebp-0x14]
+       mov      edx, gword ptr [ebp-0x18]
        ; gcrRegs +[edx]
-       cmp      edx, gword ptr [ebp-0x18]
+       cmp      edx, gword ptr [ebp-0x1C]
        jne      SHORT G_M40132_IG15
        mov      eax, dword ptr [ebp-0x10]
        add      eax, 1
-       jo       G_M40132_IG26
+       jo       G_M40132_IG24
        cmp      eax, ebx
        jle      G_M40132_IG09
                        ;; size=28 bbWeight=0.04 PerfScore 0.30
 G_M40132_IG14:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[edx]
        ; GC ptr vars -{V07 V08}
-       mov      ecx, dword ptr [esi+0x04]
-       cmp      ecx, dword ptr [edi+0x04]
-       jle      G_M40132_IG20
+       mov      edx, dword ptr [esi+0x04]
+       mov      dword ptr [ebp-0x14], edx
+       cmp      edx, dword ptr [edi+0x04]
+       jle      SHORT G_M40132_IG18
        add      ebx, 1
-       jo       G_M40132_IG26
+       jo       G_M40132_IG24
        mov      ecx, edi
        ; gcrRegs +[ecx]
        xor      edx, edx
@@ -235,21 +239,18 @@ G_M40132_IG14:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {e
        ; gcrRegs -[ecx edi]
        mov      edi, eax
        cmp      ebx, edi
-       jg       G_M40132_IG24
-       mov      ecx, ebx
-       or       ecx, edi
-       jl       SHORT G_M40132_IG18
-       cmp      dword ptr [esi+0x04], edi
-       jle      SHORT G_M40132_IG18
+       jg       G_M40132_IG22
        jmp      SHORT G_M40132_IG16
-                        ;; size=54 bbWeight=0.50 PerfScore 9.88
+                       ;; size=42 bbWeight=0.50 PerfScore 7.62
 G_M40132_IG15:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi]
        xor      eax, eax
-       jmp      G_M40132_IG25
+       jmp      G_M40132_IG23
...
  
-17 (-5.04%) : 127058.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:IsConflictingOperatorOverloading(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,int,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],int,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):ubyte:this (FullOpts)
@@ -9,7 +9,7 @@
 ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T07] (  3,  2.50)     ref  ->  ebx         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol>
+;  V00 this         [V00,T07] (  3,  2.50)     ref  ->  [ebp-0x1C]  this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol>
 ;  V01 arg1         [V01,T02] (  8,  7   )     ref  ->  esi         class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol>
 ;  V02 arg2         [V02,T09] (  2,  2   )     int  ->  [ebp+0x14]  single-def
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol]>
@@ -18,16 +18,16 @@
 ;  V06 loc0         [V06,T08] (  3,  2   )   ubyte  ->  eax        
 ;  V07 loc1         [V07,T03] (  6,  8   )     int  ->  [ebp-0x10]  spill-single-def
 ;  V08 loc2         [V08,T00] ( 12, 19.04)     int  ->  [ebp-0x14] 
-;  V09 loc3         [V09,T01] (  6, 10   )     ref  ->  [ebp-0x1C]  class-hnd <Microsoft.CodeAnalysis.VisualBasic.Symbol>
-;  V10 loc4         [V10,T04] (  7,  6.50)     ref  ->  [ebp-0x20]  class-hnd <Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol>
+;  V09 loc3         [V09,T01] (  6, 10   )     ref  ->  ebx         class-hnd <Microsoft.CodeAnalysis.VisualBasic.Symbol>
+;  V10 loc4         [V10,T04] (  7,  6.50)     ref  ->  ebx         class-hnd <Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol>
 ;  V11 loc5         [V11,T06] (  5,  4.50)     int  ->  [ebp-0x18] 
 ;* V12 loc6         [V12    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Location]>
 ;* V13 tmp0         [V13    ] (  0,  0   )     int  ->  zero-ref    "non-inline candidate call"
 ;  V14 tmp1         [V14,T05] (  5,  6.04)     ref  ->  edi         single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;  V15 tmp2         [V15,T10] (  3,  1.50)     ref  ->  eax         "field V12.array (fldOffset=0x0)" P-INDEP
-;  TEMP_01                                     int  ->  [ebp-0x24]
+;  TEMP_01                                     int  ->  [ebp-0x20]
 ;
-; Lcl frame size = 24
+; Lcl frame size = 20
 
 G_M32789_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -35,131 +35,125 @@ G_M32789_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 24
-       mov      ebx, ecx
-       ; gcrRegs +[ebx]
+       sub      esp, 20
+       mov      gword ptr [ebp-0x1C], ecx
+       ; GC ptr vars +{V00}
        mov      esi, edx
        ; gcrRegs +[esi]
        mov      edi, gword ptr [ebp+0x10]
        ; gcrRegs +[edi]
-                      ;; size=16 bbWeight=1 PerfScore 6.00
-G_M32789_IG02:        ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=17 bbWeight=1 PerfScore 6.75
+G_M32789_IG02:        ; bbWeight=1, gcVars=00000080 {V00}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        mov      edx, dword ptr [edi+0x04]
        dec      edx
        mov      dword ptr [ebp-0x10], edx
        mov      ecx, dword ptr [ebp+0x0C]
        cmp      ecx, edx
        jg       G_M32789_IG10
-       mov      eax, ecx
-       or       eax, edx
+       mov      ebx, ecx
+       or       ebx, edx
        jl       SHORT G_M32789_IG07
        cmp      dword ptr [edi+0x04], edx
        jle      SHORT G_M32789_IG07
                        ;; size=29 bbWeight=1 PerfScore 11.00
-G_M32789_IG03:        ; bbWeight=3.96, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M32789_IG03:        ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      dword ptr [ebp-0x14], ecx
-       mov      eax, gword ptr [edi+4*ecx+0x08]
-       ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x1C], eax
-       ; GC ptr vars +{V09}
-       mov      ecx, eax
+       mov      ebx, gword ptr [edi+4*ecx+0x08]
+       ; gcrRegs +[ebx]
+       mov      ecx, ebx
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
-       ; gcrRegs -[eax ecx]
+       ; gcrRegs -[ecx]
        cmp      eax, 9
        jne      SHORT G_M32789_IG05
-                      ;; size=25 bbWeight=3.96 PerfScore 45.54
+                      ;; size=22 bbWeight=3.96 PerfScore 41.58
 G_M32789_IG04:        ; bbWeight=1.98, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, gword ptr [ebp-0x1C]
+       mov      ecx, ebx
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V09}
        call     [CORINFO_HELP_READYTORUN_CHKCAST]
-       ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x20], eax
-       ; GC ptr vars +{V10}
-       mov      ecx, eax
+       ; gcrRegs -[ecx ebx] +[eax]
+       mov      ebx, eax
+       ; gcrRegs +[ebx]
+       mov      ecx, ebx
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
-       mov      dword ptr [ebp-0x24], eax
+       mov      dword ptr [ebp-0x20], eax
        mov      ecx, esi
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       cmp      dword ptr [ebp-0x24], eax
+       cmp      dword ptr [ebp-0x20], eax
        jne      SHORT G_M32789_IG05
        push     0x3FFC6
        push     0
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       mov      edx, gword ptr [ebp-0x20]
+       mov      edx, ebx
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-       mov      edx, dword ptr [ebp+0x14]
-       test     eax, edx
+       test     eax, dword ptr [ebp+0x14]
        mov      dword ptr [ebp-0x18], eax
-       mov      dword ptr [ebp+0x14], edx
        je       G_M32789_IG11
-                     ;; size=75 bbWeight=1.98 PerfScore 63.36
-G_M32789_IG05:        ; bbWeight=3.96, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V10}
-       mov      ecx, dword ptr [ebp-0x14]
-       inc      ecx
-       mov      eax, dword ptr [ebp-0x10]
-       cmp      ecx, eax
+                     ;; size=67 bbWeight=1.98 PerfScore 58.41
+G_M32789_IG05:        ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[ebx]
+       mov      ebx, dword ptr [ebp-0x14]
+       inc      ebx
+       cmp      ebx, dword ptr [ebp-0x10]
+       mov      ecx, ebx
        jle      SHORT G_M32789_IG03
-                      ;; size=11 bbWeight=3.96 PerfScore 13.86
-G_M32789_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ebx esi edi]
+                      ;; size=11 bbWeight=3.96 PerfScore 17.82
+G_M32789_IG06:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs -[esi edi]
+       ; GC ptr vars -{V00}
        jmp      SHORT G_M32789_IG10
-                       ;; size=2 bbWeight=1 PerfScore 2.00
-G_M32789_IG07:        ; bbWeight=0.04, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[ebx esi edi]
+                      ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M32789_IG07:        ; bbWeight=0.04, gcVars=00000080 {V00}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs +[esi edi]
+       ; GC ptr vars +{V00 V07}
        cmp      ecx, dword ptr [edi+0x04]
        jae      G_M32789_IG13
        mov      dword ptr [ebp-0x14], ecx
-       mov      eax, gword ptr [edi+4*ecx+0x08]
-       ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x1C], eax
-       ; GC ptr vars +{V09}
-       mov      ecx, eax
+       mov      ebx, gword ptr [edi+4*ecx+0x08]
+       ; gcrRegs +[ebx]
+       mov      ecx, ebx
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
-       ; gcrRegs -[eax ecx]
+       ; gcrRegs -[ecx]
        cmp      eax, 9
        jne      SHORT G_M32789_IG09
-                      ;; size=34 bbWeight=0.04 PerfScore 0.62
+                       ;; size=31 bbWeight=0.04 PerfScore 0.58
 G_M32789_IG08:        ; bbWeight=0.02, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      ecx, gword ptr [ebp-0x1C]
+       mov      ecx, ebx
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V09}
        call     [CORINFO_HELP_READYTORUN_CHKCAST]
-       ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x20], eax
-       ; GC ptr vars +{V10}
-       mov      ecx, eax
+       ; gcrRegs -[ecx ebx] +[eax]
+       mov      ebx, eax
+       ; gcrRegs +[ebx]
+       mov      ecx, ebx
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
-       mov      dword ptr [ebp-0x24], eax
+       mov      dword ptr [ebp-0x20], eax
        mov      ecx, esi
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       cmp      dword ptr [ebp-0x24], eax
+       cmp      dword ptr [ebp-0x20], eax
        jne      SHORT G_M32789_IG09
        push     0x3FFC6
        push     0
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       mov      edx, gword ptr [ebp-0x20]
+       mov      edx, ebx
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
@@ -168,42 +162,43 @@ G_M32789_IG08:        ; bbWeight=0.02, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        test     eax, ecx
        mov      dword ptr [ebp+0x14], ecx
        je       SHORT G_M32789_IG11
-                      ;; size=71 bbWeight=0.02 PerfScore 0.64
-G_M32789_IG09:        ; bbWeight=0.04, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V10}
-       mov      eax, dword ptr [ebp-0x14]
-       inc      eax
+                      ;; size=68 bbWeight=0.02 PerfScore 0.60
+G_M32789_IG09:        ; bbWeight=0.04, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[ebx]
+       mov      ebx, dword ptr [ebp-0x14]
+       inc      ebx
        mov      edx, dword ptr [ebp-0x10]
-       cmp      eax, edx
-       mov      ecx, eax
+       cmp      ebx, edx
+       mov      ecx, ebx
        jle      SHORT G_M32789_IG07
                        ;; size=13 bbWeight=0.04 PerfScore 0.15
-G_M32789_IG10:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ebx esi edi]
+G_M32789_IG10:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs -[esi edi]
+       ; GC ptr vars -{V00 V07}
        xor      eax, eax
        jmp      SHORT G_M32789_IG12
                        ;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M32789_IG11:        ; bbWeight=0.50, gcVars=00000010 {V10}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M32789_IG11:        ; bbWeight=0.50, gcVars=00000080 {V00}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[ebx esi]
-       ; GC ptr vars +{V04 V10}
+       ; GC ptr vars +{V00 V07}
        mov      ecx, esi
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[ecx] +[eax]
...
  
-19 (-4.70%) : 195862.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int
@@ -8,31 +8,31 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T06] (  4,  7   )     ref  ->  [ebp-0x2C]  class-hnd single-def <System.String[]>
+;  V00 arg0         [V00,T06] (  4,  7   )     ref  ->  [ebp-0x28]  class-hnd single-def <System.String[]>
 ;* V01 arg1         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Collections.Generic.IEqualityComparer`1[System.String]>
 ;  V02 arg2         [V02,T09] (  2,  5   )     int  ->  [ebp+0x0C]  single-def
 ;  V03 arg3         [V03,T17] (  1,  1   )     int  ->  [ebp+0x08]  single-def
 ;  V04 loc0         [V04,T11] (  4,  3   )     int  ->  [ebp-0x10]  spill-single-def
 ;  V05 loc1         [V05,T10] (  6,  3   )     int  ->  [ebp-0x14]  spill-single-def
-;  V06 loc2         [V06,T03] ( 10, 22.66)     ref  ->  [ebp-0x30]  class-hnd spill-single-def <int[]>
+;  V06 loc2         [V06,T03] ( 10, 22.66)     ref  ->  [ebp-0x2C]  class-hnd spill-single-def <int[]>
 ;  V07 loc3         [V07,T08] (  4,  5   )     int  ->  [ebp-0x18] 
 ;  V08 loc4         [V08,T16] (  3,  1.50)     ref  ->  esi         class-hnd single-def <int[]>
 ;  V09 loc5         [V09    ] (  2,  1   )  struct ( 8) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Span`1[int]>
 ;  V10 loc6         [V10,T05] (  6, 18.50)     int  ->  edx        
 ;* V11 loc7         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
-;  V12 loc8         [V12,T04] (  6, 20   )     int  ->  [ebp-0x24]  spill-single-def
+;  V12 loc8         [V12,T04] (  6, 20   )     int  ->  ebx        
 ;  V13 loc9         [V13,T02] (  7, 32   )     int  ->  ecx        
 ;  V14 loc10        [V14,T00] ( 12, 74.16)     int  ->  edi        
-;  V15 loc11        [V15,T01] (  5, 34   )   byref  ->  registers  
+;  V15 loc11        [V15,T01] (  5, 34   )   byref  ->  esi        
 ;  V16 tmp0         [V16,T12] (  2,  2   )     ref  ->  eax         single-def "Single return block return value"
 ;  V17 tmp1         [V17    ] (  2,  1   )   byref  ->  [ebp-0x20]  do-not-enreg[X] addr-exposed "field V09._reference (fldOffset=0x0)" P-DEP
 ;  V18 tmp2         [V18    ] (  2,  1   )     int  ->  [ebp-0x1C]  do-not-enreg[X] addr-exposed "field V09._length (fldOffset=0x4)" P-DEP
 ;  V19 tmp3         [V19,T13] (  2,  2   )     ref  ->  ecx         single-def "argument with side effect"
 ;  V20 tmp4         [V20,T14] (  2,  2   )     ref  ->  ecx         single-def "argument with side effect"
 ;  V21 tmp5         [V21,T15] (  2,  2   )     ref  ->  ecx         single-def "argument with side effect"
-;  V22 cse0         [V22,T07] (  4,  6.50)     int  ->  [ebp-0x28]  spill-single-def "CSE - moderate"
+;  V22 cse0         [V22,T07] (  4,  6.50)     int  ->  [ebp-0x24]  spill-single-def "CSE - moderate"
 ;
-; Lcl frame size = 36
+; Lcl frame size = 32
 
 G_M57321_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -40,7 +40,7 @@ G_M57321_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 36
+       sub      esp, 32
        xor      eax, eax
        mov      dword ptr [ebp-0x20], eax
        mov      esi, ecx
@@ -53,19 +53,19 @@ G_M57321_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        inc      ebx
        mov      dword ptr [ebp-0x10], ebx
        mov      ecx, dword ptr [esi+0x04]
-       mov      dword ptr [ebp-0x28], ecx
+       mov      dword ptr [ebp-0x24], ecx
        mov      eax, ecx
        cdq      
        idiv     edx:eax, ebx
        cmp      eax, 5
-       jg       G_M57321_IG18
+       jg       G_M57321_IG14
                        ;; size=29 bbWeight=1 PerfScore 32.50
-G_M57321_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M57321_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        lea      eax, [ebx+4*ebx]
        mov      dword ptr [ebp-0x14], eax
        call     [<unknown method>]
        cmp      eax, dword ptr [ebp-0x14]
-       jl       G_M57321_IG18
+       jl       G_M57321_IG14
        call     [<unknown method>]
        ; gcrRegs +[eax]
        mov      ecx, eax
@@ -74,7 +74,7 @@ G_M57321_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       mov      gword ptr [ebp-0x30], eax
+       mov      gword ptr [ebp-0x2C], eax
        ; GC ptr vars +{V06}
        push     0
        push     dword ptr [ebp-0x14]
@@ -89,11 +89,11 @@ G_M57321_IG03:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        xor      eax, eax
        mov      dword ptr [ebp-0x18], eax
        xor      edx, edx
-       cmp      dword ptr [ebp-0x28], 0
-       jle      G_M57321_IG16
-                       ;; size=90 bbWeight=0.50 PerfScore 16.38
+       cmp      dword ptr [ebp-0x24], 0
+       jle      SHORT G_M57321_IG12
+                       ;; size=86 bbWeight=0.50 PerfScore 16.38
 G_M57321_IG04:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      gword ptr [ebp-0x2C], esi
+       mov      gword ptr [ebp-0x28], esi
        ; GC ptr vars +{V00}
        mov      ebx, gword ptr [esi+4*edx+0x08]
        ; gcrRegs +[ebx]
@@ -102,21 +102,20 @@ G_M57321_IG04:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      dword ptr [ebp+0x0C], edi
        sub      ebx, edi
        lea      ebx, [ebx+4*ebx]
-       mov      dword ptr [ebp-0x24], ebx
        lea      ecx, [ebx+0x05]
        mov      edi, ebx
        cmp      ebx, ecx
-       jge      SHORT G_M57321_IG15
-                       ;; size=30 bbWeight=4 PerfScore 39.00
+       jge      SHORT G_M57321_IG11
+                       ;; size=27 bbWeight=4 PerfScore 35.00
 G_M57321_IG05:        ; bbWeight=2, gcVars=00000048 {V00 V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[esi]
-       mov      eax, gword ptr [ebp-0x30]
+       mov      eax, gword ptr [ebp-0x2C]
        ; gcrRegs +[eax]
        test     eax, eax
-       je       SHORT G_M57321_IG10
+       je       SHORT G_M57321_IG08
        mov      esi, ebx
        or       esi, ecx
-       jl       SHORT G_M57321_IG09
+       jl       SHORT G_M57321_IG08
        cmp      dword ptr [eax+0x04], ecx
        jl       SHORT G_M57321_IG08
                        ;; size=18 bbWeight=2 PerfScore 15.50
@@ -124,64 +123,51 @@ G_M57321_IG06:        ; bbWeight=15.84, gcrefRegs=00000001 {eax}, byrefRegs=0000
        lea      esi, bword ptr [eax+4*edi+0x08]
        ; byrRegs +[esi]
        cmp      dword ptr [esi], 0
-       jl       SHORT G_M57321_IG13
+       jl       SHORT G_M57321_IG09
        inc      edi
        cmp      edi, ecx
        jl       SHORT G_M57321_IG06
                        ;; size=14 bbWeight=15.84 PerfScore 102.96
-G_M57321_IG07:        ; bbWeight=2, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
+G_M57321_IG07:        ; bbWeight=4, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[esi]
-       jmp      SHORT G_M57321_IG15
-                       ;; size=2 bbWeight=2 PerfScore 4.00
-G_M57321_IG08:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
-       jmp      SHORT G_M57321_IG10
-                       ;; size=2 bbWeight=1 PerfScore 2.00
-G_M57321_IG09:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
-                       ;; size=0 bbWeight=1 PerfScore 0.00
-G_M57321_IG10:        ; bbWeight=0.16, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M57321_IG11
+                       ;; size=2 bbWeight=4 PerfScore 8.00
+G_M57321_IG08:        ; bbWeight=0.16, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
        cmp      edi, dword ptr [eax+0x04]
-       jae      G_M57321_IG23
-       lea      ebx, bword ptr [eax+4*edi+0x08]
-       ; byrRegs +[ebx]
-       cmp      dword ptr [ebx], 0
-       mov      esi, ebx
+       jae      G_M57321_IG18
+       lea      esi, bword ptr [eax+4*edi+0x08]
        ; byrRegs +[esi]
-       jl       SHORT G_M57321_IG12
+       cmp      dword ptr [esi], 0
+       jl       SHORT G_M57321_IG09
        inc      edi
        cmp      edi, ecx
-       jl       SHORT G_M57321_IG10
-                       ;; size=25 bbWeight=0.16 PerfScore 1.72
-G_M57321_IG11:        ; bbWeight=2, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
-       ; byrRegs -[ebx esi]
-       jmp      SHORT G_M57321_IG15
-                       ;; size=2 bbWeight=2 PerfScore 4.00
-G_M57321_IG12:        ; bbWeight=0.08, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, byref
-       ; byrRegs +[esi]
-       mov      ebx, dword ptr [ebp-0x24]
-                       ;; size=3 bbWeight=0.08 PerfScore 0.08
-G_M57321_IG13:        ; bbWeight=2, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, byref, isz
+       jl       SHORT G_M57321_IG08
+       jmp      SHORT G_M57321_IG11
+                       ;; size=25 bbWeight=0.16 PerfScore 2.00
+G_M57321_IG09:        ; bbWeight=2, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, byref, isz
        cmp      edi, ebx
-       jne      SHORT G_M57321_IG14
+       jne      SHORT G_M57321_IG10
        mov      ebx, dword ptr [ebp-0x18]
        inc      ebx
        mov      dword ptr [ebp-0x18], ebx
                        ;; size=11 bbWeight=2 PerfScore 7.00
-G_M57321_IG14:        ; bbWeight=2, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, byref
+G_M57321_IG10:        ; bbWeight=2, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, byref
        mov      dword ptr [esi], edx
                        ;; size=2 bbWeight=2 PerfScore 2.00
-G_M57321_IG15:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M57321_IG11:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
        ; byrRegs -[esi]
        cmp      edi, ecx
-       je       SHORT G_M57321_IG17
+       je       SHORT G_M57321_IG13
        inc      edx
-       mov      edi, dword ptr [ebp-0x28]
-       cmp      edi, edx
-       mov      esi, gword ptr [ebp-0x2C]
+       mov      ebx, dword ptr [ebp-0x24]
+       cmp      ebx, edx
+       mov      esi, gword ptr [ebp-0x28]
        ; gcrRegs +[esi]
-       jg       SHORT G_M57321_IG20
-                       ;; size=15 bbWeight=4 PerfScore 19.00
-G_M57321_IG16:        ; bbWeight=0.50, gcVars=00000008 {V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      edi, dword ptr [ebp+0x0C]
+       jg       SHORT G_M57321_IG04
+                       ;; size=18 bbWeight=4 PerfScore 23.00
+G_M57321_IG12:        ; bbWeight=0.50, gcVars=00000008 {V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[esi]
        ; GC ptr vars -{V00 V06}
        xorps    xmm0, xmm0
@@ -191,25 +177,25 @@ G_M57321_IG16:        ; bbWeight=0.50, gcVars=00000008 {V06}, gcrefRegs=00000000
        divsd    xmm0, xmm1
        movsd    xmm1, qword ptr [reloc @RWD00]
        ucomisd  xmm1, xmm0
-       jbe      SHORT G_M57321_IG21
+       jbe      SHORT G_M57321_IG16
                        ;; size=34 bbWeight=0.50 PerfScore 17.33
-G_M57321_IG17:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M57321_IG13:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [<unknown method>]
        ; gcrRegs +[eax]
        mov      ecx, eax
        ; gcrRegs +[ecx]
        push     0
-       mov      edx, gword ptr [ebp-0x30]
+       mov      edx, gword ptr [ebp-0x2C]
        ; gcrRegs +[edx]
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[eax ecx edx]
                        ;; size=21 bbWeight=0.50 PerfScore 5.62
-G_M57321_IG18:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M57321_IG14:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        xor      eax, eax
        ; gcrRegs +[eax]
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M57321_IG19:        ; bbWeight=0.50, epilog, nogc, extend
+G_M57321_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -217,14 +203,9 @@ G_M57321_IG19:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      8
                        ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M57321_IG20:        ; bbWeight=2, gcVars=00000008 {V06}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[eax] +[esi]
+G_M57321_IG16:        ; bbWeight=0.50, gcVars=00000008 {V06}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
...
  
+32 (+4.93%) : 125212.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor:SubstituteTypeParametersIfNeeded(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSubstitution,byref):ubyte:this (FullOpts)
@@ -9,16 +9,16 @@
 ; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  7,  8   )   byref  ->  [ebp-0x44]  this single-def
-;  V01 arg1         [V01,T12] (  4,  6   )     ref  ->  [ebp-0x48]  class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSubstitution>
+;  V00 this         [V00,T06] (  7,  8   )   byref  ->  [ebp-0x4C]  this single-def
+;  V01 arg1         [V01,T12] (  4,  6   )     ref  ->  [ebp-0x50]  class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSubstitution>
 ;  V02 arg2         [V02,T20] (  2,  1   )   byref  ->  [ebp+0x08]  single-def
-;  V03 loc0         [V03,T10] (  7,  8.52)     ref  ->  [ebp-0x4C]  class-hnd exact spill-single-def <<unknown class>>
+;  V03 loc0         [V03,T10] (  7,  8.52)     ref  ->  [ebp-0x54]  class-hnd exact spill-single-def <<unknown class>>
 ;  V04 loc1         [V04,T09] (  7,  9   )   ubyte  ->  [ebp-0x10] 
 ;* V05 loc2         [V05    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeField]>
 ;  V06 loc3         [V06,T17] (  5,  7   )     int  ->  [ebp-0x14]  spill-single-def
 ;  V07 loc4         [V07,T02] ( 15, 27.02)     int  ->  [ebp-0x18] 
 ;* V08 loc5         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeField>
-;  V09 tmp0         [V09,T18] (  3,  6   )     int  ->  ebx         "dup spill"
+;  V09 tmp0         [V09,T18] (  3,  6   )     int  ->  edi         "dup spill"
 ;* V10 tmp1         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.String>
 ;  V11 tmp2         [V11    ] (  4, 16   )  struct ( 8) [ebp-0x20]  do-not-enreg[HS] must-init hidden-struct-arg "location for address-of(RValue)" <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeWithModifiers>
 ;  V12 tmp3         [V12    ] ( 20, 80   )  struct (16) [ebp-0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeField>
@@ -26,17 +26,17 @@
 ;  V14 tmp5         [V14    ] (  2,  2   )  struct (16) [ebp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor>
 ;* V15 tmp6         [V15    ] (  0,  0   )  struct ( 4) zero-ref    single-def "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeField]>
 ;* V16 tmp7         [V16    ] (  0,  0   )   byref  ->  zero-ref   
-;  V17 tmp8         [V17,T13] (  4,  8   )   byref  ->  [ebp-0x50] 
-;  V18 tmp9         [V18,T11] (  6,  8   )     ref  ->  edi        
+;  V17 tmp8         [V17,T13] (  4,  8   )   byref  ->  [ebp-0x58] 
+;  V18 tmp9         [V18,T11] (  6,  8   )     ref  ->  esi        
 ;* V19 tmp10        [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
-;  V20 tmp11        [V20,T03] (  4, 16   )   ubyte  ->  ebx         "Inlining Arg"
+;  V20 tmp11        [V20,T03] (  4, 16   )   ubyte  ->  [ebp-0x44]  "Inlining Arg"
 ;* V21 tmp12        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.Location>
 ;* V22 tmp13        [V22    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V23 tmp14        [V23,T04] (  8, 14   )     ref  ->  registers   "field V05.array (fldOffset=0x0)" P-INDEP
-;  V24 tmp15        [V24,T07] (  6, 10   )     ref  ->  edi         "field V08.Name (fldOffset=0x0)" P-INDEP
-;  V25 tmp16        [V25,T14] (  4,  8   )     ref  ->  [ebp-0x54]  "field V08.Location (fldOffset=0x4)" P-INDEP
-;  V26 tmp17        [V26,T08] (  6, 10   )     ref  ->  [ebp-0x58]  "field V08._type (fldOffset=0x8)" P-INDEP
-;  V27 tmp18        [V27,T15] (  4,  8   )   ubyte  ->  ebx         "field V08.IsKey (fldOffset=0xc)" P-INDEP
+;  V24 tmp15        [V24,T07] (  6, 10   )     ref  ->  esi         "field V08.Name (fldOffset=0x0)" P-INDEP
+;  V25 tmp16        [V25,T14] (  4,  8   )     ref  ->  [ebp-0x5C]  "field V08.Location (fldOffset=0x4)" P-INDEP
+;  V26 tmp17        [V26,T08] (  6, 10   )     ref  ->  [ebp-0x60]  "field V08._type (fldOffset=0x8)" P-INDEP
+;  V27 tmp18        [V27,T15] (  4,  8   )   ubyte  ->  [ebp-0x48]  "field V08.IsKey (fldOffset=0xc)" P-INDEP
 ;  V28 tmp19        [V28,T05] (  4, 12   )     ref  ->  [ebp-0x20]  do-not-enreg[H] hidden-struct-arg "field V11.Type (fldOffset=0x0)" P-DEP
 ;  V29 tmp20        [V29,T16] (  2,  8   )     ref  ->  [ebp-0x1C]  do-not-enreg[H] hidden-struct-arg "field V11.CustomModifiers (fldOffset=0x4)" P-DEP
 ;  V30 tmp21        [V30    ] (  8, 28   )     ref  ->  [ebp-0x30]  do-not-enreg[X] addr-exposed "field V12.Name (fldOffset=0x0)" P-DEP
@@ -44,12 +44,12 @@
 ;  V32 tmp23        [V32    ] ( 10, 32   )     ref  ->  [ebp-0x28]  do-not-enreg[X] addr-exposed "field V12._type (fldOffset=0x8)" P-DEP
 ;  V33 tmp24        [V33    ] ( 10, 32   )   ubyte  ->  [ebp-0x24]  do-not-enreg[X] addr-exposed "field V12.IsKey (fldOffset=0xc)" P-DEP
 ;  V34 tmp25        [V34,T21] (  2,  1   )     ref  ->  eax         "field V15.array (fldOffset=0x0)" P-INDEP
-;  V35 tmp26        [V35,T00] ( 10, 40   )   byref  ->  ebx         "BlockOp address local"
+;  V35 tmp26        [V35,T00] ( 10, 40   )   byref  ->  edi         "BlockOp address local"
 ;  V36 tmp27        [V36,T01] ( 10, 40   )   byref  ->  eax         "BlockOp address local"
 ;  V37 tmp28        [V37,T19] (  2,  2   )     ref  ->  edx         single-def "argument with side effect"
-;  V38 cse0         [V38,T22] (  3,  0.10)   byref  ->  ecx         "CSE - conservative"
+;  V38 cse0         [V38,T22] (  3,  0.10)   byref  ->  [ebp-0x64]  spill-single-def "CSE - conservative"
 ;
-; Lcl frame size = 76
+; Lcl frame size = 88
 
 G_M5813_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -57,117 +57,267 @@ G_M5813_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
        push     edi
        push     esi
        push     ebx
-       sub      esp, 76
+       sub      esp, 88
        xorps    xmm4, xmm4
        movups   xmmword ptr [ebp-0x40], xmm4
        movups   xmmword ptr [ebp-0x30], xmm4
        xor      eax, eax
        mov      dword ptr [ebp-0x20], eax
        mov      dword ptr [ebp-0x1C], eax
-       mov      gword ptr [ebp-0x48], edx
+       mov      gword ptr [ebp-0x50], edx
        ; GC ptr vars +{V01}
-       mov      esi, ecx
-       ; byrRegs +[esi]
+       mov      ebx, ecx
+       ; byrRegs +[ebx]
                         ;; size=33 bbWeight=1 PerfScore 12.33
-G_M5813_IG02:        ; bbWeight=1, gcVars=00001000 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, gcvars, byref
-       mov      ebx, gword ptr [esi+0x0C]
-       ; gcrRegs +[ebx]
-       mov      ebx, dword ptr [ebx+0x04]
-       ; gcrRegs -[ebx]
-       mov      ecx, ebx
+G_M5813_IG02:        ; bbWeight=1, gcVars=00001000 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000008 {ebx}, gcvars, byref
+       mov      edi, gword ptr [ebx+0x0C]
+       ; gcrRegs +[edi]
+       mov      edi, dword ptr [edi+0x04]
+       ; gcrRegs -[edi]
+       mov      ecx, edi
        call     [CORINFO_HELP_READYTORUN_NEWARR_1]
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x4C], eax
+       mov      gword ptr [ebp-0x54], eax
        ; GC ptr vars +{V03}
        xor      ecx, ecx
        mov      dword ptr [ebp-0x10], ecx
-       dec      ebx
-       mov      dword ptr [ebp-0x14], ebx
+       dec      edi
+       mov      dword ptr [ebp-0x14], edi
        xor      edx, edx
-       test     ebx, ebx
+       test     edi, edi
        jl       G_M5813_IG17
-       cmp      dword ptr [eax+0x04], ebx
+       cmp      dword ptr [eax+0x04], edi
        jle      G_M5813_IG10
                        ;; size=45 bbWeight=1 PerfScore 16.25
-G_M5813_IG03:        ; bbWeight=3.96, gcVars=00001400 {V01 V03}, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, gcvars, byref, isz
+G_M5813_IG03:        ; bbWeight=3.96, gcVars=00001400 {V01 V03}, gcrefRegs=00000000 {}, byrefRegs=00000008 {ebx}, gcvars, byref, isz
        ; gcrRegs -[eax]
-       mov      bword ptr [ebp-0x44], esi
+       mov      bword ptr [ebp-0x4C], ebx
        ; GC ptr vars +{V00}
-       mov      edi, gword ptr [esi+0x0C]
-       ; gcrRegs +[edi]
-       cmp      edx, dword ptr [edi+0x04]
+       mov      esi, gword ptr [ebx+0x0C]
+       ; gcrRegs +[esi]
+       cmp      edx, dword ptr [esi+0x04]
        jae      G_M5813_IG23
        mov      dword ptr [ebp-0x18], edx
-       mov      ebx, edx
-       shl      ebx, 4
-       lea      ebx, bword ptr [edi+ebx+0x08]
-       ; byrRegs +[ebx]
-       mov      edi, gword ptr [ebx]
-       mov      esi, gword ptr [ebx+0x04]
-       ; gcrRegs +[esi]
-       ; byrRegs -[esi]
-       mov      gword ptr [ebp-0x54], esi
-       ; GC ptr vars +{V25}
-       mov      esi, gword ptr [ebx+0x08]
-       movzx    ebx, byte  ptr [ebx+0x0C]
+       mov      edi, edx
+       shl      edi, 4
+       lea      edi, bword ptr [esi+edi+0x08]
+       ; byrRegs +[edi]
+       mov      esi, gword ptr [edi]
+       mov      ebx, gword ptr [edi+0x04]
+       ; gcrRegs +[ebx]
        ; byrRegs -[ebx]
-       push     gword ptr [ebp-0x48]
+       mov      gword ptr [ebp-0x5C], ebx
+       ; GC ptr vars +{V25}
+       mov      ebx, gword ptr [edi+0x08]
+       movzx    eax, byte  ptr [edi+0x0C]
+       mov      byte  ptr [ebp-0x48], al
+       push     gword ptr [ebp-0x50]
        lea      edx, [ebp-0x20]
-       mov      ecx, esi
+       mov      ecx, ebx
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[ecx]
+       ; byrRegs -[edi]
        xorps    xmm0, xmm0
        movups   xmmword ptr [ebp-0x30], xmm0
+       movzx    eax, byte  ptr [ebp-0x48]
+       mov      dword ptr [ebp-0x44], eax
        xorps    xmm0, xmm0
        movups   xmmword ptr [ebp-0x30], xmm0
-       lea      eax, bword ptr [ebp-0x30]
-       ; byrRegs +[eax]
-       mov      bword ptr [ebp-0x50], eax
+       lea      ecx, bword ptr [ebp-0x30]
+       ; byrRegs +[ecx]
+       mov      bword ptr [ebp-0x58], ecx
        ; GC ptr vars +{V17}
-       mov      ecx, edi
+       mov      ecx, esi
+       ; gcrRegs +[ecx]
+       ; byrRegs -[ecx]
+       call     [<unknown method>]
+       ; gcrRegs -[ecx]
+       test     eax, eax
+       jne      SHORT G_M5813_IG05
+                       ;; size=100 bbWeight=3.96 PerfScore 151.14
+G_M5813_IG04:        ; bbWeight=1.98, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       jmp      SHORT G_M5813_IG06
+                       ;; size=2 bbWeight=1.98 PerfScore 3.96
+G_M5813_IG05:        ; bbWeight=1.98, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[esi]
+       mov      edx, dword ptr [(reloc)]      ; const ptr
+       mov      esi, gword ptr [edx]
+       ; gcrRegs +[esi]
+                       ;; size=8 bbWeight=1.98 PerfScore 7.92
+G_M5813_IG06:        ; bbWeight=3.96, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edx, bword ptr [ebp-0x58]
+       ; byrRegs +[edx]
+       ; GC ptr vars -{V17}
+       call     [CORINFO_HELP_CHECKED_ASSIGN_REF_ESI]
+       ; gcrRegs -[esi]
+       ; byrRegs -[edx]
+       mov      edx, gword ptr [ebp-0x20]
+       ; gcrRegs +[edx]
+       mov      gword ptr [ebp-0x28], edx
+       mov      eax, dword ptr [ebp-0x44]
+       mov      byte  ptr [ebp-0x24], al
+       mov      esi, gword ptr [ebp-0x5C]
+       ; gcrRegs +[esi]
+       mov      gword ptr [ebp-0x2C], esi
+       mov      esi, dword ptr [ebp-0x18]
+       ; gcrRegs -[esi]
+       mov      edx, esi
+       ; gcrRegs -[edx]
+       shl      edx, 4
+       mov      ecx, gword ptr [ebp-0x54]
+       ; gcrRegs +[ecx]
+       lea      eax, bword ptr [ecx+edx+0x08]
+       ; byrRegs +[eax]
+       mov      edi, gword ptr [ebp-0x30]
+       ; gcrRegs +[edi]
+       mov      edx, eax
+       ; byrRegs +[edx]
+       ; GC ptr vars -{V25}
+       call     [CORINFO_HELP_CHECKED_ASSIGN_REF_EDI]
+       ; gcrRegs -[edi]
+       ; byrRegs -[edx]
+       lea      edx, bword ptr [eax+0x04]
+       ; byrRegs +[edx]
+       mov      edi, gword ptr [ebp-0x2C]
+       ; gcrRegs +[edi]
+       call     [CORINFO_HELP_CHECKED_ASSIGN_REF_EDI]
+       ; gcrRegs -[edi]
+       ; byrRegs -[edx]
+       lea      edx, bword ptr [eax+0x08]
+       ; byrRegs +[edx]
+       mov      edi, gword ptr [ebp-0x28]
+       ; gcrRegs +[edi]
+       call     [CORINFO_HELP_CHECKED_ASSIGN_REF_EDI]
+       ; gcrRegs -[edi]
+       ; byrRegs -[edx]
+       movzx    edx, byte  ptr [ebp-0x24]
+       mov      byte  ptr [eax+0x0C], dl
+       mov      edi, dword ptr [ebp-0x10]
+       test     edi, edi
+       jne      SHORT G_M5813_IG08
+                       ;; size=91 bbWeight=3.96 PerfScore 123.75
+G_M5813_IG07:        ; bbWeight=1.98, gcrefRegs=0000000A {ecx ebx}, byrefRegs=00000000 {}, byref
+       ; byrRegs -[eax]
+       mov      edx, esi
+       shl      edx, 4
+       cmp      gword ptr [ecx+edx+0x10], ebx
...
  
+18 (+7.32%) : 16723.dasm - System.String:TrimWhiteSpaceHelper(int):System.String:this (FullOpts)
@@ -91,7 +91,7 @@ G_M50035_IG09:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
 G_M50035_IG10:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        test     edi, 2
        mov      edi, dword ptr [ebp-0x10]
-       je       SHORT G_M50035_IG22
+       je       SHORT G_M50035_IG15
                         ;; size=11 bbWeight=1 PerfScore 2.25
 G_M50035_IG11:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        lea      eax, [ebx-0x01]
@@ -102,69 +102,77 @@ G_M50035_IG11:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      dword ptr [ebp-0x14], edx
        mov      ecx, edi
        or       ecx, edx
-       jl       SHORT G_M50035_IG18
+       jl       SHORT G_M50035_IG20
        cmp      ebx, edi
-       jle      SHORT G_M50035_IG18
+       jle      SHORT G_M50035_IG20
                        ;; size=25 bbWeight=0.50 PerfScore 3.38
 G_M50035_IG12:        ; bbWeight=3.96, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        movzx    ecx, word  ptr [esi+2*edi+0x08]
        cmp      ecx, 256
-       jae      SHORT G_M50035_IG15
+       jae      SHORT G_M50035_IG16
                      ;; size=13 bbWeight=3.96 PerfScore 12.87
 G_M50035_IG13:        ; bbWeight=1.98, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        call     [System.Char:IsWhiteSpaceLatin1(ushort):ubyte]
-       jmp      SHORT G_M50035_IG16
+       jmp      SHORT G_M50035_IG17
                        ;; size=8 bbWeight=1.98 PerfScore 9.90
 G_M50035_IG14:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      dword ptr [ebp-0x14], edx
-       jmp      SHORT G_M50035_IG22
-                       ;; size=5 bbWeight=0.25 PerfScore 0.75
-G_M50035_IG15:        ; bbWeight=1.98, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       mov      eax, edx
+       jmp      SHORT G_M50035_IG24
+                       ;; size=4 bbWeight=0.25 PerfScore 0.56
+G_M50035_IG15:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, dword ptr [ebp-0x14]
+       jmp      SHORT G_M50035_IG24
+                       ;; size=5 bbWeight=0.50 PerfScore 1.50
+G_M50035_IG16:        ; bbWeight=1.98, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        call     [System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte]
                        ;; size=6 bbWeight=1.98 PerfScore 5.94
-G_M50035_IG16:        ; bbWeight=3.96, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M50035_IG17:        ; bbWeight=3.96, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        test     eax, eax
-       je       SHORT G_M50035_IG22
+       je       SHORT G_M50035_IG19
        dec      edi
        mov      ebx, dword ptr [ebp-0x14]
        cmp      edi, ebx
        jge      SHORT G_M50035_IG12
                        ;; size=12 bbWeight=3.96 PerfScore 14.85
-G_M50035_IG17:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       jmp      SHORT G_M50035_IG22
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M50035_IG18:        ; bbWeight=0.04, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M50035_IG18:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, dword ptr [ebp-0x14]
+       jmp      SHORT G_M50035_IG24
+                       ;; size=5 bbWeight=1 PerfScore 3.00
+G_M50035_IG19:        ; bbWeight=1.98, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, dword ptr [ebp-0x14]
+       jmp      SHORT G_M50035_IG24
+                       ;; size=5 bbWeight=1.98 PerfScore 5.94
+G_M50035_IG20:        ; bbWeight=0.04, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        cmp      edi, ebx
-       jae      SHORT G_M50035_IG24
+       jae      SHORT G_M50035_IG28
        movzx    ecx, word  ptr [esi+2*edi+0x08]
        cmp      ecx, 256
-       jae      SHORT G_M50035_IG20
+       jae      SHORT G_M50035_IG22
                      ;; size=17 bbWeight=0.04 PerfScore 0.18
-G_M50035_IG19:        ; bbWeight=0.02, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M50035_IG21:        ; bbWeight=0.02, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        call     [System.Char:IsWhiteSpaceLatin1(ushort):ubyte]
-       jmp      SHORT G_M50035_IG21
+       jmp      SHORT G_M50035_IG23
                      ;; size=8 bbWeight=0.02 PerfScore 0.10
-G_M50035_IG20:        ; bbWeight=0.02, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M50035_IG22:        ; bbWeight=0.02, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        call     [System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte]
                        ;; size=6 bbWeight=0.02 PerfScore 0.06
-G_M50035_IG21:        ; bbWeight=0.04, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M50035_IG23:        ; bbWeight=0.04, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        test     eax, eax
-       je       SHORT G_M50035_IG22
+       je       SHORT G_M50035_IG27
        dec      edi
-       mov      edx, dword ptr [ebp-0x14]
-       cmp      edi, edx
-       mov      dword ptr [ebp-0x14], edx
-       jge      SHORT G_M50035_IG18
-                       ;; size=15 bbWeight=0.04 PerfScore 0.19
-G_M50035_IG22:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       mov      eax, dword ptr [ebp-0x14]
+       cmp      edi, eax
+       jge      SHORT G_M50035_IG26
+                       ;; size=12 bbWeight=0.04 PerfScore 0.15
+G_M50035_IG24:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        push     edi
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       mov      edx, dword ptr [ebp-0x14]
+       mov      edx, eax
        call     [System.String:CreateTrimmedString(int,int):System.String:this]
        ; gcrRegs -[ecx esi] +[eax]
-                       ;; size=12 bbWeight=1 PerfScore 5.25
-G_M50035_IG23:        ; bbWeight=1, epilog, nogc, extend
+                     ;; size=11 bbWeight=1 PerfScore 4.50
+G_M50035_IG25:        ; bbWeight=1, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -172,12 +180,21 @@ G_M50035_IG23:        ; bbWeight=1, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
-G_M50035_IG24:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[eax]
+G_M50035_IG26:        ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs -[eax] +[esi]
+       mov      dword ptr [ebp-0x14], eax
+       jmp      SHORT G_M50035_IG20
+                       ;; size=5 bbWeight=0.02 PerfScore 0.06
+G_M50035_IG27:        ; bbWeight=0.02, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, dword ptr [ebp-0x14]
+       jmp      SHORT G_M50035_IG24
+                       ;; size=5 bbWeight=0.02 PerfScore 0.06
+G_M50035_IG28:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[esi]
        call     [CORINFO_HELP_RNGCHKFAIL]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 246, prolog size 9, PerfScore 122.72, instruction count 90, allocated bytes for code 246 (MethodHash=878d3c8c) for method System.String:TrimWhiteSpaceHelper(int):System.String:this (FullOpts)
+; Total bytes of code 264, prolog size 9, PerfScore 131.30, instruction count 98, allocated bytes for code 264 (MethodHash=878d3c8c) for method System.String:TrimWhiteSpaceHelper(int):System.String:this (FullOpts)
 ; ============================================================
 
  
+42 (+7.81%) : 142831.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:GenerateObjectCloneIfNeeded(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
@@ -43,7 +43,7 @@
 ;* V31 tmp17        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V24._capacity (fldOffset=0xc)" P-INDEP
 ;  V32 tmp18        [V32,T15] (  2,  2   )     ref  ->  ecx         single-def "argument with side effect"
 ;  V33 cse0         [V33,T18] (  3,  1.50)     int  ->  ecx         "CSE - conservative"
-;  V34 cse1         [V34,T19] (  3,  1.50)     int  ->  ecx         "CSE - conservative"
+;  V34 cse1         [V34,T19] (  3,  1.50)     int  ->  registers   "CSE - conservative"
 ;  V35 cse2         [V35,T02] (  4, 14   )     int  ->  edx         "CSE - aggressive"
 ;
 ; Lcl frame size = 16
@@ -74,7 +74,7 @@ G_M45327_IG03:        ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRe
                        ;; size=12 bbWeight=0.50 PerfScore 4.00
 G_M45327_IG04:        ; bbWeight=0.50, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi edi]
-       jmp      G_M45327_IG23
+       jmp      G_M45327_IG24
                       ;; size=5 bbWeight=0.50 PerfScore 1.00
 G_M45327_IG05:        ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[esi edi]
@@ -90,7 +90,7 @@ G_M45327_IG05:        ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRe
        cmp      eax, 1
        mov      ebx, gword ptr [ebp-0x10]
        ; gcrRegs +[ebx]
-       jne      G_M45327_IG22
+       jne      G_M45327_IG23
        mov      ecx, esi
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V04}
@@ -102,7 +102,7 @@ G_M45327_IG05:        ; bbWeight=0.50, gcrefRegs=000000C1 {eax esi edi}, byrefRe
        call     [Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol:get_IsVbRuntime():ubyte:this]
        ; gcrRegs -[eax ecx]
        test     eax, eax
-       jne      G_M45327_IG22
+       jne      G_M45327_IG23
        mov      eax, edi
        ; gcrRegs +[eax]
                        ;; size=56 bbWeight=0.50 PerfScore 11.25
@@ -115,7 +115,7 @@ G_M45327_IG06:        ; bbWeight=4, gcrefRegs=000000C9 {eax ebx esi edi}, byrefR
        call     [<unknown method>]
        ; gcrRegs -[ecx]
        test     eax, eax
-       jne      G_M45327_IG22
+       jne      G_M45327_IG23
        mov      eax, gword ptr [ebp-0x14]
        movzx    edx, byte  ptr [eax+0x08]
        mov      ecx, edx
@@ -156,7 +156,7 @@ G_M45327_IG09:        ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
        ; GC ptr vars +{V05}
        mov      ebx, gword ptr [ebp-0x10]
        ; gcrRegs +[ebx]
-       jmp      G_M45327_IG21
+       jmp      G_M45327_IG22
                       ;; size=11 bbWeight=2 PerfScore 8.00
 G_M45327_IG10:        ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ebx]
@@ -204,7 +204,7 @@ G_M45327_IG15:        ; bbWeight=4, gcrefRegs=000000C9 {eax ebx esi edi}, byrefR
                        ;; size=12 bbWeight=4 PerfScore 6.00
 G_M45327_IG16:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax esi edi]
-       jmp      G_M45327_IG22
+       jmp      G_M45327_IG23
                       ;; size=5 bbWeight=0.50 PerfScore 1.00
 G_M45327_IG17:        ; bbWeight=4, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[eax esi edi]
@@ -213,40 +213,57 @@ G_M45327_IG17:        ; bbWeight=4, gcrefRegs=000000C9 {eax ebx esi edi}, byrefR
        call     [CORINFO_HELP_READYTORUN_CHKCAST]
        ; gcrRegs -[ecx]
        mov      eax, gword ptr [eax+0x10]
+       mov      gword ptr [ebp-0x14], eax
+       ; GC ptr vars +{V05}
+       mov      eax, gword ptr [ebp-0x14]
        jmp      G_M45327_IG06
-                       ;; size=16 bbWeight=4 PerfScore 29.00
+                     ;; size=22 bbWeight=4 PerfScore 37.00
 G_M45327_IG18:        ; bbWeight=0.50, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       ; GC ptr vars -{V05}
        cmp      ecx, 26
-       je       SHORT G_M45327_IG20
+       je       SHORT G_M45327_IG21
        cmp      ecx, 29
-       jne      SHORT G_M45327_IG19
+       jne      SHORT G_M45327_IG20
+       mov      gword ptr [ebp-0x10], ebx
+       ; GC ptr vars +{V04}
        mov      gword ptr [ebp-0x14], eax
        ; GC ptr vars +{V05}
        mov      ecx, eax
        ; gcrRegs +[ecx]
        call     [CORINFO_HELP_READYTORUN_CHKCAST]
-       ; gcrRegs -[ecx]
+       ; gcrRegs -[ecx ebx]
        mov      ecx, dword ptr [eax+0x1C]
        test     cl, 128
-       jne      SHORT G_M45327_IG21
+       jne      SHORT G_M45327_IG19
+       mov      eax, gword ptr [ebp-0x14]
        and      ecx, 31
-       lea      eax, [ecx-0x01]
-       ; gcrRegs -[eax]
-       cmp      eax, 1
-       jbe      G_M45327_IG22
+       lea      edx, [ecx-0x01]
+       cmp      edx, 1
+       mov      gword ptr [ebp-0x14], eax
+       mov      ebx, gword ptr [ebp-0x10]
+       ; gcrRegs +[ebx]
+       jbe      G_M45327_IG23
        add      ecx, -10
        cmp      ecx, 12
-       ja       SHORT G_M45327_IG21
-       jmp      G_M45327_IG22
-                       ;; size=57 bbWeight=0.50 PerfScore 7.75
-G_M45327_IG19:        ; bbWeight=0.25, gcVars=00000000 {}, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ja       SHORT G_M45327_IG22
+       mov      gword ptr [ebp-0x10], ebx
+       mov      ebx, gword ptr [ebp-0x10]
+       jmp      G_M45327_IG23
+                       ;; size=75 bbWeight=0.50 PerfScore 10.75
+G_M45327_IG19:        ; bbWeight=0.25, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax ebx]
+       mov      ebx, gword ptr [ebp-0x10]
+       ; gcrRegs +[ebx]
+       jmp      SHORT G_M45327_IG22
+                       ;; size=5 bbWeight=0.25 PerfScore 0.75
+G_M45327_IG20:        ; bbWeight=0.25, gcVars=00000000 {}, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[eax]
-       ; GC ptr vars -{V05}
+       ; GC ptr vars -{V04 V05}
        mov      gword ptr [ebp-0x14], eax
        ; GC ptr vars +{V05}
-       jmp      SHORT G_M45327_IG21
+       jmp      SHORT G_M45327_IG22
                       ;; size=5 bbWeight=0.25 PerfScore 0.75
-G_M45327_IG20:        ; bbWeight=0.50, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M45327_IG21:        ; bbWeight=0.50, gcrefRegs=000000C9 {eax ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; GC ptr vars -{V05}
        mov      gword ptr [ebp-0x14], eax
        ; GC ptr vars +{V05}
@@ -254,16 +271,25 @@ G_M45327_IG20:        ; bbWeight=0.50, gcrefRegs=000000C9 {eax ebx esi edi}, byr
        ; gcrRegs +[ecx]
        call     [CORINFO_HELP_READYTORUN_CHKCAST]
        ; gcrRegs -[ecx]
-       mov      ecx, dword ptr [eax+0x18]
-       test     cl, 8
-       jne      SHORT G_M45327_IG21
-       and      ecx, 3
-       dec      ecx
-       cmp      ecx, 2
-       jbe      G_M45327_IG22
-                       ;; size=32 bbWeight=0.50 PerfScore 4.62
-G_M45327_IG21:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, dword ptr [eax+0x18]
        ; gcrRegs -[eax]
+       test     al, 8
+       jne      SHORT G_M45327_IG22
+       mov      gword ptr [ebp-0x10], ebx
+       ; GC ptr vars +{V04}
+       mov      edx, eax
+       mov      eax, gword ptr [ebp-0x14]
+       ; gcrRegs +[eax]
+       and      edx, 3
+       dec      edx
+       cmp      edx, 2
+       mov      gword ptr [ebp-0x14], eax
+       mov      ebx, gword ptr [ebp-0x10]
+       jbe      G_M45327_IG23
+                       ;; size=45 bbWeight=0.50 PerfScore 6.75
+G_M45327_IG22:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax]
+       ; GC ptr vars -{V04}
        mov      ecx, gword ptr [esi+0x08]
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], ecx
@@ -291,7 +317,7 @@ G_M45327_IG21:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        call     [Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:ReportMissingOrBadRuntimeHelper(Microsoft.CodeAnalysis.VisualBasic.BoundNode,int,Microsoft.CodeAnalysis.VisualBasic.Symbol):ubyte:this]
        ; gcrRegs -[eax ecx edx esi]
        test     eax, eax
-       jne      SHORT G_M45327_IG22
+       jne      SHORT G_M45327_IG23
        mov      esi, gword ptr [edi+0x04]
        ; gcrRegs +[esi]
        mov      edx, dword ptr [(reloc)]      ; <unknown method>
@@ -338,12 +364,12 @@ G_M45327_IG21:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        mov      ebx, gword ptr [ebp-0x1C]
        ; gcrRegs +[ebx]
                        ;; size=141 bbWeight=0.50 PerfScore 33.62
-G_M45327_IG22:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref
+G_M45327_IG23:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars -{V20}
        mov      eax, ebx
        ; gcrRegs +[eax]
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M45327_IG23:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M45327_IG24:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[ebx]
        lea      esp, [ebp-0x0C]
        pop      ebx
@@ -353,6 +379,6 @@ G_M45327_IG23:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
 
-; Total bytes of code 538, prolog size 9, PerfScore 296.62, instruction count 175, allocated bytes for code 538 (MethodHash=07aa4ef0) for method Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:GenerateObjectCloneIfNeeded(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
+; Total bytes of code 580, prolog size 9, PerfScore 310.50, instruction count 190, allocated bytes for code 580 (MethodHash=07aa4ef0) for method Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:GenerateObjectCloneIfNeeded(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
 ; ============================================================
 
  
  
libraries.pmi.windows.x86.checked.mch
-12 (-7.32%) : 174052.dasm - System.Xml.Xsl.XsltOld.OutputScopeManager:FindPrefix(System.String,byref):ubyte:this (FullOpts)
@@ -61,7 +61,7 @@ G_M28412_IG03:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
 G_M28412_IG04:        ; bbWeight=1, gcrefRegs=000000C3 {eax ecx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, 0xD1FFAB1E      ; System.Xml.Xsl.XsltOld.OutputScope
        cmp      dword ptr [ecx], edx
-       jne      SHORT G_M28412_IG12
+       jne      SHORT G_M28412_IG10
                      ;; size=9 bbWeight=1 PerfScore 4.25
 G_M28412_IG05:        ; bbWeight=4, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
@@ -81,13 +81,13 @@ G_M28412_IG06:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
        ; gcrRegs -[esi edi]
        xor      eax, eax
        ; gcrRegs +[eax]
-       mov      ebx, bword ptr [ebp+0x08]
-       ; byrRegs +[ebx]
-       mov      gword ptr [ebx], eax
+       mov      esi, bword ptr [ebp+0x08]
+       ; byrRegs +[esi]
+       mov      gword ptr [esi], eax
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
 G_M28412_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[eax]
-       ; byrRegs -[ebx]
+       ; byrRegs -[esi]
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -97,8 +97,6 @@ G_M28412_IG07:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
                        ;; size=10 bbWeight=0.50 PerfScore 2.25
 G_M28412_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[esi edi]
-       mov      ebx, bword ptr [ebp+0x08]
-       ; byrRegs +[ebx]
        mov      edx, gword ptr [ebp-0x10]
        ; gcrRegs +[edx]
        lea      ecx, [ebp-0x14]
@@ -108,17 +106,17 @@ G_M28412_IG08:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {e
        call     [<unknown method>]
        ; gcrRegs -[ecx edx esi] +[eax]
        test     eax, eax
-       je       SHORT G_M28412_IG11
+       je       SHORT G_M28412_IG06
        cmp      eax, edi
-       jne      SHORT G_M28412_IG10
+       jne      SHORT G_M28412_IG06
        mov      eax, gword ptr [ebp-0x10]
-       mov      edx, ebx
+       mov      edx, bword ptr [ebp+0x08]
        ; byrRegs +[edx]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF_EAX
        ; gcrRegs -[eax edi]
-       ; byrRegs -[edx ebx]
+       ; byrRegs -[edx]
        mov      eax, 1
-                      ;; size=41 bbWeight=0.50 PerfScore 5.88
+                       ;; size=39 bbWeight=0.50 PerfScore 5.75
 G_M28412_IG09:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
@@ -127,18 +125,8 @@ G_M28412_IG09:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      4
                        ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M28412_IG10:        ; bbWeight=0.25, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000008 {ebx}, gcvars, byref, isz
-       ; byrRegs +[ebx]
-       mov      bword ptr [ebp+0x08], ebx
-       jmp      SHORT G_M28412_IG06
-                       ;; size=5 bbWeight=0.25 PerfScore 0.75
-G_M28412_IG11:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000008 {ebx}, byref, isz
-       mov      bword ptr [ebp+0x08], ebx
-       jmp      SHORT G_M28412_IG06
-                       ;; size=5 bbWeight=0.25 PerfScore 0.75
-G_M28412_IG12:        ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref
+G_M28412_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[eax]
-       ; byrRegs -[ebx]
        mov      ecx, edx
        mov      edx, eax
        ; gcrRegs +[edx]
@@ -147,6 +135,6 @@ G_M28412_IG12:        ; bbWeight=0, gcrefRegs=00000001 {eax}, byrefRegs=00000000
        int3     
                        ;; size=10 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 164, prolog size 14, PerfScore 108.75, instruction count 70, allocated bytes for code 164 (MethodHash=dc079103) for method System.Xml.Xsl.XsltOld.OutputScopeManager:FindPrefix(System.String,byref):ubyte:this (FullOpts)
+; Total bytes of code 152, prolog size 14, PerfScore 107.12, instruction count 65, allocated bytes for code 152 (MethodHash=dc079103) for method System.Xml.Xsl.XsltOld.OutputScopeManager:FindPrefix(System.String,byref):ubyte:this (FullOpts)
 ; ============================================================
 
  
-32 (-7.17%) : 26138.dasm - Microsoft.FSharp.Primitives.Basics.Array:stableSortWithKeysAndComparer[ubyte,System.Nullable1[int]](System.Collections.Generic.IComparer1[ubyte],System.Collections.Generic.IComparer1[ubyte],System.Nullable1[int][],ubyte[]) (FullOpts)
@@ -65,7 +65,7 @@ G_M46208_IG02:        ; bbWeight=1, gcVars=00050000 {V00 V01}, gcrefRegs=000000C
                        ;; size=33 bbWeight=1 PerfScore 8.50
 G_M46208_IG03:        ; bbWeight=4, gcVars=00050040 {V00 V01 V05}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      ecx, dword ptr [eax+0x04]
-       jae      G_M46208_IG21
+       jae      G_M46208_IG18
        mov      dword ptr [eax+4*ecx+0x08], ecx
        inc      ecx
        lea      edx, [ebx+0x01]
@@ -74,7 +74,7 @@ G_M46208_IG03:        ; bbWeight=4, gcVars=00050040 {V00 V01 V05}, gcrefRegs=000
                        ;; size=21 bbWeight=4 PerfScore 28.00
 G_M46208_IG04:        ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
        test     edi, edi
-       je       G_M46208_IG22
+       je       G_M46208_IG19
        push     0
        mov      ebx, dword ptr [edi+0x04]
        mov      dword ptr [ebp-0x24], ebx
@@ -89,11 +89,10 @@ G_M46208_IG04:        ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
        call     [System.Array:Sort[ubyte,int](ubyte[],int[],int,int,System.Collections.Generic.IComparer`1[ubyte])]
        ; gcrRegs -[eax ecx edx]
        ; gcr arg pop 1
-       mov      gword ptr [ebp+0x0C], esi
        mov      ecx, esi
        ; gcrRegs +[ecx]
        call     [System.Object:MemberwiseClone():System.Object:this]
-       ; gcrRegs -[ecx esi] +[eax]
+       ; gcrRegs -[ecx] +[eax]
        mov      gword ptr [ebp-0x34], eax
        ; GC ptr vars +{V08}
        xor      ecx, ecx
@@ -107,33 +106,32 @@ G_M46208_IG04:        ; bbWeight=1, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
        mov      gword ptr [ebp-0x38], eax
        ; GC ptr vars +{V09}
        cmp      dword ptr [ebp-0x10], 0
-       jle      G_M46208_IG17
-                       ;; size=82 bbWeight=1 PerfScore 24.75
-G_M46208_IG05:        ; bbWeight=4, gcVars=00090240 {V01 V05 V08 V09}, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       jle      G_M46208_IG15
+                       ;; size=79 bbWeight=1 PerfScore 23.75
+G_M46208_IG05:        ; bbWeight=4, gcVars=00090240 {V01 V05 V08 V09}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
        mov      ecx, dword ptr [ebp-0x14]
        mov      eax, ecx
        cmp      eax, ebx
-       jae      G_M46208_IG21
+       jae      G_M46208_IG18
        movzx    edx, byte  ptr [edi+eax+0x08]
        mov      dword ptr [ebp-0x1C], edx
        jmp      SHORT G_M46208_IG07
                        ;; size=23 bbWeight=4 PerfScore 30.00
-G_M46208_IG06:        ; bbWeight=8, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+G_M46208_IG06:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        inc      eax
        mov      ecx, dword ptr [ebp-0x14]
                        ;; size=4 bbWeight=8 PerfScore 10.00
-G_M46208_IG07:        ; bbWeight=32, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+G_M46208_IG07:        ; bbWeight=32, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        cmp      eax, dword ptr [ebp-0x10]
-       jge      G_M46208_IG20
+       jge      G_M46208_IG17
                        ;; size=9 bbWeight=32 PerfScore 96.00
-G_M46208_IG08:        ; bbWeight=16, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
+G_M46208_IG08:        ; bbWeight=16, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      dword ptr [ebp-0x14], ecx
        cmp      eax, ecx
        je       SHORT G_M46208_IG06
        cmp      eax, ebx
-       jae      G_M46208_IG21
-       mov      gword ptr [ebp+0x08], edi
+       jae      G_M46208_IG18
        mov      dword ptr [ebp-0x18], eax
        movzx    edx, byte  ptr [edi+eax+0x08]
        push     edx
@@ -141,38 +139,35 @@ G_M46208_IG08:        ; bbWeight=16, gcrefRegs=00000080 {edi}, byrefRegs=0000000
        ; gcrRegs +[ecx]
        mov      edx, dword ptr [ebp-0x1C]
        call     [<unknown method>]
-       ; gcrRegs -[ecx edi]
+       ; gcrRegs -[ecx]
        test     eax, eax
        mov      eax, dword ptr [ebp-0x18]
-       mov      edi, gword ptr [ebp+0x08]
-       ; gcrRegs +[edi]
-       je       G_M46208_IG19
-                       ;; size=53 bbWeight=16 PerfScore 268.00
-G_M46208_IG09:        ; bbWeight=8, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+       je       SHORT G_M46208_IG06
+                       ;; size=43 bbWeight=16 PerfScore 236.00
+G_M46208_IG09:        ; bbWeight=8, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        mov      ecx, dword ptr [ebp-0x14]
                        ;; size=3 bbWeight=8 PerfScore 8.00
-G_M46208_IG10:        ; bbWeight=16, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+G_M46208_IG10:        ; bbWeight=16, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, ecx
        lea      ebx, [eax-0x01]
        mov      dword ptr [ebp-0x20], ebx
        cmp      ebx, edx
-       jl       G_M46208_IG18
-                       ;; size=16 bbWeight=16 PerfScore 48.00
-G_M46208_IG11:        ; bbWeight=8, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+       mov      gword ptr [ebp+0x0C], esi
        mov      gword ptr [ebp+0x08], edi
-                       ;; size=3 bbWeight=8 PerfScore 8.00
-G_M46208_IG12:        ; bbWeight=16, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[edi]
+       jl       SHORT G_M46208_IG12
+                       ;; size=18 bbWeight=16 PerfScore 80.00
+G_M46208_IG11:        ; bbWeight=16, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[esi edi]
        mov      edi, gword ptr [ebp-0x30]
        ; gcrRegs +[edi]
        cmp      edx, dword ptr [edi+0x04]
-       jae      G_M46208_IG21
+       jae      G_M46208_IG18
        mov      edi, dword ptr [edi+4*edx+0x08]
        ; gcrRegs -[edi]
        mov      esi, gword ptr [ebp-0x34]
        ; gcrRegs +[esi]
        cmp      edi, dword ptr [esi+0x04]
-       jae      G_M46208_IG21
+       jae      SHORT G_M46208_IG18
        lea      edi, bword ptr [esi+8*edi+0x08]
        ; byrRegs +[edi]
        movzx    ebx, byte  ptr [edi]
@@ -180,7 +175,7 @@ G_M46208_IG12:        ; bbWeight=16, gcrefRegs=00000000 {}, byrefRegs=00000000 {
        ; byrRegs -[edi]
        mov      esi, gword ptr [ebp+0x0C]
        cmp      edx, dword ptr [esi+0x04]
-       jae      SHORT G_M46208_IG21
+       jae      SHORT G_M46208_IG18
        mov      gword ptr [ebp+0x0C], esi
        lea      esi, bword ptr [esi+8*edx+0x08]
        ; gcrRegs -[esi]
@@ -192,51 +187,45 @@ G_M46208_IG12:        ; bbWeight=16, gcrefRegs=00000000 {}, byrefRegs=00000000 {
        lea      esi, [ebx+0x01]
        ; byrRegs -[esi]
        cmp      edx, esi
-       jne      SHORT G_M46208_IG12
-                       ;; size=69 bbWeight=16 PerfScore 464.00
-G_M46208_IG13:        ; bbWeight=8, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      esi, gword ptr [ebp+0x0C]
-       ; gcrRegs +[esi]
-       mov      edi, gword ptr [ebp+0x08]
-       ; gcrRegs +[edi]
-                       ;; size=6 bbWeight=8 PerfScore 16.00
-G_M46208_IG14:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       jne      SHORT G_M46208_IG11
+                       ;; size=65 bbWeight=16 PerfScore 464.00
+G_M46208_IG12:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      edx, eax
        sub      edx, ecx
        cmp      edx, 2
-       jl       SHORT G_M46208_IG16
+       jl       SHORT G_M46208_IG14
                        ;; size=9 bbWeight=4 PerfScore 7.00
-G_M46208_IG15:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+G_M46208_IG13:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        push     ecx
        mov      dword ptr [ebp-0x18], eax
        mov      edx, eax
        sub      edx, ecx
        push     edx
-       mov      ebx, gword ptr [ebp-0x38]
-       ; gcrRegs +[ebx]
-       push     ebx
+       mov      esi, gword ptr [ebp-0x38]
+       ; gcrRegs +[esi]
+       push     esi
        ; gcr arg push 2
        mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
-       mov      edx, esi
+       mov      edx, gword ptr [ebp+0x0C]
        ; gcrRegs +[edx]
        call     [System.Array:Sort[int,System.Nullable`1[int]](int[],System.Nullable`1[int][],int,int,System.Collections.Generic.IComparer`1[int])]
        ; gcrRegs -[ecx edx]
        ; gcr arg pop 1
        mov      eax, dword ptr [ebp-0x18]
-                        ;; size=27 bbWeight=2 PerfScore 21.50
-G_M46208_IG16:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[ebx]
-       mov      ecx, eax
-       mov      eax, dword ptr [ebp-0x10]
-       cmp      ecx, eax
-       mov      dword ptr [ebp-0x14], ecx
-       mov      gword ptr [ebp+0x0C], esi
-       mov      ebx, dword ptr [ebp-0x24]
-       jl       G_M46208_IG05
-                       ;; size=22 bbWeight=4 PerfScore 22.00
-G_M46208_IG17:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
-       ; gcrRegs -[esi edi]
+                      ;; size=28 bbWeight=2 PerfScore 23.00
+G_M46208_IG14:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[esi]
+       mov      ebx, eax
+       mov      edi, dword ptr [ebp-0x10]
+       cmp      ebx, edi
+       mov      dword ptr [ebp-0x14], ebx
+       mov      esi, gword ptr [ebp+0x0C]
+       ; gcrRegs +[esi]
+       jl       SHORT G_M46208_IG16
+                       ;; size=15 bbWeight=4 PerfScore 18.00
+G_M46208_IG15:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, epilog, nogc
+       ; gcrRegs -[esi]
        ; GC ptr vars -{V01 V05 V08 V09}
        lea      esp, [ebp-0x0C]
        pop      ebx
@@ -245,32 +234,28 @@ G_M46208_IG17:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        pop      ebp
        ret      8
                        ;; size=10 bbWeight=1 PerfScore 4.50
-G_M46208_IG18:        ; bbWeight=8, gcVars=00090240 {V01 V05 V08 V09}, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[edi]
-       ; GC ptr vars +{V01 V05 V06 V08 V09 V16 V19}
-       mov      esi, gword ptr [ebp+0x0C]
+G_M46208_IG16:        ; bbWeight=2, gcVars=00090240 {V01 V05 V08 V09}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[esi]
-       jmp      SHORT G_M46208_IG14
-                       ;; size=5 bbWeight=8 PerfScore 24.00
-G_M46208_IG19:        ; bbWeight=8, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[esi]
+       ; GC ptr vars +{V01 V05 V06 V08 V09 V16 V19}
        mov      ebx, dword ptr [ebp-0x24]
-       jmp      G_M46208_IG06
-                       ;; size=8 bbWeight=8 PerfScore 24.00
-G_M46208_IG20:        ; bbWeight=16, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+       mov      edi, gword ptr [ebp+0x08]
+       ; gcrRegs +[edi]
+       jmp      G_M46208_IG05
+                       ;; size=11 bbWeight=2 PerfScore 8.00
+G_M46208_IG17:        ; bbWeight=16, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        jmp      G_M46208_IG10
                        ;; size=5 bbWeight=16 PerfScore 32.00
-G_M46208_IG21:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[edi]
+G_M46208_IG18:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[esi edi]
        ; GC ptr vars -{V01 V05 V06 V08 V09 V16 V19}
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M46208_IG22:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M46208_IG19:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, 74
        call     [System.ThrowHelper:ThrowArgumentNullException(int)]
        int3     
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 446, prolog size 21, PerfScore 1152.75, instruction count 146, allocated bytes for code 446 (MethodHash=3c7c4b7f) for method Microsoft.FSharp.Primitives.Basics.Array:stableSortWithKeysAndComparer[ubyte,System.Nullable`1[int]](System.Collections.Generic.IComparer`1[ubyte],System.Collections.Generic.IComparer`1[ubyte],System.Nullable`1[int][],ubyte[]) (FullOpts)
+; Total bytes of code 414, prolog size 21, PerfScore 1085.25, instruction count 140, allocated bytes for code 414 (MethodHash=3c7c4b7f) for method Microsoft.FSharp.Primitives.Basics.Array:stableSortWithKeysAndComparer[ubyte,System.Nullable`1[int]](System.Collections.Generic.IComparer`1[ubyte],System.Collections.Generic.IComparer`1[ubyte],System.Nullable`1[int][],ubyte[]) (FullOpts)
...
  
-20 (-7.12%) : 280717.dasm - System.Speech.Internal.Synthesis.VoiceSynthesis:MatchVoice(System.Globalization.CultureInfo,int,int,int,ubyte,byref):System.Speech.Internal.Synthesis.TTSVoice:this (FullOpts)
@@ -18,17 +18,17 @@
 ;  V07 loc0         [V07,T08] (  4,  3   )     ref  ->  [ebp-0x14]  class-hnd <System.Speech.Internal.Synthesis.TTSVoice>
 ;  V08 loc1         [V08,T02] ( 10, 23.50)     ref  ->  [ebp-0x18]  class-hnd exact spill-single-def <<unknown class>>
 ;  V09 loc2         [V09,T00] (  9, 28   )     int  ->  [ebp-0x10] 
-;  V10 loc3         [V10,T04] (  6,  6   )     ref  ->  [ebp-0x1C]  class-hnd <System.Speech.Synthesis.InstalledVoice>
-;  V11 tmp0         [V11,T06] (  3,  6   )     ref  ->  [ebp-0x20]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+;  V10 loc3         [V10,T04] (  6,  6   )     ref  ->  registers   class-hnd <System.Speech.Synthesis.InstalledVoice>
+;  V11 tmp0         [V11,T06] (  3,  6   )     ref  ->  [ebp-0x1C]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
 ;* V12 tmp1         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;* V13 tmp2         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V14 tmp3         [V14,T15] (  3,  1.50)     int  ->  eax         "Inline stloc first use temp"
 ;  V15 tmp4         [V15,T01] (  3, 24   )     ref  ->  ecx         "arr expr"
 ;  V16 tmp5         [V16,T03] (  2,  8   )     ref  ->  ecx         "argument with side effect"
-;  V17 tmp6         [V17,T10] (  2,  2   )     ref  ->  [ebp-0x24]  spill-single-def "argument with side effect"
+;  V17 tmp6         [V17,T10] (  2,  2   )     ref  ->  edx         "argument with side effect"
 ;  V18 tmp7         [V18,T11] (  2,  2   )     ref  ->  ecx         "argument with side effect"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 16
 
 G_M64973_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -36,7 +36,7 @@ G_M64973_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 24
+       sub      esp, 16
        mov      edi, ecx
        ; gcrRegs +[edi]
        mov      esi, edx
@@ -51,7 +51,7 @@ G_M64973_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        ; GC ptr vars +{V07}
        mov      ecx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [ebp-0x20], eax
+       mov      gword ptr [ebp-0x1C], eax
        ; GC ptr vars +{V11}
        mov      edx, gword ptr [edi+0x58]
        ; gcrRegs +[edx]
@@ -59,7 +59,7 @@ G_M64973_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        ; gcrRegs +[ecx]
        call     [<unknown method>]
        ; gcrRegs -[eax ecx edx]
-       mov      eax, gword ptr [ebp-0x20]
+       mov      eax, gword ptr [ebp-0x1C]
        ; gcrRegs +[eax]
        mov      gword ptr [ebp-0x18], eax
        ; GC ptr vars +{V08}
@@ -70,11 +70,11 @@ G_M64973_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
 G_M64973_IG03:        ; bbWeight=4, gcVars=00000104 {V07 V08}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000008 {ebx}, gcvars, byref, isz
        ; GC ptr vars -{V11}
        cmp      edx, dword ptr [eax+0x08]
-       jae      G_M64973_IG15
+       jae      G_M64973_IG16
        mov      ecx, gword ptr [eax+0x04]
        ; gcrRegs +[ecx]
        cmp      edx, dword ptr [ecx+0x04]
-       jae      G_M64973_IG14
+       jae      G_M64973_IG15
        mov      ecx, gword ptr [ecx+4*edx+0x08]
        cmp      byte  ptr [ecx+0x0C], 0
        jne      SHORT G_M64973_IG05
@@ -96,16 +96,21 @@ G_M64973_IG05:        ; bbWeight=4, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
                        ;; size=3 bbWeight=4 PerfScore 5.00
 G_M64973_IG06:        ; bbWeight=8, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000008 {ebx}, byref, isz
        cmp      dword ptr [eax+0x08], 0
-       jg       SHORT G_M64973_IG09
+       jg       SHORT G_M64973_IG10
                       ;; size=6 bbWeight=8 PerfScore 32.00
-G_M64973_IG07:        ; bbWeight=1, gcVars=00000100 {V07}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M64973_IG07:        ; bbWeight=4, gcVars=00000100 {V07}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax esi edi]
        ; byrRegs -[ebx]
        ; GC ptr vars -{V08}
-       mov      eax, gword ptr [ebp-0x14]
+       mov      edi, gword ptr [ebp-0x14]
+       ; gcrRegs +[edi]
+                       ;; size=3 bbWeight=4 PerfScore 4.00
+G_M64973_IG08:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars -{V07}
+       mov      eax, edi
        ; gcrRegs +[eax]
-                      ;; size=3 bbWeight=1 PerfScore 1.00
-G_M64973_IG08:        ; bbWeight=1, epilog, nogc, extend
+                     ;; size=2 bbWeight=1 PerfScore 0.25
+G_M64973_IG09:        ; bbWeight=1, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -113,10 +118,10 @@ G_M64973_IG08:        ; bbWeight=1, epilog, nogc, extend
        pop      ebp
        ret      20
                        ;; size=10 bbWeight=1 PerfScore 4.50
-G_M64973_IG09:        ; bbWeight=2, gcVars=00000104 {V07 V08}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000008 {ebx}, gcvars, byref, isz
-       ; gcrRegs +[esi edi]
+G_M64973_IG10:        ; bbWeight=2, gcVars=00000104 {V07 V08}, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000008 {ebx}, gcvars, byref, isz
+       ; gcrRegs +[esi]
        ; byrRegs +[ebx]
-       ; GC ptr vars +{V02 V08}
+       ; GC ptr vars +{V02 V07 V08}
        mov      ecx, gword ptr [ebx]
        ; gcrRegs +[ecx]
        push     dword ptr [ebp+0x18]
@@ -129,91 +134,79 @@ G_M64973_IG09:        ; bbWeight=2, gcVars=00000104 {V07 V08}, gcrefRegs=000000C
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
        ; gcr arg pop 1
-       mov      ecx, eax
-       ; gcrRegs +[ecx]
-       test     ecx, ecx
-       je       SHORT G_M64973_IG13
-                       ;; size=26 bbWeight=2 PerfScore 21.50
-G_M64973_IG10:        ; bbWeight=0.50, gcVars=00000004 {V08}, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000008 {ebx}, gcvars, byref, isz
-       ; gcrRegs -[eax esi]
+       test     eax, eax
+       je       SHORT G_M64973_IG14
+                       ;; size=24 bbWeight=2 PerfScore 21.00
+G_M64973_IG11:        ; bbWeight=0.50, gcVars=00000004 {V08}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000008 {ebx}, gcvars, byref, isz
+       ; gcrRegs -[esi]
        ; GC ptr vars -{V02 V07 V08}
-       mov      gword ptr [ebp-0x1C], ecx
-       ; GC ptr vars +{V10}
-       mov      edx, gword ptr [ecx+0x04]
-       ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x24], edx
-       ; GC ptr vars +{V17}
-       movzx    edx, byte  ptr [ebp+0x0C]
-       ; gcrRegs -[edx]
-       push     edx
-       mov      edx, gword ptr [ebp-0x24]
-       ; gcrRegs +[edx]
-       mov      ecx, edi
-       ; GC ptr vars -{V10 V17} +{V08}
-       call     [<unknown method>]
-       ; gcrRegs -[ecx edx edi] +[eax]
        mov      esi, eax
        ; gcrRegs +[esi]
-       test     esi, esi
-       mov      gword ptr [ebp-0x14], esi
-       ; GC ptr vars +{V07}
-       jne      SHORT G_M64973_IG07
-       mov      eax, gword ptr [ebp-0x18]
-       mov      edi, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [esi+0x04]
+       ; gcrRegs +[edx]
+       movzx    ecx, byte  ptr [ebp+0x0C]
+       push     ecx
+       mov      ecx, edi
+       ; gcrRegs +[ecx]
+       call     [<unknown method>]
+       ; gcrRegs -[ecx edx edi]
+       mov      edi, eax
        ; gcrRegs +[edi]
+       test     edi, edi
+       jne      SHORT G_M64973_IG08
+       mov      eax, gword ptr [ebp-0x18]
        mov      ecx, gword ptr [eax+0x04]
        ; gcrRegs +[ecx]
        push     0
        push     dword ptr [eax+0x08]
        push     0xD1FFAB1E
-       mov      edx, edi
+       mov      edx, esi
        ; gcrRegs +[edx]
        call     [<unknown method>]
-       ; gcrRegs -[eax ecx edx esi]
+       ; gcrRegs -[eax ecx edx]
        test     eax, eax
-       jl       SHORT G_M64973_IG12
-                       ;; size=65 bbWeight=0.50 PerfScore 12.62
-G_M64973_IG11:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000008 {ebx}, byref
+       jl       SHORT G_M64973_IG13
+                       ;; size=52 bbWeight=0.50 PerfScore 10.25
+G_M64973_IG12:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000008 {ebx}, byref
        mov      ecx, gword ptr [ebp-0x18]
        ; gcrRegs +[ecx]
        mov      edx, eax
-       ; GC ptr vars -{V08}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
                        ;; size=11 bbWeight=0.50 PerfScore 2.12
-G_M64973_IG12:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000008 {ebx}, byref
+G_M64973_IG13:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000008 {ebx}, byref, isz
        movzx    ecx, byte  ptr [ebp+0x0C]
        push     ecx
-       mov      ecx, edi
+       mov      ecx, esi
        ; gcrRegs +[ecx]
        xor      edx, edx
        call     [<unknown method>]
        ; gcrRegs -[ecx]
-       cmp      edi, gword ptr [ebx]
-       jne      G_M64973_IG07
+       cmp      esi, gword ptr [ebx]
+       jne      SHORT G_M64973_IG08
        xor      eax, eax
        ; gcrRegs +[eax]
        mov      gword ptr [ebx], eax
-       jmp      G_M64973_IG07
-                       ;; size=32 bbWeight=0.50 PerfScore 6.38
-G_M64973_IG13:        ; bbWeight=1, gcVars=00000104 {V07 V08}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000008 {ebx}, gcvars, byref
-       ; gcrRegs -[eax] +[esi]
-       ; GC ptr vars +{V02 V08}
+       jmp      SHORT G_M64973_IG08
+                       ;; size=25 bbWeight=0.50 PerfScore 6.38
+G_M64973_IG14:        ; bbWeight=1, gcVars=00000104 {V07 V08}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000008 {ebx}, gcvars, byref
+       ; gcrRegs -[eax]
+       ; GC ptr vars +{V02 V07 V08}
        mov      eax, gword ptr [ebp-0x18]
        ; gcrRegs +[eax]
        jmp      G_M64973_IG06
                        ;; size=8 bbWeight=1 PerfScore 3.00
-G_M64973_IG14:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M64973_IG15:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax esi edi]
        ; byrRegs -[ebx]
        ; GC ptr vars -{V02 V07 V08}
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M64973_IG15:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M64973_IG16:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        call     [System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 281, prolog size 16, PerfScore 184.62, instruction count 96, allocated bytes for code 281 (MethodHash=5fbe0232) for method System.Speech.Internal.Synthesis.VoiceSynthesis:MatchVoice(System.Globalization.CultureInfo,int,int,int,ubyte,byref):System.Speech.Internal.Synthesis.TTSVoice:this (FullOpts)
+; Total bytes of code 261, prolog size 16, PerfScore 185.00, instruction count 92, allocated bytes for code 261 (MethodHash=5fbe0232) for method System.Speech.Internal.Synthesis.VoiceSynthesis:MatchVoice(System.Globalization.CultureInfo,int,int,int,ubyte,byref):System.Speech.Internal.Synthesis.TTSVoice:this (FullOpts)
 ; ============================================================
 
  
+28 (+4.82%) : 49733.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:LexDisabledText(byref):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode:this (FullOpts)
@@ -32,21 +32,21 @@
 ;  V21 tmp15        [V21,T24] (  3,  3   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;* V22 tmp16        [V22    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V23 tmp17        [V23,T25] (  3,  3   )     ref  ->  esi         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V24 tmp18        [V24,T18] (  4,  4   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
+;  V24 tmp18        [V24,T18] (  4,  4   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
 ;* V25 tmp19        [V25    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V26 tmp20        [V26,T01] (  3, 96   )     ref  ->  ecx         class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;* V27 tmp21        [V27,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V28 tmp22        [V28,T06] (  3, 24   )     ref  ->  ecx         class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
+;  V28 tmp22        [V28,T06] (  3, 24   )     ref  ->  edx         class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;  V29 tmp23        [V29,T11] (  3, 12   )     ref  ->  edi         "arr expr"
 ;  V30 tmp24        [V30,T12] (  3, 12   )     int  ->  ecx         "index expr"
-;  V31 tmp25        [V31,T28] (  2,  2   )     int  ->  edi         "argument with side effect"
+;  V31 tmp25        [V31,T28] (  2,  2   )     int  ->  esi         "argument with side effect"
 ;  V32 tmp26        [V32,T29] (  2,  2   )     int  ->  edx         "argument with side effect"
 ;* V33 cse0         [V33,T37] (  0,  0   )     int  ->  zero-ref    multi-def "CSE - conservative"
 ;  V34 cse1         [V34,T33] (  3,  1.50)     int  ->  eax         "CSE - conservative"
 ;  V35 cse2         [V35,T34] (  3,  1.50)     int  ->  edx         "CSE - conservative"
 ;  V36 cse3         [V36,T16] (  3,  6   )     int  ->  ebx         "CSE - conservative"
 ;  V37 cse4         [V37,T35] (  3,  1.50)     int  ->  edx         "CSE - conservative"
-;  V38 cse5         [V38,T36] (  3,  1.50)     int  ->  edi         "CSE - conservative"
+;  V38 cse5         [V38,T36] (  3,  1.50)     int  ->  esi         "CSE - conservative"
 ;  V39 cse6         [V39,T26] (  3,  3   )     ref  ->  ecx         "CSE - conservative"
 ;  V40 cse7         [V40,T27] (  3,  3   )     int  ->  ebx         "CSE - conservative"
 ;  V41 cse8         [V41,T31] (  3,  1.50)     ref  ->  ecx         "CSE - conservative"
@@ -110,7 +110,7 @@ G_M3237_IG06:        ; bbWeight=2, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000
        mov      ecx, dword ptr [ecx+0x14]
        ; gcrRegs -[ecx]
        cmp      ecx, dword ptr [edi+0x04]
-       jae      G_M3237_IG31
+       jae      G_M3237_IG33
        movzx    ecx, word  ptr [edi+2*ecx+0x08]
                        ;; size=20 bbWeight=2 PerfScore 20.00
 G_M3237_IG07:        ; bbWeight=8, gcVars=0000000000004000 {V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
@@ -121,32 +121,42 @@ G_M3237_IG07:        ; bbWeight=8, gcVars=0000000000004000 {V01}, gcrefRegs=0000
                        ;; size=5 bbWeight=8 PerfScore 10.00
 G_M3237_IG08:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        cmp      ecx, 10
-       je       SHORT G_M3237_IG15
+       je       G_M3237_IG17
        cmp      ecx, 13
-       je       SHORT G_M3237_IG15
-       jmp      G_M3237_IG16
-                       ;; size=15 bbWeight=2 PerfScore 9.00
+       je       SHORT G_M3237_IG17
+       mov      ebx, dword ptr [ebp-0x10]
+       jmp      G_M3237_IG18
+                       ;; size=22 bbWeight=2 PerfScore 11.00
 G_M3237_IG09:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        cmp      ecx, 35
-       je       SHORT G_M3237_IG12
+       je       SHORT G_M3237_IG14
                         ;; size=5 bbWeight=4 PerfScore 5.00
 G_M3237_IG10:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        cmp      ecx, 0xFFFF
-       jne      SHORT G_M3237_IG16
+       jne      SHORT G_M3237_IG13
        mov      edi, gword ptr [esi+0x04]
        ; gcrRegs +[edi]
        mov      ebx, dword ptr [edi+0x14]
        cmp      ebx, dword ptr [edi+0x1C]
-       jl       SHORT G_M3237_IG16
+       jl       SHORT G_M3237_IG12
        add      ebx, dword ptr [edi+0x10]
        cmp      ebx, dword ptr [edi+0x18]
-       jl       SHORT G_M3237_IG16
-                       ;; size=27 bbWeight=2 PerfScore 32.50
+       mov      ebx, dword ptr [ebp-0x10]
+       jl       SHORT G_M3237_IG18
+                       ;; size=30 bbWeight=2 PerfScore 34.50
 G_M3237_IG11:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edi]
-       jmp      G_M3237_IG22
+       jmp      G_M3237_IG24
                         ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M3237_IG12:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M3237_IG12:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      ebx, dword ptr [ebp-0x10]
+       jmp      SHORT G_M3237_IG18
+                       ;; size=5 bbWeight=1 PerfScore 3.00
+G_M3237_IG13:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      ebx, dword ptr [ebp-0x10]
+       jmp      SHORT G_M3237_IG18
+                       ;; size=5 bbWeight=1 PerfScore 3.00
+G_M3237_IG14:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        cmp      byte  ptr [esi+0x3C], 0
        je       SHORT G_M3237_IG16
        mov      edi, bword ptr [ebp-0x1C]
@@ -165,22 +175,23 @@ G_M3237_IG12:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      ebx, dword ptr [ebp-0x10]
        ; gcrRegs -[ebx]
        cmp      edi, ebx
-       jle      G_M3237_IG28
+       jle      G_M3237_IG30
        mov      edx, dword ptr [ebp-0x18]
        test     edx, edx
        mov      dword ptr [ebp-0x18], edx
-       je       SHORT G_M3237_IG14
+       je       SHORT G_M3237_IG18
                       ;; size=48 bbWeight=2 PerfScore 41.00
-G_M3237_IG13:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M3237_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars -{V01 V19}
-       jmp      G_M3237_IG28
-                       ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M3237_IG14:        ; bbWeight=1, gcVars=0000000000004000 {V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V01 V14}
        mov      dword ptr [ebp-0x10], ebx
-       jmp      SHORT G_M3237_IG16
+       jmp      G_M3237_IG30
+                       ;; size=8 bbWeight=0.50 PerfScore 1.50
+G_M3237_IG16:        ; bbWeight=1, gcVars=0000000000004000 {V01}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars +{V01 V14}
+       mov      ebx, dword ptr [ebp-0x10]
+       jmp      SHORT G_M3237_IG18
                      ;; size=5 bbWeight=1 PerfScore 3.00
-G_M3237_IG15:        ; bbWeight=16, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M3237_IG17:        ; bbWeight=16, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      ecx, esi
        ; gcrRegs +[ecx]
        call     [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanEndOfLine():Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode:this]
@@ -198,43 +209,45 @@ G_M3237_IG15:        ; bbWeight=16, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      dword ptr [ebp-0x10], ebx
        jmp      G_M3237_IG04
                        ;; size=40 bbWeight=16 PerfScore 268.00
-G_M3237_IG16:        ; bbWeight=32, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M3237_IG18:        ; bbWeight=32, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[ecx]
        cmp      ecx, 13
-       je       SHORT G_M3237_IG15
+       je       SHORT G_M3237_IG17
                         ;; size=5 bbWeight=32 PerfScore 40.00
-G_M3237_IG17:        ; bbWeight=16, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M3237_IG19:        ; bbWeight=16, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        cmp      ecx, 10
-       je       SHORT G_M3237_IG15
+       je       SHORT G_M3237_IG17
        cmp      ecx, 133
-       je       SHORT G_M3237_IG15
+       je       SHORT G_M3237_IG17
        cmp      ecx, 0x2028
-       je       SHORT G_M3237_IG15
+       je       SHORT G_M3237_IG17
        cmp      ecx, 0x2029
-       je       SHORT G_M3237_IG15
+       je       SHORT G_M3237_IG17
                         ;; size=29 bbWeight=16 PerfScore 80.00
-G_M3237_IG18:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M3237_IG20:        ; bbWeight=8, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        cmp      dword ptr [ebp-0x18], 0
-       je       SHORT G_M3237_IG20
+       je       SHORT G_M3237_IG22
                        ;; size=6 bbWeight=8 PerfScore 24.00
-G_M3237_IG19:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M3237_IG21:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        call     [Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsWhitespace(ushort):ubyte]
-       jmp      SHORT G_M3237_IG21
+       jmp      SHORT G_M3237_IG23
                       ;; size=8 bbWeight=2 PerfScore 10.00
-G_M3237_IG20:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       xor      edx, edx
-       mov      eax, edx
+G_M3237_IG22:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       xor      ecx, ecx
+       mov      eax, ecx
                        ;; size=4 bbWeight=2 PerfScore 1.00
-G_M3237_IG21:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M3237_IG23:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        movzx    edx, al
-       mov      ecx, gword ptr [esi+0x04]
-       ; gcrRegs +[ecx]
-       inc      dword ptr [ecx+0x14]
-       mov      dword ptr [ebp-0x18], edx
+       mov      ecx, edx
+       mov      edx, gword ptr [esi+0x04]
+       ; gcrRegs +[edx]
+       inc      dword ptr [edx+0x14]
+       mov      dword ptr [ebp-0x18], ecx
+       mov      dword ptr [ebp-0x10], ebx
        jmp      G_M3237_IG04
-                        ;; size=17 bbWeight=4 PerfScore 33.00
-G_M3237_IG22:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
+                      ;; size=22 bbWeight=4 PerfScore 38.00
+G_M3237_IG24:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[edx]
        mov      edi, bword ptr [ebp-0x1C]
        ; byrRegs +[edi]
        mov      byte  ptr [edi], 0
@@ -247,16 +260,16 @@ G_M3237_IG22:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=000000
        ; gcrRegs -[edx]
        sub      eax, edx
        test     eax, eax
-       jg       SHORT G_M3237_IG25
+       jg       SHORT G_M3237_IG27
                        ;; size=23 bbWeight=0.50 PerfScore 4.88
-G_M3237_IG23:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M3237_IG25:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[ecx esi]
        ; byrRegs -[edi]
        ; GC ptr vars -{V01 V14}
        xor      eax, eax
        ; gcrRegs +[eax]
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M3237_IG24:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3237_IG26:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -264,7 +277,7 @@ G_M3237_IG24:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M3237_IG25:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
+G_M3237_IG27:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax] +[ecx]
        add      edx, dword ptr [ecx+0x10]
        push     eax
@@ -274,9 +287,9 @@ G_M3237_IG25:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000
        mov      edi, eax
        ; gcrRegs +[edi]
        test     byte  ptr [D1FFAB1EH], 1      ; global ptr
-       je       G_M3237_IG32
+       je       G_M3237_IG34
                      ;; size=27 bbWeight=0.50 PerfScore 6.12
-G_M3237_IG26:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+G_M3237_IG28:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        mov      ecx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia
        call     CORINFO_HELP_NEWSFAST
@@ -302,7 +315,7 @@ G_M3237_IG26:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=000000
        mov      eax, esi
        ; gcrRegs +[eax]
                        ;; size=42 bbWeight=0.50 PerfScore 5.38
-G_M3237_IG27:        ; bbWeight=0.50, epilog, nogc, extend
+G_M3237_IG29:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -310,7 +323,7 @@ G_M3237_IG27:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M3237_IG28:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M3237_IG30:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
        mov      ecx, gword ptr [esi+0x04]
        ; gcrRegs +[ecx]
@@ -323,48 +336,49 @@ G_M3237_IG28:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000
...
  
+19 (+5.29%) : 283360.dasm - System.Text.Json.JsonSerializerOptions+CachingContext:DetermineNearestAncestor(System.Type,System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry):System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry:this (FullOpts)
@@ -62,7 +62,7 @@ G_M6659_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000
        test     edx, edx
        je       SHORT G_M6659_IG06
        test     byte  ptr [D1FFAB1EH], 1      ; global ptr
-       je       G_M6659_IG15
+       je       G_M6659_IG17
                      ;; size=42 bbWeight=1 PerfScore 16.25
 G_M6659_IG03:        ; bbWeight=4, gcVars=00000031 {V03 V04 V05}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax edx]
@@ -100,11 +100,11 @@ G_M6659_IG03:        ; bbWeight=4, gcVars=00000031 {V03 V04 V05}, gcrefRegs=0000
        ; GC ptr vars +{V05}
        jne      SHORT G_M6659_IG03
                        ;; size=61 bbWeight=4 PerfScore 109.00
-G_M6659_IG04:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M6659_IG04:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax edx]
        ; GC ptr vars -{V05}
        jmp      SHORT G_M6659_IG06
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+                        ;; size=2 bbWeight=1 PerfScore 2.00
 G_M6659_IG05:        ; bbWeight=0.50, gcVars=00000011 {V03 V05}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars -{V04} +{V00}
        mov      edx, gword ptr [ebp-0x24]
@@ -128,9 +128,12 @@ G_M6659_IG06:        ; bbWeight=1, gcVars=00000030 {V03 V04}, gcrefRegs=000000C0
        mov      edx, dword ptr [ebx+0x04]
        mov      dword ptr [ebp-0x14], edx
        test     edx, edx
-       jle      G_M6659_IG13
-                       ;; size=26 bbWeight=1 PerfScore 9.00
-G_M6659_IG07:        ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [ebp-0x18]
+       ; gcrRegs +[edi]
+       jle      G_M6659_IG15
+                       ;; size=29 bbWeight=1 PerfScore 10.00
+G_M6659_IG07:        ; bbWeight=4, gcVars=00000030 {V03 V04}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V01}
        mov      dword ptr [ebp-0x10], eax
        mov      ecx, gword ptr [ebx+4*eax+0x08]
        ; gcrRegs +[ecx]
@@ -144,18 +147,21 @@ G_M6659_IG07:        ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000
        mov      gword ptr [ebp-0x2C], eax
        ; GC ptr vars +{V09}
        cmp      byte  ptr [eax+0x10], 0
-       je       SHORT G_M6659_IG10
+       je       SHORT G_M6659_IG13
                         ;; size=30 bbWeight=4 PerfScore 53.00
-G_M6659_IG08:        ; bbWeight=2, gcVars=000001B4 {V01 V03 V04 V08 V09}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M6659_IG08:        ; bbWeight=2, gcVars=000000B4 {V03 V04 V08 V09}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
        mov      edx, gword ptr [ebp-0x20]
        ; gcrRegs +[edx]
        test     edx, edx
        je       SHORT G_M6659_IG09
+       mov      gword ptr [ebp-0x18], edi
+       ; GC ptr vars +{V01}
        mov      ecx, gword ptr [ebp-0x28]
        ; gcrRegs +[ecx]
        mov      gword ptr [ebp-0x20], edx
        mov      edi, dword ptr [ecx]
+       ; gcrRegs -[edi]
        mov      edi, dword ptr [edi+0x64]
        call     [edi+0x10]<unknown method>
        ; gcrRegs -[ecx edx]
@@ -172,9 +178,12 @@ G_M6659_IG08:        ; bbWeight=2, gcVars=000001B4 {V01 V03 V04 V08 V09}, gcrefR
        call     [eax+0x10]<unknown method>
        ; gcrRegs -[ecx edx]
        test     eax, eax
-       je       SHORT G_M6659_IG12
-                       ;; size=46 bbWeight=2 PerfScore 47.50
-G_M6659_IG09:        ; bbWeight=2, gcVars=00000184 {V01 V08 V09}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref
+       mov      edi, gword ptr [ebp-0x18]
+       ; gcrRegs +[edi]
+       je       SHORT G_M6659_IG14
+                       ;; size=52 bbWeight=2 PerfScore 51.50
+G_M6659_IG09:        ; bbWeight=2, gcVars=00000084 {V08 V09}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars -{V01 V08}
        mov      eax, gword ptr [ebp-0x2C]
        ; gcrRegs +[eax]
        mov      ecx, gword ptr [ebp-0x28]
@@ -185,32 +194,46 @@ G_M6659_IG09:        ; bbWeight=2, gcVars=00000184 {V01 V08 V09}, gcrefRegs=0000
        ; GC ptr vars +{V03}
        mov      gword ptr [ebp-0x20], edx
        ; GC ptr vars +{V04}
-                      ;; size=14 bbWeight=2 PerfScore 8.50
+       mov      gword ptr [ebp-0x18], edi
+       ; GC ptr vars +{V01}
+                       ;; size=17 bbWeight=2 PerfScore 10.50
 G_M6659_IG10:        ; bbWeight=4, gcVars=00000130 {V01 V03 V04}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[eax ecx edx]
-       ; GC ptr vars -{V08 V09}
+       ; gcrRegs -[eax ecx edx edi]
+       ; GC ptr vars -{V09}
        mov      ecx, dword ptr [ebp-0x10]
        inc      ecx
        mov      edi, dword ptr [ebp-0x14]
        cmp      edi, ecx
        mov      eax, ecx
-       jg       SHORT G_M6659_IG07
+       jg       SHORT G_M6659_IG12
                        ;; size=13 bbWeight=4 PerfScore 15.00
-G_M6659_IG11:        ; bbWeight=0.50, gcVars=00000010 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M6659_IG11:        ; bbWeight=1, gcVars=00000010 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[ebx esi]
        ; GC ptr vars -{V01 V04}
-       jmp      SHORT G_M6659_IG13
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M6659_IG12:        ; bbWeight=0.50, gcVars=00000124 {V01 V04 V08}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; GC ptr vars -{V03} +{V01 V02 V05 V08}
-       mov      edx, gword ptr [ebp-0x20]
-       ; gcrRegs +[edx]
+       jmp      SHORT G_M6659_IG15
+                       ;; size=2 bbWeight=1 PerfScore 2.00
+G_M6659_IG12:        ; bbWeight=2, gcVars=00000130 {V01 V03 V04}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs +[ebx esi]
+       ; GC ptr vars +{V01 V04 V05 V08}
        mov      edi, gword ptr [ebp-0x18]
        ; gcrRegs +[edi]
+       jmp      SHORT G_M6659_IG07
+                       ;; size=5 bbWeight=2 PerfScore 6.00
+G_M6659_IG13:        ; bbWeight=2, gcVars=00000030 {V03 V04}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V01 V05 V08}
+       mov      gword ptr [ebp-0x18], edi
+       ; GC ptr vars +{V01}
+       jmp      SHORT G_M6659_IG10
+                       ;; size=5 bbWeight=2 PerfScore 6.00
+G_M6659_IG14:        ; bbWeight=0.50, gcVars=00000024 {V04 V08}, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[ebx esi]
+       ; GC ptr vars -{V01 V03 V04} +{V02}
+       mov      edx, gword ptr [ebp-0x20]
+       ; gcrRegs +[edx]
        push     gword ptr [ebp-0x28]
        mov      ecx, edi
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V01 V02 V05 V08}
+       ; GC ptr vars -{V02}
        call     [System.Text.Json.ThrowHelper:GetNotSupportedException_AmbiguousMetadataForType(System.Type,System.Type,System.Type):System.NotSupportedException]
        ; gcrRegs -[ecx edx edi] +[eax]
        mov      esi, eax
@@ -231,8 +254,8 @@ G_M6659_IG12:        ; bbWeight=0.50, gcVars=00000124 {V01 V04 V08}, gcrefRegs=0
        mov      byte  ptr [edi+0x10], 1
        mov      gword ptr [ebp-0x1C], edi
        ; GC ptr vars +{V03}
-                      ;; size=54 bbWeight=0.50 PerfScore 7.38
-G_M6659_IG13:        ; bbWeight=1, gcVars=00000010 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+                        ;; size=51 bbWeight=0.50 PerfScore 6.88
+G_M6659_IG15:        ; bbWeight=1, gcVars=00000010 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[edi]
        mov      ebx, gword ptr [ebp+0x08]
        ; gcrRegs +[ebx]
@@ -247,7 +270,7 @@ G_M6659_IG13:        ; bbWeight=1, gcVars=00000010 {V03}, gcrefRegs=00000000 {},
        mov      eax, edi
        ; gcrRegs +[eax]
                        ;; size=20 bbWeight=1 PerfScore 4.75
-G_M6659_IG14:        ; bbWeight=1, epilog, nogc, extend
+G_M6659_IG16:        ; bbWeight=1, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -255,7 +278,7 @@ G_M6659_IG14:        ; bbWeight=1, epilog, nogc, extend
        pop      ebp
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
-G_M6659_IG15:        ; bbWeight=0, gcVars=00000031 {V03 V04 V05}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M6659_IG17:        ; bbWeight=0, gcVars=00000031 {V03 V04 V05}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax ebx] +[esi]
        ; GC ptr vars +{V00 V03 V04 V05}
        mov      ecx, 0xD1FFAB1E
@@ -264,6 +287,6 @@ G_M6659_IG15:        ; bbWeight=0, gcVars=00000031 {V03 V04 V05}, gcrefRegs=0000
        jmp      G_M6659_IG03
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 359, prolog size 9, PerfScore 282.88, instruction count 124, allocated bytes for code 359 (MethodHash=2cd6e5fc) for method System.Text.Json.JsonSerializerOptions+CachingContext:DetermineNearestAncestor(System.Type,System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry):System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry:this (FullOpts)
+; Total bytes of code 378, prolog size 9, PerfScore 303.38, instruction count 131, allocated bytes for code 378 (MethodHash=2cd6e5fc) for method System.Text.Json.JsonSerializerOptions+CachingContext:DetermineNearestAncestor(System.Type,System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry):System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry:this (FullOpts)
 ; ============================================================
 
  
+41 (+5.53%) : 101453.dasm - Microsoft.CodeAnalysis.VisualBasic.AccessCheck:InheritsFromOrImplementsIgnoringConstruction(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BasesBeingResolved,byref):ubyte (FullOpts)
@@ -43,15 +43,15 @@
 ;  V32 tmp20        [V32    ] (  3,  5   )     int  ->  [ebp-0x2C]  do-not-enreg[X] addr-exposed "field V11._index (fldOffset=0xc)" P-DEP
 ;  V33 tmp21        [V33,T23] (  3,  1.50)     ref  ->  ecx         single-def "field V24._hashSet (fldOffset=0x0)" P-INDEP
 ;* V34 tmp22        [V34,T25] (  0,  0   )     ref  ->  zero-ref    single-def "field V24._current (fldOffset=0x4)" P-INDEP
-;  V35 tmp23        [V35,T24] (  2,  1   )     int  ->  eax         single-def "field V24._version (fldOffset=0x8)" P-INDEP
+;  V35 tmp23        [V35,T24] (  2,  1   )     int  ->  edx         single-def "field V24._version (fldOffset=0x8)" P-INDEP
 ;* V36 tmp24        [V36,T26] (  0,  0   )     int  ->  zero-ref    single-def "field V24._index (fldOffset=0xc)" P-INDEP
 ;  V37 tmp25        [V37,T07] (  3, 12   )     ref  ->  [ebp-0x44]  do-not-enreg[H] hidden-struct-arg "field V26.DiagnosticInfo (fldOffset=0x0)" P-DEP
 ;  V38 tmp26        [V38,T08] (  3, 12   )     ref  ->  [ebp-0x40]  do-not-enreg[H] hidden-struct-arg "field V26.PrimaryDependency (fldOffset=0x4)" P-DEP
 ;  V39 tmp27        [V39,T09] (  3, 12   )     ref  ->  [ebp-0x3C]  do-not-enreg[H] hidden-struct-arg "field V26.SecondaryDependencies (fldOffset=0x8)" P-DEP
 ;  V40 EHSlots      [V40    ] (  1,  1   )  struct (16) [ebp-0x20]  do-not-enreg[XS] must-init addr-exposed "lvaShadowSPslotsVar"
-;  V41 cse0         [V41,T10] (  3, 12   )     ref  ->  ecx         "CSE - moderate"
+;  V41 cse0         [V41,T10] (  3, 12   )     ref  ->  [ebp-0x58]  spill-single-def "CSE - moderate"
 ;
-; Lcl frame size = 72
+; Lcl frame size = 76
 
 G_M36720_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -59,7 +59,7 @@ G_M36720_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 72
+       sub      esp, 76
        vxorps   xmm4, xmm4, xmm4
        vmovdqu  ymmword ptr [ebp-0x44], ymm4
        vmovdqu  xmmword ptr [ebp-0x24], xmm4
@@ -74,7 +74,7 @@ G_M36720_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=35 bbWeight=1 PerfScore 11.58
 G_M36720_IG02:        ; bbWeight=1, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, byref
        test     byte  ptr [D1FFAB1EH], 1      ; global ptr
-       je       G_M36720_IG43
+       je       G_M36720_IG44
                        ;; size=13 bbWeight=1 PerfScore 4.00
 G_M36720_IG03:        ; bbWeight=1, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, byref, isz
        xor      eax, eax
@@ -293,42 +293,49 @@ G_M36720_IG25:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
        ; gcrRegs -[edi]
        ; byrRegs -[esi]
        mov      dword ptr [ebp-0x28], 1
-       mov      ebx, gword ptr [ebp-0x4C]
-       ; gcrRegs +[ebx]
+       mov      ebx, dword ptr [ebp-0x28]
        mov      edi, gword ptr [ebp-0x48]
        ; gcrRegs +[edi]
-       jmp      G_M36720_IG36
+       jmp      G_M36720_IG37
                       ;; size=18 bbWeight=0.50 PerfScore 2.50
 G_M36720_IG26:        ; bbWeight=0.50, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref, isz
-       ; gcrRegs -[ebx]
        ; byrRegs +[esi]
        cmp      dword ptr [ebp-0x24], 0
+       je       G_M36720_IG30
+       mov      eax, gword ptr [ebp-0x4C]
+       ; gcrRegs +[eax]
+       mov      edx, gword ptr [eax+0x04]
+       ; gcrRegs +[edx]
+       cmp      dword ptr [edx+0x08], 0
        je       SHORT G_M36720_IG29
-       mov      ebx, gword ptr [ebp-0x4C]
-       ; gcrRegs +[ebx]
-       mov      ecx, gword ptr [ebx+0x04]
-       ; gcrRegs +[ecx]
-       cmp      dword ptr [ecx+0x08], 0
-       je       SHORT G_M36720_IG31
-                       ;; size=18 bbWeight=0.50 PerfScore 5.00
-G_M36720_IG27:        ; bbWeight=4, gcVars=00000800 {V04}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, gcvars, byref, isz
-       ; gcrRegs -[ecx]
+                      ;; size=22 bbWeight=0.50 PerfScore 5.00
+G_M36720_IG27:        ; bbWeight=4, gcVars=00000800 {V04}, gcrefRegs=00000081 {eax edi}, byrefRegs=00000040 {esi}, gcvars, byref, isz
+       ; gcrRegs -[edx]
        ; GC ptr vars -{V05}
-       mov      ecx, gword ptr [ebx+0x04]
-       ; gcrRegs +[ecx]
-       mov      ecx, dword ptr [ecx+0x08]
-       ; gcrRegs -[ecx]
-       lea      edx, [ecx-0x01]
-       mov      ecx, ebx
+       mov      edx, gword ptr [eax+0x04]
+       ; gcrRegs +[edx]
+       mov      edx, dword ptr [edx+0x08]
+       ; gcrRegs -[edx]
+       dec      edx
+       mov      gword ptr [ebp-0x4C], eax
+       ; GC ptr vars +{V05}
+       mov      ecx, eax
        ; gcrRegs +[ecx]
        call     [<unknown method>]
-       ; gcrRegs -[ecx] +[eax]
+       ; gcrRegs -[ecx]
        mov      gword ptr [ebp-0x54], eax
        ; GC ptr vars +{V19}
-       mov      ecx, gword ptr [ebx+0x04]
+       mov      ecx, gword ptr [ebp-0x4C]
        ; gcrRegs +[ecx]
-       mov      edx, dword ptr [ecx+0x08]
-       dec      edx
+       mov      edx, gword ptr [ecx+0x04]
+       ; gcrRegs +[edx]
+       mov      gword ptr [ebp-0x58], edx
+       ; GC ptr vars +{V41}
+       mov      ebx, dword ptr [edx+0x08]
+       lea      edx, [ebx-0x01]
+       ; gcrRegs -[edx]
+       mov      ecx, gword ptr [ebp-0x58]
+       ; GC ptr vars -{V41}
        call     [System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:RemoveAt(int):this]
        ; gcrRegs -[eax ecx]
        push     0
@@ -341,58 +348,73 @@ G_M36720_IG27:        ; bbWeight=4, gcVars=00000800 {V04}, gcrefRegs=00000088 {e
        call     [eax+0x1C]<unknown method>
        ; gcrRegs -[ecx edx]
        test     eax, eax
-       jne      SHORT G_M36720_IG30
-       push     gword ptr [ebp-0x48]
+       jne      SHORT G_M36720_IG31
+       mov      ebx, gword ptr [ebp-0x48]
+       ; gcrRegs +[ebx]
+       push     ebx
        push     gword ptr [ebp+0x10]
        push     gword ptr [ebp+0x0C]
        mov      ecx, gword ptr [ebp-0x54]
        ; gcrRegs +[ecx]
-       mov      edx, ebx
+       mov      edx, gword ptr [ebp-0x4C]
        ; gcrRegs +[edx]
-       ; GC ptr vars -{V19}
+       ; GC ptr vars -{V04 V19}
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-       mov      ecx, gword ptr [ebx+0x04]
+       mov      eax, gword ptr [ebp-0x4C]
+       ; gcrRegs +[eax]
+       mov      ecx, gword ptr [eax+0x04]
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx+0x08], 0
+       mov      gword ptr [ebp-0x48], ebx
+       ; GC ptr vars +{V04}
+       mov      eax, gword ptr [ebp-0x4C]
        jne      SHORT G_M36720_IG27
-                     ;; size=81 bbWeight=4 PerfScore 159.00
-G_M36720_IG28:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, byref, isz
-       ; gcrRegs -[ecx edi]
-       jmp      SHORT G_M36720_IG31
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M36720_IG29:        ; bbWeight=0.25, gcVars=00000804 {V04 V05}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[ebx]
+                      ;; size=104 bbWeight=4 PerfScore 194.00
+G_M36720_IG28:        ; bbWeight=0.50, gcVars=00000800 {V04}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref, isz
+       ; gcrRegs -[ecx ebx edi]
+       ; GC ptr vars -{V05}
+       mov      gword ptr [ebp-0x4C], eax
+       ; GC ptr vars +{V05}
+       mov      ebx, dword ptr [ebp-0x28]
+       jmp      SHORT G_M36720_IG32
+                       ;; size=8 bbWeight=0.50 PerfScore 2.00
+G_M36720_IG29:        ; bbWeight=0.25, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, byref, isz
+       ; GC ptr vars -{V05}
+       mov      gword ptr [ebp-0x4C], eax
+       ; GC ptr vars +{V05}
+       mov      ebx, dword ptr [ebp-0x28]
+       jmp      SHORT G_M36720_IG32
+                       ;; size=8 bbWeight=0.25 PerfScore 1.00
+G_M36720_IG30:        ; bbWeight=0.25, gcVars=00000804 {V04 V05}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[eax]
        ; byrRegs -[esi]
-       ; GC ptr vars +{V02 V05}
-       mov      ebx, gword ptr [ebp-0x4C]
-       ; gcrRegs +[ebx]
+       mov      ebx, dword ptr [ebp-0x28]
        mov      edi, gword ptr [ebp-0x48]
        ; gcrRegs +[edi]
-       jmp      G_M36720_IG36
+       jmp      G_M36720_IG37
                       ;; size=11 bbWeight=0.25 PerfScore 1.00
-G_M36720_IG30:        ; bbWeight=0.50, gcVars=00000800 {V04}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref
+G_M36720_IG31:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edi]
-       ; GC ptr vars -{V02 V05}
-       mov      dword ptr [ebp-0x28], 1
+       mov      ebx, 1
        mov      edi, gword ptr [ebp-0x48]
        ; gcrRegs +[edi]
-       jmp      G_M36720_IG36
-                       ;; size=15 bbWeight=0.50 PerfScore 2.00
-G_M36720_IG31:        ; bbWeight=0.50, gcrefRegs=00000008 {ebx}, byrefRegs=00000040 {esi}, byref
+       jmp      G_M36720_IG37
+                       ;; size=13 bbWeight=0.50 PerfScore 1.62
+G_M36720_IG32:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
        ; gcrRegs -[edi]
        ; byrRegs +[esi]
        mov      edi, gword ptr [ebp-0x48]
        ; gcrRegs +[edi]
        mov      ecx, edi
        ; gcrRegs +[ecx]
-       mov      eax, dword ptr [ecx+0x1C]
+       mov      edx, dword ptr [ecx+0x1C]
        mov      gword ptr [ebp-0x38], ecx
        xor      ecx, ecx
        mov      gword ptr [ebp-0x34], ecx
-       mov      dword ptr [ebp-0x30], eax
+       mov      dword ptr [ebp-0x30], edx
                         ;; size=19 bbWeight=0.50 PerfScore 3.25
-G_M36720_IG32:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, gcvars, byref, isz
+G_M36720_IG33:        ; bbWeight=0.50, gcVars=00000004 {V05}, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, gcvars, byref, isz
        ; gcrRegs -[ecx]
        ; GC ptr vars -{V04}
        mov      dword ptr [ebp-0x2C], ecx
@@ -400,22 +422,22 @@ G_M36720_IG32:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000088 {e
        mov      edx, 0xD1FFAB1E      ; System.Collections.Generic.HashSet`1+Enumerator[Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol]
        call     [<unknown method>]
        test     eax, eax
-       je       SHORT G_M36720_IG36
+       je       SHORT G_M36720_IG37
                      ;; size=21 bbWeight=0.50 PerfScore 3.00
-G_M36720_IG33:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, byref, isz
+G_M36720_IG34:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref, isz
        mov      ecx, gword ptr [ebp-0x34]
        ; gcrRegs +[ecx]
        cmp      byte  ptr [esi+0x0D], 2
-       je       SHORT G_M36720_IG35
+       je       SHORT G_M36720_IG36
                       ;; size=9 bbWeight=4 PerfScore 20.00
-G_M36720_IG34:        ; bbWeight=2, gcrefRegs=0000008A {ecx ebx edi}, byrefRegs=00000040 {esi}, byref, isz
+G_M36720_IG35:        ; bbWeight=2, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000040 {esi}, byref, isz
        lea      edx, [ebp-0x44]
        mov      eax, dword ptr [ecx]
        mov      eax, dword ptr [eax+0x44]
        call     [eax]<unknown method>
        ; gcrRegs -[ecx]
        cmp      byte  ptr [esi+0x0D], 2
-       je       SHORT G_M36720_IG35
+       je       SHORT G_M36720_IG36
        push     gword ptr [ebp-0x3C]
        push     gword ptr [ebp-0x40]
        push     gword ptr [ebp-0x44]
@@ -433,19 +455,19 @@ G_M36720_IG34:        ; bbWeight=2, gcrefRegs=0000008A {ecx ebx edi}, byrefRegs=
        call     [<unknown method>]
        ; byrRegs -[ecx]
                        ;; size=60 bbWeight=2 PerfScore 49.00
-G_M36720_IG35:        ; bbWeight=4, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000040 {esi}, byref, isz
+G_M36720_IG36:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000040 {esi}, byref, isz
        lea      ecx, [ebp-0x38]
        mov      edx, 0xD1FFAB1E      ; System.Collections.Generic.HashSet`1+Enumerator[Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol]
        call     [<unknown method>]
        test     eax, eax
-       jne      SHORT G_M36720_IG33
+       jne      SHORT G_M36720_IG34
                      ;; size=18 bbWeight=4 PerfScore 20.00
...
  
  
libraries_tests.run.windows.x86.Release.mch
-15 (-11.90%) : 314449.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Canon]:TryEnqueue(System.Canon):ubyte:this (Tier1)
@@ -9,17 +9,16 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  6,  5.50)     ref  ->  ecx         this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]>
-;  V01 arg1         [V01,T02] (  3,  2.50)     ref  ->  [ebp-0x18]  class-hnd single-def <System.__Canon>
-;  V02 loc0         [V02,T04] (  3,  3   )     ref  ->  edi         class-hnd exact single-def <<unknown class>>
+;  V01 arg1         [V01,T02] (  3,  2.50)     ref  ->  [ebp-0x14]  class-hnd single-def <System.__Canon>
+;  V02 loc0         [V02,T04] (  3,  3   )     ref  ->  edx         class-hnd exact single-def <<unknown class>>
 ;  V03 loc1         [V03,T01] (  6,  4.50)     int  ->  [ebp-0x10]  spill-single-def
-;  V04 loc2         [V04,T05] (  3,  3   )     int  ->  edx        
+;  V04 loc2         [V04,T05] (  3,  3   )     int  ->  edi        
 ;* V05 loc3         [V05    ] (  0,  0   )     int  ->  zero-ref   
-;  V06 loc4         [V06,T06] (  3,  2.50)     int  ->  edx        
-;  V07 cse0         [V07,T03] (  4,  3   )   byref  ->  ebx         "CSE - moderate"
-;  V08 cse1         [V08,T07] (  3,  1.50)     int  ->  [ebp-0x14]  "CSE - moderate"
-;  TEMP_01                                   byref  ->  [ebp-0x1C]
+;  V06 loc4         [V06,T06] (  3,  2.50)     int  ->  ebx        
+;  V07 cse0         [V07,T03] (  4,  3   )   byref  ->  edi         "CSE - moderate"
+;  V08 cse1         [V08,T07] (  3,  1.50)     int  ->  registers   "CSE - moderate"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 8
 
 G_M56054_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -27,56 +26,49 @@ G_M56054_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 16
-       xor      eax, eax
-       mov      dword ptr [ebp-0x1C], eax
-       mov      gword ptr [ebp-0x18], edx
+       sub      esp, 8
+       mov      gword ptr [ebp-0x14], edx
        ; GC ptr vars +{V01}
-                     ;; size=17 bbWeight=1 PerfScore 6.75
+                      ;; size=12 bbWeight=1 PerfScore 5.50
 G_M56054_IG02:        ; bbWeight=1, gcVars=00000004 {V01}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[ecx]
-       mov      edi, gword ptr [ecx+0x04]
-       ; gcrRegs +[edi]
+       mov      edx, gword ptr [ecx+0x04]
+       ; gcrRegs +[edx]
                         ;; size=3 bbWeight=1 PerfScore 2.00
-G_M56054_IG03:        ; bbWeight=1, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, byref, isz
+G_M56054_IG03:        ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref, isz
        mov      eax, dword ptr [ecx+0x94]
        mov      dword ptr [ebp-0x10], eax
-       mov      edx, eax
-       and      edx, dword ptr [ecx+0x0C]
-       cmp      edx, dword ptr [edi+0x04]
+       mov      edi, eax
+       and      edi, dword ptr [ecx+0x0C]
+       cmp      edi, dword ptr [edx+0x04]
        jae      SHORT G_M56054_IG08
-       lea      ebx, bword ptr [edi+8*edx+0x08]
-       ; byrRegs +[ebx]
-       mov      edx, dword ptr [ebx+0x04]
-       sub      edx, eax
+       lea      edi, bword ptr [edx+8*edi+0x08]
+       ; byrRegs +[edi]
+       mov      ebx, dword ptr [edi+0x04]
+       sub      ebx, eax
        jne      SHORT G_M56054_IG06
                        ;; size=30 bbWeight=1 PerfScore 14.50
-G_M56054_IG04:        ; bbWeight=0.50, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000008 {ebx}, byref, isz
-       lea      edx, bword ptr [ecx+0x94]
-       ; byrRegs +[edx]
-       mov      bword ptr [ebp-0x1C], edx
-       lea      edx, [eax+0x01]
-       ; byrRegs -[edx]
-       mov      esi, bword ptr [ebp-0x1C]
-       ; byrRegs +[esi]
+G_M56054_IG04:        ; bbWeight=0.50, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000080 {edi}, byref, isz
+       lea      ebx, bword ptr [ecx+0x94]
+       ; byrRegs +[ebx]
+       lea      esi, [eax+0x01]
        lock     
-       cmpxchg  dword ptr [esi], edx
+       cmpxchg  dword ptr [ebx], esi
        cmp      eax, dword ptr [ebp-0x10]
-       mov      dword ptr [ebp-0x14], edx
        jne      SHORT G_M56054_IG03
-       mov      esi, gword ptr [ebp-0x18]
+       mov      eax, esi
+       mov      esi, gword ptr [ebp-0x14]
        ; gcrRegs +[esi]
-       ; byrRegs -[esi]
-       mov      edx, ebx
+       mov      edx, edi
+       ; gcrRegs -[edx]
        ; byrRegs +[edx]
        ; GC ptr vars -{V01}
        call     CORINFO_HELP_CHECKED_ASSIGN_REF_ESI
-       ; gcrRegs -[ecx esi edi]
-       ; byrRegs -[edx]
-       mov      ecx, dword ptr [ebp-0x14]
-       mov      dword ptr [ebx+0x04], ecx
+       ; gcrRegs -[ecx esi]
+       ; byrRegs -[edx ebx]
+       mov      dword ptr [edi+0x04], eax
        mov      eax, 1
-                      ;; size=48 bbWeight=0.50 PerfScore 14.75
+                      ;; size=38 bbWeight=0.50 PerfScore 12.88
 G_M56054_IG05:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
@@ -85,11 +77,11 @@ G_M56054_IG05:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M56054_IG06:        ; bbWeight=0.50, gcVars=00000004 {V01}, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[ecx edi]
-       ; byrRegs -[ebx]
+G_M56054_IG06:        ; bbWeight=0.50, gcVars=00000004 {V01}, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs +[ecx edx]
+       ; byrRegs -[edi]
        ; GC ptr vars +{V01 V02}
-       test     edx, edx
+       test     ebx, ebx
        jge      SHORT G_M56054_IG03
        xor      eax, eax
                        ;; size=6 bbWeight=0.50 PerfScore 0.75
@@ -102,12 +94,12 @@ G_M56054_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
 G_M56054_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[ecx edi]
+       ; gcrRegs -[ecx edx]
        ; GC ptr vars -{V01 V02}
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 126, prolog size 17, PerfScore 42.25, instruction count 52, allocated bytes for code 126 (MethodHash=e0572509) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this (Tier1)
+; Total bytes of code 111, prolog size 12, PerfScore 39.12, instruction count 47, allocated bytes for code 111 (MethodHash=e0572509) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this (Tier1)
 ; ============================================================
 
  
-15 (-11.90%) : 195582.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Canon]:TryEnqueue(System.Canon):ubyte:this (Tier1)
@@ -9,17 +9,16 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  6,  5.52)     ref  ->  ecx         this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]>
-;  V01 arg1         [V01,T02] (  3,  2.52)     ref  ->  [ebp-0x18]  class-hnd single-def <System.__Canon>
-;  V02 loc0         [V02,T04] (  3,  3   )     ref  ->  edi         class-hnd exact single-def <<unknown class>>
+;  V01 arg1         [V01,T02] (  3,  2.52)     ref  ->  [ebp-0x14]  class-hnd single-def <System.__Canon>
+;  V02 loc0         [V02,T04] (  3,  3   )     ref  ->  edx         class-hnd exact single-def <<unknown class>>
 ;  V03 loc1         [V03,T01] (  6,  4.56)     int  ->  [ebp-0x10]  spill-single-def
-;  V04 loc2         [V04,T05] (  3,  3   )     int  ->  edx        
+;  V04 loc2         [V04,T05] (  3,  3   )     int  ->  edi        
 ;* V05 loc3         [V05    ] (  0,  0   )     int  ->  zero-ref   
-;  V06 loc4         [V06,T06] (  3,  2.48)     int  ->  edx        
-;  V07 cse0         [V07,T03] (  4,  3.04)   byref  ->  ebx         "CSE - moderate"
-;  V08 cse1         [V08,T07] (  3,  1.56)     int  ->  [ebp-0x14]  "CSE - moderate"
-;  TEMP_01                                   byref  ->  [ebp-0x1C]
+;  V06 loc4         [V06,T06] (  3,  2.48)     int  ->  ebx        
+;  V07 cse0         [V07,T03] (  4,  3.04)   byref  ->  edi         "CSE - moderate"
+;  V08 cse1         [V08,T07] (  3,  1.56)     int  ->  registers   "CSE - moderate"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 8
 
 G_M56054_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -27,56 +26,49 @@ G_M56054_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 16
-       xor      eax, eax
-       mov      dword ptr [ebp-0x1C], eax
-       mov      gword ptr [ebp-0x18], edx
+       sub      esp, 8
+       mov      gword ptr [ebp-0x14], edx
        ; GC ptr vars +{V01}
-                     ;; size=17 bbWeight=1 PerfScore 6.75
+                      ;; size=12 bbWeight=1 PerfScore 5.50
 G_M56054_IG02:        ; bbWeight=1, gcVars=00000004 {V01}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[ecx]
-       mov      edi, gword ptr [ecx+0x04]
-       ; gcrRegs +[edi]
+       mov      edx, gword ptr [ecx+0x04]
+       ; gcrRegs +[edx]
                         ;; size=3 bbWeight=1 PerfScore 2.00
-G_M56054_IG03:        ; bbWeight=1, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, byref, isz
+G_M56054_IG03:        ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref, isz
        mov      eax, dword ptr [ecx+0x94]
        mov      dword ptr [ebp-0x10], eax
-       mov      edx, eax
-       and      edx, dword ptr [ecx+0x0C]
-       cmp      edx, dword ptr [edi+0x04]
+       mov      edi, eax
+       and      edi, dword ptr [ecx+0x0C]
+       cmp      edi, dword ptr [edx+0x04]
        jae      SHORT G_M56054_IG08
-       lea      ebx, bword ptr [edi+8*edx+0x08]
-       ; byrRegs +[ebx]
-       mov      edx, dword ptr [ebx+0x04]
-       sub      edx, eax
+       lea      edi, bword ptr [edx+8*edi+0x08]
+       ; byrRegs +[edi]
+       mov      ebx, dword ptr [edi+0x04]
+       sub      ebx, eax
        jne      SHORT G_M56054_IG06
                        ;; size=30 bbWeight=1 PerfScore 14.50
-G_M56054_IG04:        ; bbWeight=0.52, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000008 {ebx}, byref, isz
-       lea      edx, bword ptr [ecx+0x94]
-       ; byrRegs +[edx]
-       mov      bword ptr [ebp-0x1C], edx
-       lea      edx, [eax+0x01]
-       ; byrRegs -[edx]
-       mov      esi, bword ptr [ebp-0x1C]
-       ; byrRegs +[esi]
+G_M56054_IG04:        ; bbWeight=0.52, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000080 {edi}, byref, isz
+       lea      ebx, bword ptr [ecx+0x94]
+       ; byrRegs +[ebx]
+       lea      esi, [eax+0x01]
        lock     
-       cmpxchg  dword ptr [esi], edx
+       cmpxchg  dword ptr [ebx], esi
        cmp      eax, dword ptr [ebp-0x10]
-       mov      dword ptr [ebp-0x14], edx
        jne      SHORT G_M56054_IG03
-       mov      esi, gword ptr [ebp-0x18]
+       mov      eax, esi
+       mov      esi, gword ptr [ebp-0x14]
        ; gcrRegs +[esi]
-       ; byrRegs -[esi]
-       mov      edx, ebx
+       mov      edx, edi
+       ; gcrRegs -[edx]
        ; byrRegs +[edx]
        ; GC ptr vars -{V01}
        call     CORINFO_HELP_CHECKED_ASSIGN_REF_ESI
-       ; gcrRegs -[ecx esi edi]
-       ; byrRegs -[edx]
-       mov      ecx, dword ptr [ebp-0x14]
-       mov      dword ptr [ebx+0x04], ecx
+       ; gcrRegs -[ecx esi]
+       ; byrRegs -[edx ebx]
+       mov      dword ptr [edi+0x04], eax
        mov      eax, 1
-                      ;; size=48 bbWeight=0.52 PerfScore 15.30
+                      ;; size=38 bbWeight=0.52 PerfScore 13.35
 G_M56054_IG05:        ; bbWeight=0.52, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
@@ -85,11 +77,11 @@ G_M56054_IG05:        ; bbWeight=0.52, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.52 PerfScore 1.81
-G_M56054_IG06:        ; bbWeight=0.48, gcVars=00000004 {V01}, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[ecx edi]
-       ; byrRegs -[ebx]
+G_M56054_IG06:        ; bbWeight=0.48, gcVars=00000004 {V01}, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs +[ecx edx]
+       ; byrRegs -[edi]
        ; GC ptr vars +{V01 V02}
-       test     edx, edx
+       test     ebx, ebx
        jge      SHORT G_M56054_IG03
        xor      eax, eax
                        ;; size=6 bbWeight=0.48 PerfScore 0.72
@@ -102,12 +94,12 @@ G_M56054_IG07:        ; bbWeight=0.48, epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=0.48 PerfScore 1.69
 G_M56054_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[ecx edi]
+       ; gcrRegs -[ecx edx]
        ; GC ptr vars -{V01 V02}
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 126, prolog size 17, PerfScore 42.77, instruction count 52, allocated bytes for code 126 (MethodHash=e0572509) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this (Tier1)
+; Total bytes of code 111, prolog size 12, PerfScore 39.57, instruction count 47, allocated bytes for code 111 (MethodHash=e0572509) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this (Tier1)
 ; ============================================================
 
  
-15 (-11.90%) : 167959.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.Canon]:TryEnqueue(System.Canon):ubyte:this (Tier1)
@@ -9,17 +9,16 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  6,  5.50)     ref  ->  ecx         this class-hnd single-def <System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]>
-;  V01 arg1         [V01,T02] (  3,  2.50)     ref  ->  [ebp-0x18]  class-hnd single-def <System.__Canon>
-;  V02 loc0         [V02,T04] (  3,  3   )     ref  ->  edi         class-hnd exact single-def <<unknown class>>
+;  V01 arg1         [V01,T02] (  3,  2.50)     ref  ->  [ebp-0x14]  class-hnd single-def <System.__Canon>
+;  V02 loc0         [V02,T04] (  3,  3   )     ref  ->  edx         class-hnd exact single-def <<unknown class>>
 ;  V03 loc1         [V03,T01] (  6,  4.50)     int  ->  [ebp-0x10]  spill-single-def
-;  V04 loc2         [V04,T05] (  3,  3   )     int  ->  edx        
+;  V04 loc2         [V04,T05] (  3,  3   )     int  ->  edi        
 ;* V05 loc3         [V05    ] (  0,  0   )     int  ->  zero-ref   
-;  V06 loc4         [V06,T06] (  3,  2.50)     int  ->  edx        
-;  V07 cse0         [V07,T03] (  4,  3   )   byref  ->  ebx         "CSE - moderate"
-;  V08 cse1         [V08,T07] (  3,  1.50)     int  ->  [ebp-0x14]  "CSE - moderate"
-;  TEMP_01                                   byref  ->  [ebp-0x1C]
+;  V06 loc4         [V06,T06] (  3,  2.50)     int  ->  ebx        
+;  V07 cse0         [V07,T03] (  4,  3   )   byref  ->  edi         "CSE - moderate"
+;  V08 cse1         [V08,T07] (  3,  1.50)     int  ->  registers   "CSE - moderate"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 8
 
 G_M56054_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -27,56 +26,49 @@ G_M56054_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 16
-       xor      eax, eax
-       mov      dword ptr [ebp-0x1C], eax
-       mov      gword ptr [ebp-0x18], edx
+       sub      esp, 8
+       mov      gword ptr [ebp-0x14], edx
        ; GC ptr vars +{V01}
-                     ;; size=17 bbWeight=1 PerfScore 6.75
+                      ;; size=12 bbWeight=1 PerfScore 5.50
 G_M56054_IG02:        ; bbWeight=1, gcVars=00000004 {V01}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[ecx]
-       mov      edi, gword ptr [ecx+0x04]
-       ; gcrRegs +[edi]
+       mov      edx, gword ptr [ecx+0x04]
+       ; gcrRegs +[edx]
                         ;; size=3 bbWeight=1 PerfScore 2.00
-G_M56054_IG03:        ; bbWeight=1, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, byref, isz
+G_M56054_IG03:        ; bbWeight=1, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref, isz
        mov      eax, dword ptr [ecx+0x94]
        mov      dword ptr [ebp-0x10], eax
-       mov      edx, eax
-       and      edx, dword ptr [ecx+0x0C]
-       cmp      edx, dword ptr [edi+0x04]
+       mov      edi, eax
+       and      edi, dword ptr [ecx+0x0C]
+       cmp      edi, dword ptr [edx+0x04]
        jae      SHORT G_M56054_IG08
-       lea      ebx, bword ptr [edi+8*edx+0x08]
-       ; byrRegs +[ebx]
-       mov      edx, dword ptr [ebx+0x04]
-       sub      edx, eax
+       lea      edi, bword ptr [edx+8*edi+0x08]
+       ; byrRegs +[edi]
+       mov      ebx, dword ptr [edi+0x04]
+       sub      ebx, eax
        jne      SHORT G_M56054_IG06
                        ;; size=30 bbWeight=1 PerfScore 14.50
-G_M56054_IG04:        ; bbWeight=0.50, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000008 {ebx}, byref, isz
-       lea      edx, bword ptr [ecx+0x94]
-       ; byrRegs +[edx]
-       mov      bword ptr [ebp-0x1C], edx
-       lea      edx, [eax+0x01]
-       ; byrRegs -[edx]
-       mov      esi, bword ptr [ebp-0x1C]
-       ; byrRegs +[esi]
+G_M56054_IG04:        ; bbWeight=0.50, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000080 {edi}, byref, isz
+       lea      ebx, bword ptr [ecx+0x94]
+       ; byrRegs +[ebx]
+       lea      esi, [eax+0x01]
        lock     
-       cmpxchg  dword ptr [esi], edx
+       cmpxchg  dword ptr [ebx], esi
        cmp      eax, dword ptr [ebp-0x10]
-       mov      dword ptr [ebp-0x14], edx
        jne      SHORT G_M56054_IG03
-       mov      esi, gword ptr [ebp-0x18]
+       mov      eax, esi
+       mov      esi, gword ptr [ebp-0x14]
        ; gcrRegs +[esi]
-       ; byrRegs -[esi]
-       mov      edx, ebx
+       mov      edx, edi
+       ; gcrRegs -[edx]
        ; byrRegs +[edx]
        ; GC ptr vars -{V01}
        call     CORINFO_HELP_CHECKED_ASSIGN_REF_ESI
-       ; gcrRegs -[ecx esi edi]
-       ; byrRegs -[edx]
-       mov      ecx, dword ptr [ebp-0x14]
-       mov      dword ptr [ebx+0x04], ecx
+       ; gcrRegs -[ecx esi]
+       ; byrRegs -[edx ebx]
+       mov      dword ptr [edi+0x04], eax
        mov      eax, 1
-                      ;; size=48 bbWeight=0.50 PerfScore 14.75
+                      ;; size=38 bbWeight=0.50 PerfScore 12.88
 G_M56054_IG05:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
@@ -85,11 +77,11 @@ G_M56054_IG05:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M56054_IG06:        ; bbWeight=0.50, gcVars=00000004 {V01}, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[ecx edi]
-       ; byrRegs -[ebx]
+G_M56054_IG06:        ; bbWeight=0.50, gcVars=00000004 {V01}, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs +[ecx edx]
+       ; byrRegs -[edi]
        ; GC ptr vars +{V01 V02}
-       test     edx, edx
+       test     ebx, ebx
        jge      SHORT G_M56054_IG03
        xor      eax, eax
                        ;; size=6 bbWeight=0.50 PerfScore 0.75
@@ -102,12 +94,12 @@ G_M56054_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
 G_M56054_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[ecx edi]
+       ; gcrRegs -[ecx edx]
        ; GC ptr vars -{V01 V02}
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 126, prolog size 17, PerfScore 42.25, instruction count 52, allocated bytes for code 126 (MethodHash=e0572509) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this (Tier1)
+; Total bytes of code 111, prolog size 12, PerfScore 39.12, instruction count 47, allocated bytes for code 111 (MethodHash=e0572509) for method System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this (Tier1)
 ; ============================================================
 
  
+10 (+7.19%) : 78179.dasm - Microsoft.CodeAnalysis.Shared.Extensions.StringExtensions:ConvertTabToSpace(System.String,int,int,int):int (Tier0-FullOpts)
@@ -32,7 +32,7 @@ G_M48033_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        mov      eax, ebx
        xor      edx, edx
        test     edi, edi
-       jle      SHORT G_M48033_IG13
+       jle      SHORT G_M48033_IG14
        test     ecx, ecx
        je       SHORT G_M48033_IG09
        cmp      dword ptr [ecx+0x04], edi
@@ -66,7 +66,7 @@ G_M48033_IG06:        ; bbWeight=3.96, gcrefRegs=00000002 {ecx}, byrefRegs=00000
 G_M48033_IG07:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[ecx]
        mov      eax, edx
-       jmp      SHORT G_M48033_IG13
+       jmp      SHORT G_M48033_IG14
                      ;; size=4 bbWeight=1 PerfScore 2.25
 G_M48033_IG08:        ; bbWeight=1.98, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[ecx]
@@ -75,7 +75,7 @@ G_M48033_IG08:        ; bbWeight=1.98, gcrefRegs=00000002 {ecx}, byrefRegs=00000
                        ;; size=4 bbWeight=1.98 PerfScore 5.94
 G_M48033_IG09:        ; bbWeight=0.04, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        cmp      edx, dword ptr [ecx+0x04]
-       jae      SHORT G_M48033_IG15
+       jae      SHORT G_M48033_IG17
        mov      dword ptr [ebp-0x14], edx
        cmp      word  ptr [ecx+2*edx+0x08], 9
        jne      SHORT G_M48033_IG11
@@ -87,22 +87,27 @@ G_M48033_IG10:        ; bbWeight=0.02, gcrefRegs=00000002 {ecx}, byrefRegs=00000
        mov      eax, esi
        sub      eax, edx
        add      eax, dword ptr [ebp-0x10]
+       mov      edx, eax
        jmp      SHORT G_M48033_IG12
-                       ;; size=15 bbWeight=0.02 PerfScore 0.62
+                       ;; size=17 bbWeight=0.02 PerfScore 0.63
 G_M48033_IG11:        ; bbWeight=0.02, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
        inc      eax
-                      ;; size=1 bbWeight=0.02 PerfScore 0.01
+       mov      edx, eax
+                       ;; size=3 bbWeight=0.02 PerfScore 0.01
 G_M48033_IG12:        ; bbWeight=0.04, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, dword ptr [ebp-0x14]
-       inc      edx
-       cmp      edx, edi
-       jl       SHORT G_M48033_IG09
+       mov      eax, dword ptr [ebp-0x14]
+       inc      eax
+       cmp      eax, edi
+       jl       SHORT G_M48033_IG16
                         ;; size=8 bbWeight=0.04 PerfScore 0.10
-G_M48033_IG13:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M48033_IG13:        ; bbWeight=0.02, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
+       mov      eax, edx
+                       ;; size=2 bbWeight=0.02 PerfScore 0.01
+G_M48033_IG14:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        sub      eax, ebx
                        ;; size=2 bbWeight=1 PerfScore 0.25
-G_M48033_IG14:        ; bbWeight=1, epilog, nogc, extend
+G_M48033_IG15:        ; bbWeight=1, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -110,11 +115,17 @@ G_M48033_IG14:        ; bbWeight=1, epilog, nogc, extend
        pop      ebp
        ret      8
                        ;; size=10 bbWeight=1 PerfScore 4.50
-G_M48033_IG15:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M48033_IG16:        ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs +[ecx]
+       xchg     eax, edx
+       jmp      SHORT G_M48033_IG09
+                       ;; size=4 bbWeight=0.02 PerfScore 0.06
+G_M48033_IG17:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[ecx]
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 139, prolog size 17, PerfScore 120.34, instruction count 64, allocated bytes for code 139 (MethodHash=4606445e) for method Microsoft.CodeAnalysis.Shared.Extensions.StringExtensions:ConvertTabToSpace(System.String,int,int,int):int (Tier0-FullOpts)
+; Total bytes of code 149, prolog size 17, PerfScore 120.42, instruction count 69, allocated bytes for code 149 (MethodHash=4606445e) for method Microsoft.CodeAnalysis.Shared.Extensions.StringExtensions:ConvertTabToSpace(System.String,int,int,int):int (Tier0-FullOpts)
 ; ============================================================
 
  
+43 (+7.76%) : 287891.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:MergeWithGlobalList(System.Canon[]):this (Tier1)
@@ -10,15 +10,15 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  8,  4.55)     ref  ->  esi         this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  8,  3.85)     ref  ->  edi         class-hnd single-def <System.__Canon[]>
+;  V01 arg1         [V01,T01] (  8,  4.07)     ref  ->  edi         class-hnd single-def <System.__Canon[]>
 ;  V02 loc0         [V02,T02] ( 17,  5.05)     ref  ->  ebx         class-hnd <System.__Canon[]>
 ;  V03 loc1         [V03,T07] (  5,  1.47)     int  ->  [ebp-0x10]  spill-single-def
 ;  V04 loc2         [V04,T05] (  9,  2.35)     int  ->  [ebp-0x14] 
-;  V05 loc3         [V05,T06] (  6,  1.60)     int  ->  [ebp-0x18] 
-;  V06 loc4         [V06,T08] (  9,  1.16)     ref  ->  [ebp-0x2C]  class-hnd spill-single-def <System.__Canon>
-;  V07 loc5         [V07,T12] (  3,  0.70)   ubyte  ->  [ebp-0x1C] 
+;  V05 loc3         [V05,T06] (  6,  1.81)     int  ->  [ebp-0x18] 
+;  V06 loc4         [V06,T08] (  9,  1.16)     ref  ->  [ebp-0x30]  class-hnd spill-single-def <System.__Canon>
+;  V07 loc5         [V07,T09] (  3,  0.91)   ubyte  ->  [ebp-0x1C] 
 ;  V08 loc6         [V08,T03] ( 11,  3.08)     int  ->  [ebp-0x20] 
-;  V09 loc7         [V09,T04] ( 10,  2.15)     ref  ->  [ebp-0x30]  class-hnd <System.__Canon>
+;  V09 loc7         [V09,T04] ( 10,  2.37)     ref  ->  [ebp-0x34]  class-hnd <System.__Canon>
 ;  V10 loc8         [V10,T17] (  3,  0.31)     int  ->  [ebp-0x24] 
 ;  V11 loc9         [V11    ] (  3,  0.47)     ref  ->  [ebp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.__Canon[]>
 ;* V12 tmp0         [V12    ] (  0,  0   )     int  ->  zero-ref    "spilling helperCall"
@@ -28,17 +28,18 @@
 ;* V16 tmp4         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.Reflection.RuntimeMethodInfo>
 ;* V17 tmp5         [V17,T14] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Reflection.RuntimeMethodInfo>
 ;  V18 tmp6         [V18,T16] (  4,  0.43)     int  ->  ecx         "Inline return value spill temp"
-;  V19 tmp7         [V19,T10] (  3,  0.71)     int  ->  ecx         "Inlining Arg"
-;  V20 tmp8         [V20,T18] (  3,  0.31)     int  ->  registers   "Inline return value spill temp"
-;  V21 tmp9         [V21,T11] (  3,  0.71)     int  ->  eax         "Inlining Arg"
+;  V19 tmp7         [V19,T11] (  3,  0.71)     int  ->  ecx         "Inlining Arg"
+;  V20 tmp8         [V20,T18] (  3,  0.31)     int  ->  eax         "Inline return value spill temp"
+;  V21 tmp9         [V21,T12] (  3,  0.71)     int  ->  eax         "Inlining Arg"
 ;* V22 tmp10        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V23 tmp11        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
-;  V24 cse0         [V24,T20] (  2,  0.01)     int  ->  eax         "CSE - conservative"
+;  V24 cse0         [V24,T20] (  2,  0.01)     int  ->  [ebp-0x2C]  spill-single-def "CSE - conservative"
 ;  V25 rat0         [V25,T13] (  3,  0.69)     int  ->  ecx         "Spilling to split statement for tree"
 ;  V26 rat1         [V26,T15] (  3,  0.63)     int  ->  ebx         "runtime lookup"
-;  V27 rat2         [V27,T09] (  3,  0.88)     int  ->  ebx         "fgMakeTemp is creating a new local variable"
+;  V27 rat2         [V27,T10] (  3,  0.88)     int  ->  ebx         "fgMakeTemp is creating a new local variable"
+;  TEMP_01                                     ref  ->  [ebp-0x38]
 ;
-; Lcl frame size = 36
+; Lcl frame size = 44
 
 G_M8298_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -46,13 +47,14 @@ G_M8298_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
        push     edi
        push     esi
        push     ebx
-       sub      esp, 36
+       sub      esp, 44
        xor      eax, eax
        mov      dword ptr [ebp-0x28], eax
+       mov      dword ptr [ebp-0x38], eax
        mov      esi, ecx
        mov      edi, edx
        ; gcrRegs +[edi]
-                      ;; size=18 bbWeight=1 PerfScore 6.25
+                      ;; size=21 bbWeight=1 PerfScore 7.25
 G_M8298_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi]
        mov      ebx, gword ptr [esi+0x04]
@@ -76,211 +78,136 @@ G_M8298_IG04:        ; bbWeight=0.58, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=0.58 PerfScore 2.02
-G_M8298_IG05:        ; bbWeight=0.42, gcVars=00000100 {V06}, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[ecx ebx edi]
+G_M8298_IG05:        ; bbWeight=0.68, gcVars=00000100 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs +[ebx edi]
        ; GC ptr vars +{V06 V08}
-       mov      gword ptr [ebp-0x30], ecx
-       ; GC ptr vars +{V09}
-       mov      ecx, dword ptr [ecx+0x28]
-       ; gcrRegs -[ecx]
-       mov      edx, gword ptr [ebp-0x2C]
-       ; gcrRegs +[edx]
-       cmp      ecx, dword ptr [edx+0x28]
-       jne      SHORT G_M8298_IG12
-                       ;; size=14 bbWeight=0.42 PerfScore 3.39
-G_M8298_IG06:        ; bbWeight=3.42, gcVars=00000110 {V06 V09}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[edx]
-       ; GC ptr vars -{V08}
-       mov      ecx, gword ptr [ebp-0x30]
-       ; gcrRegs +[ecx]
-       mov      dword ptr [ebp-0x20], eax
-       jmp      G_M8298_IG28
-                       ;; size=11 bbWeight=3.42 PerfScore 13.69
+       inc      eax
+       mov      ecx, dword ptr [ebp-0x10]
+       cmp      eax, ecx
+       jl       SHORT G_M8298_IG10
+                       ;; size=8 bbWeight=0.68 PerfScore 1.70
+G_M8298_IG06:        ; bbWeight=0.24, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+       jmp      G_M8298_IG15
+                       ;; size=5 bbWeight=0.24 PerfScore 0.48
 G_M8298_IG07:        ; bbWeight=0.42, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[ecx]
-       ; GC ptr vars -{V06 V09}
+       ; GC ptr vars -{V06 V08}
        mov      eax, dword ptr [ebx+0x04]
        mov      dword ptr [ebp-0x10], eax
        xor      edx, edx
        mov      dword ptr [ebp-0x14], edx
        xor      ecx, ecx
        cmp      dword ptr [edi+0x04], 0
-       jle      G_M8298_IG33
+       jle      G_M8298_IG26
                         ;; size=23 bbWeight=0.42 PerfScore 3.58
 G_M8298_IG08:        ; bbWeight=0.24, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      dword ptr [ebp-0x18], ecx
        mov      eax, gword ptr [edi+4*ecx+0x08]
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x2C], eax
+       mov      gword ptr [ebp-0x30], eax
        ; GC ptr vars +{V06}
        xor      eax, eax
        ; gcrRegs -[eax]
        mov      dword ptr [ebp-0x1C], eax
        xor      eax, eax
        cmp      dword ptr [ebp-0x10], 0
-       jle      SHORT G_M8298_IG16
+       jle      SHORT G_M8298_IG15
                         ;; size=23 bbWeight=0.24 PerfScore 2.05
-G_M8298_IG09:        ; bbWeight=0.12, gcVars=00000100 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M8298_IG09:        ; bbWeight=0.12, gcVars=00000100 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
        test     ebx, ebx
-       je       SHORT G_M8298_IG14
-       cmp      gword ptr [ebp-0x2C], 0
-       je       SHORT G_M8298_IG14
-       mov      ecx, gword ptr [ebp-0x2C]
+       je       G_M8298_IG31
+       cmp      gword ptr [ebp-0x30], 0
+       je       G_M8298_IG31
+       mov      ecx, gword ptr [ebp-0x30]
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], 0xD1FFAB1E
-       jne      SHORT G_M8298_IG14
+       jne      G_M8298_IG31
        mov      ecx, dword ptr [ebp-0x10]
        ; gcrRegs -[ecx]
        cmp      dword ptr [ebx+0x04], ecx
-       jl       SHORT G_M8298_IG14
-                       ;; size=29 bbWeight=0.12 PerfScore 1.72
+       jl       G_M8298_IG31
+                       ;; size=45 bbWeight=0.12 PerfScore 1.72
 G_M8298_IG10:        ; bbWeight=0.52, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebx+4*eax+0x08]
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       SHORT G_M8298_IG16
+       je       SHORT G_M8298_IG15
                        ;; size=8 bbWeight=0.52 PerfScore 1.71
 G_M8298_IG11:        ; bbWeight=0.44, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        cmp      dword ptr [ecx], 0xD1FFAB1E
-       je       SHORT G_M8298_IG05
+       jne      SHORT G_M8298_IG05
                         ;; size=8 bbWeight=0.44 PerfScore 1.77
-G_M8298_IG12:        ; bbWeight=0.68, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ecx]
-       inc      eax
-       mov      ecx, dword ptr [ebp-0x10]
-       cmp      eax, ecx
-       jl       SHORT G_M8298_IG10
-                       ;; size=8 bbWeight=0.68 PerfScore 1.70
-G_M8298_IG13:        ; bbWeight=0.12, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       jmp      SHORT G_M8298_IG16
-                       ;; size=2 bbWeight=0.12 PerfScore 0.24
-G_M8298_IG14:        ; bbWeight=0.01, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      eax, dword ptr [ebx+0x04]
-       jae      G_M8298_IG39
-       mov      dword ptr [ebp-0x20], eax
-       mov      ecx, gword ptr [ebx+4*eax+0x08]
-       ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x30], ecx
+G_M8298_IG12:        ; bbWeight=0.42, gcrefRegs=000000CA {ecx ebx esi edi}, byrefRegs=00000000 {}, byref
+       mov      gword ptr [ebp-0x34], ecx
        ; GC ptr vars +{V09}
-       test     ecx, ecx
-       jne      SHORT G_M8298_IG24
-                       ;; size=23 bbWeight=0.01 PerfScore 0.05
-G_M8298_IG15:        ; bbWeight=0.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[ecx]
-       ; GC ptr vars -{V09}
-       mov      eax, dword ptr [ebp-0x20]
-                       ;; size=3 bbWeight=0.00 PerfScore 0.00
-G_M8298_IG16:        ; bbWeight=0.24, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      dword ptr [ebp-0x1C], 0
-       jne      SHORT G_M8298_IG22
-       mov      edx, dword ptr [ebp-0x14]
-       test     edx, edx
-       jne      SHORT G_M8298_IG17
-       mov      edx, eax
-                       ;; size=15 bbWeight=0.24 PerfScore 1.33
-G_M8298_IG17:        ; bbWeight=0.24, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
-       mov      dword ptr [ebp-0x14], edx
-       cmp      dword ptr [ebx+0x04], edx
-       jg       G_M8298_IG31
-                       ;; size=12 bbWeight=0.24 PerfScore 1.20
-G_M8298_IG18:        ; bbWeight=0.16, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       cmp      byte  ptr [esi+0x0C], 0
-       jne      G_M8298_IG40
-       mov      ecx, dword ptr [ebx+0x04]
-       add      ecx, ecx
-       cmp      ecx, 4
-       jg       SHORT G_M8298_IG23
-                       ;; size=20 bbWeight=0.16 PerfScore 1.17
-G_M8298_IG19:        ; bbWeight=0.12, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
-       mov      ecx, 4
-                       ;; size=5 bbWeight=0.12 PerfScore 0.03
-G_M8298_IG20:        ; bbWeight=0.16, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
-       mov      eax, dword ptr [edi+0x04]
-       cmp      ecx, eax
-       jge      G_M8298_IG35
-                       ;; size=11 bbWeight=0.16 PerfScore 0.51
-G_M8298_IG21:        ; bbWeight=0.04, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
-       jmp      G_M8298_IG38
-                       ;; size=5 bbWeight=0.04 PerfScore 0.08
-G_M8298_IG22:        ; bbWeight=0.12, gcVars=00000000 {}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; GC ptr vars -{V06}
-       mov      edx, dword ptr [ebp-0x14]
-       jmp      G_M8298_IG32
-                       ;; size=8 bbWeight=0.12 PerfScore 0.36
-G_M8298_IG23:        ; bbWeight=0.04, gcVars=00000100 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars +{V06 V08}
-       jmp      SHORT G_M8298_IG20
-                       ;; size=2 bbWeight=0.04 PerfScore 0.08
-G_M8298_IG24:        ; bbWeight=0.00, gcVars=00000110 {V06 V09}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V08} +{V04 V09}
-       mov      ecx, gword ptr [ebp-0x2C]
-       ; gcrRegs +[ecx]
-       cmp      dword ptr [ecx], 0xD1FFAB1E
-       je       SHORT G_M8298_IG27
-       mov      ecx, gword ptr [ebp-0x2C]
-       mov      edx, gword ptr [ebp-0x30]
-       ; gcrRegs +[edx]
-       mov      eax, dword ptr [ecx]
-       mov      eax, dword ptr [eax+0x2C]
-       call     [eax+0x10]<unknown method>
-       ; gcrRegs -[ecx edx]
-       test     eax, eax
+       mov      edx, dword ptr [ecx+0x28]
        mov      ecx, gword ptr [ebp-0x30]
-       ; gcrRegs +[ecx]
-       jne      SHORT G_M8298_IG28
-                       ;; size=32 bbWeight=0.00 PerfScore 0.07
-G_M8298_IG25:        ; bbWeight=0.01, gcVars=00000100 {V06}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       cmp      edx, dword ptr [ecx+0x28]
+       jne      G_M8298_IG05
...
  
+14 (+8.75%) : 442401.dasm - System.MemoryExtensions:TrimEnd(System.ReadOnlySpan1[ushort],System.ReadOnlySpan1[ushort]):System.ReadOnlySpan`1ushort
@@ -9,23 +9,23 @@
 ; 1 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 RetBuf       [V00,T04] (  5,  4   )   byref  ->  [ebp-0x14]  single-def
+;  V00 RetBuf       [V00,T04] (  5,  4   )   byref  ->  [ebp-0x18]  single-def
 ;  V01 arg0         [V01,T09] (  3,  2   )  struct ( 8) [ebp+0x10]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
 ;  V02 arg1         [V02,T11] (  2,  2   )  struct ( 8) [ebp+0x08]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
-;  V03 loc0         [V03,T02] (  8,  7.60)     int  ->  ebx        
+;  V03 loc0         [V03,T02] (  8,  7.60)     int  ->  edx        
 ;  V04 loc1         [V04,T00] (  5, 17   )     int  ->  edi        
-;  V05 loc2         [V05,T01] (  4,  8.02)     int  ->  ebx         "Inlining Arg"
+;  V05 loc2         [V05,T01] (  4,  8.02)     int  ->  [ebp-0x10]  spill-single-def "Inlining Arg"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V07 tmp2         [V07    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V08 tmp3         [V08,T10] (  2,  2   )   byref  ->  edi         single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;  V09 tmp4         [V09,T12] (  2,  2   )     int  ->  ebx         "field V06._length (fldOffset=0x4)" P-INDEP
-;  V10 tmp5         [V10,T08] (  3,  2.80)   byref  ->  [ebp-0x18]  spill-single-def "V01.[000..004)"
-;  V11 tmp6         [V11,T07] (  4,  3.80)     int  ->  [ebp-0x10]  spill-single-def "V01.[004..008)"
-;  V12 tmp7         [V12,T05] (  2,  5   )   byref  ->  eax         single-def "V02.[000..004)"
-;  V13 tmp8         [V13,T03] (  4,  7   )     int  ->  edx         "V02.[004..008)"
-;  V14 cse0         [V14,T06] (  2,  4.80)     int  ->  ecx         hoist "CSE - moderate"
+;  V10 tmp5         [V10,T08] (  3,  2.80)   byref  ->  [ebp-0x1C]  spill-single-def "V01.[000..004)"
+;  V11 tmp6         [V11,T07] (  4,  3.80)     int  ->  [ebp-0x14]  spill-single-def "V01.[004..008)"
+;  V12 tmp7         [V12,T05] (  2,  5   )   byref  ->  ecx         single-def "V02.[000..004)"
+;  V13 tmp8         [V13,T03] (  4,  7   )     int  ->  eax         "V02.[004..008)"
+;  V14 cse0         [V14,T06] (  2,  4.80)     int  ->  ebx         hoist "CSE - moderate"
 ;
-; Lcl frame size = 12
+; Lcl frame size = 16
 
 G_M46891_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -33,77 +33,82 @@ G_M46891_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 12
-       mov      bword ptr [ebp-0x14], ecx
+       sub      esp, 16
+       mov      bword ptr [ebp-0x18], ecx
        ; GC ptr vars +{V00}
                        ;; size=12 bbWeight=1 PerfScore 5.50
 G_M46891_IG02:        ; bbWeight=1, gcVars=00000010 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        mov      edi, bword ptr [ebp+0x10]
        ; byrRegs +[edi]
-       mov      bword ptr [ebp-0x18], edi
+       mov      bword ptr [ebp-0x1C], edi
        ; GC ptr vars +{V10}
-       mov      ecx, dword ptr [ebp+0x14]
-       mov      dword ptr [ebp-0x10], ecx
-       mov      eax, bword ptr [ebp+0x08]
-       ; byrRegs +[eax]
-       mov      edx, dword ptr [ebp+0x0C]
-       test     edx, edx
+       mov      ebx, dword ptr [ebp+0x14]
+       mov      dword ptr [ebp-0x14], ebx
+       mov      ecx, bword ptr [ebp+0x08]
+       ; byrRegs +[ecx]
+       mov      eax, dword ptr [ebp+0x0C]
+       test     eax, eax
        je       SHORT G_M46891_IG12
-       lea      ebx, [ecx-0x01]
-       test     ebx, ebx
+       lea      edx, [ebx-0x01]
+       test     edx, edx
        jl       SHORT G_M46891_IG08
                        ;; size=29 bbWeight=1 PerfScore 9.00
-G_M46891_IG03:        ; bbWeight=1, gcVars=00000110 {V00 V10}, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, gcvars, byref, isz
+G_M46891_IG03:        ; bbWeight=1, gcVars=00000110 {V00 V10}, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, gcvars, byref, isz
        ; byrRegs -[edi]
        xor      edi, edi
-       test     edx, edx
+       test     eax, eax
        jle      SHORT G_M46891_IG08
                        ;; size=6 bbWeight=1 PerfScore 1.50
-G_M46891_IG04:        ; bbWeight=0.80, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref, isz
-       cmp      ebx, ecx
+G_M46891_IG04:        ; bbWeight=0.80, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       cmp      edx, ebx
        jae      SHORT G_M46891_IG11
-       mov      ecx, bword ptr [ebp-0x18]
-       ; byrRegs +[ecx]
-       movzx    ecx, word  ptr [ecx+2*ebx]
-       ; byrRegs -[ecx]
+       mov      ebx, bword ptr [ebp-0x1C]
+       ; byrRegs +[ebx]
+       movzx    ebx, word  ptr [ebx+2*edx]
+       ; byrRegs -[ebx]
                         ;; size=11 bbWeight=0.80 PerfScore 3.40
-G_M46891_IG05:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref, isz
-       movzx    esi, word  ptr [eax+2*edi]
-       cmp      esi, ecx
+G_M46891_IG05:        ; bbWeight=4, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       movzx    esi, word  ptr [ecx+2*edi]
+       cmp      esi, ebx
        je       SHORT G_M46891_IG07
        inc      edi
-       cmp      edi, edx
+       cmp      edi, eax
        jl       SHORT G_M46891_IG05
                        ;; size=13 bbWeight=4 PerfScore 19.00
 G_M46891_IG06:        ; bbWeight=0.80, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; byrRegs -[eax]
-       mov      ecx, dword ptr [ebp-0x10]
+       ; byrRegs -[ecx]
+       mov      esi, bword ptr [ebp-0x18]
+       ; byrRegs +[esi]
+       mov      bword ptr [ebp-0x18], esi
+       mov      ebx, dword ptr [ebp-0x14]
        jmp      SHORT G_M46891_IG08
-                     ;; size=5 bbWeight=0.80 PerfScore 2.40
-G_M46891_IG07:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000001 {eax}, byref, isz
-       ; byrRegs +[eax]
-       dec      ebx
-       mov      ecx, dword ptr [ebp-0x10]
+                        ;; size=11 bbWeight=0.80 PerfScore 4.00
+G_M46891_IG07:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000002 {ecx}, byref, isz
+       ; byrRegs -[esi] +[ecx]
+       dec      edx
+       mov      ebx, dword ptr [ebp-0x14]
        jns      SHORT G_M46891_IG03
                        ;; size=6 bbWeight=1 PerfScore 2.25
 G_M46891_IG08:        ; bbWeight=1.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; byrRegs -[eax]
-       inc      ebx
-       cmp      ebx, ecx
+       ; byrRegs -[ecx]
+       lea      eax, [edx+0x01]
+       mov      dword ptr [ebp-0x10], eax
+       cmp      eax, ebx
        ja       SHORT G_M46891_IG14
-                      ;; size=5 bbWeight=1.00 PerfScore 1.51
+                        ;; size=10 bbWeight=1.00 PerfScore 2.76
 G_M46891_IG09:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      ecx, ebx
+       mov      ecx, eax
        not      ecx
        shr      ecx, 31
        call     [<unknown method>]
-       mov      edi, bword ptr [ebp-0x18]
+       mov      edi, bword ptr [ebp-0x1C]
        ; byrRegs +[edi]
-       mov      esi, bword ptr [ebp-0x14]
+       mov      ebx, dword ptr [ebp-0x10]
+       mov      esi, bword ptr [ebp-0x18]
        ; byrRegs +[esi]
        mov      bword ptr [esi], edi
        mov      dword ptr [esi+0x04], ebx
-                        ;; size=24 bbWeight=1 PerfScore 8.00
+                      ;; size=27 bbWeight=1 PerfScore 9.00
 G_M46891_IG10:        ; bbWeight=1, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
@@ -119,7 +124,7 @@ G_M46891_IG11:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
                        ;; size=5 bbWeight=0 PerfScore 0.00
 G_M46891_IG12:        ; bbWeight=0, gcVars=00000010 {V00}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars +{V00 V04}
-       mov      esi, bword ptr [ebp-0x14]
+       mov      esi, bword ptr [ebp-0x18]
        ; byrRegs +[esi]
        push     dword ptr [ebp+0x14]
        push     bword ptr [ebp+0x10]
@@ -144,6 +149,6 @@ G_M46891_IG14:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 160, prolog size 12, PerfScore 57.06, instruction count 67, allocated bytes for code 160 (MethodHash=f7e248d4) for method System.MemoryExtensions:TrimEnd(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort] (Tier1)
+; Total bytes of code 174, prolog size 12, PerfScore 60.91, instruction count 71, allocated bytes for code 174 (MethodHash=f7e248d4) for method System.MemoryExtensions:TrimEnd(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort] (Tier1)
 ; ============================================================
 
  
  
librariestestsnotieredcompilation.run.windows.x86.Release.mch
-19 (-5.56%) : 278087.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:g_findInitializer|1060(System.Collections.Immutable.ImmutableArray1[System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]],int,Microsoft.CodeAnalysis.SyntaxTree,byref,byref):ubyte (FullOpts)
@@ -12,7 +12,7 @@
 ;  V01 arg1         [V01,T08] (  4,  4.50)     int  ->  [ebp-0x10]  single-def
 ;  V02 arg2         [V02,T09] (  3,  4   )     ref  ->  [ebp-0x2C]  class-hnd single-def <Microsoft.CodeAnalysis.SyntaxTree>
 ;  V03 arg3         [V03,T16] (  2,  1   )   byref  ->  [ebp+0x0C]  single-def
-;  V04 arg4         [V04,T05] (  5, 10   )   byref  ->  [ebp+0x08]  single-def
+;  V04 arg4         [V04,T05] (  5, 10   )   byref  ->  esi         single-def
 ;* V05 loc0         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]]>
 ;* V06 loc1         [V06    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]>
 ;  V07 loc2         [V07    ] (  3,  6   )  struct ( 8) [ebp-0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.Text.TextSpan>
@@ -35,7 +35,7 @@
 ;  V24 tmp15        [V24,T14] (  2,  2   )     ref  ->  eax         single-def "field V00.array (fldOffset=0x0)" P-INDEP
 ;  V25 tmp16        [V25,T12] (  2,  5   )     ref  ->  [ebp-0x30]  spill-single-def "field V05._array (fldOffset=0x0)" P-INDEP
 ;  V26 tmp17        [V26,T01] (  4, 13   )     int  ->  ebx         "field V05._index (fldOffset=0x4)" P-INDEP
-;  V27 tmp18        [V27,T00] (  9, 19.50)     ref  ->  [ebp-0x34]  "field V06.array (fldOffset=0x0)" P-INDEP
+;  V27 tmp18        [V27,T00] (  9, 19.50)     ref  ->  [ebp-0x34]  spill-single-def "field V06.array (fldOffset=0x0)" P-INDEP
 ;  V28 tmp19        [V28    ] (  2,  4   )     int  ->  [ebp-0x18]  do-not-enreg[X] addr-exposed "field V07.<Start>k__BackingField (fldOffset=0x0)" P-DEP
 ;  V29 tmp20        [V29    ] (  2,  4   )     int  ->  [ebp-0x14]  do-not-enreg[X] addr-exposed "field V07.<Length>k__BackingField (fldOffset=0x4)" P-DEP
 ;* V30 tmp21        [V30    ] (  0,  0   )     ref  ->  zero-ref    "field V10.FieldOpt (fldOffset=0x0)" P-INDEP
@@ -79,30 +79,28 @@ G_M25641_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=35 bbWeight=1 PerfScore 12.08
 G_M25641_IG02:        ; bbWeight=1, gcVars=00000200 {V02}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref
        xor      ecx, ecx
-       mov      bword ptr [ebp+0x08], esi
        mov      dword ptr [esi], ecx
        mov      edx, dword ptr [eax+0x04]
        mov      dword ptr [ebp-0x28], edx
        mov      gword ptr [ebp-0x30], eax
        ; GC ptr vars +{V25}
-                      ;; size=16 bbWeight=1 PerfScore 6.25
-G_M25641_IG03:        ; bbWeight=1, gcVars=00001200 {V02 V25}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref
-       ; byrRegs -[esi]
+                      ;; size=13 bbWeight=1 PerfScore 5.25
+G_M25641_IG03:        ; bbWeight=1, gcVars=00001200 {V02 V25}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref
        xor      ebx, ebx
        test     edx, edx
        jle      G_M25641_IG10
                        ;; size=10 bbWeight=1 PerfScore 1.50
-G_M25641_IG04:        ; bbWeight=4, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
+G_M25641_IG04:        ; bbWeight=4, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, byref, isz
        mov      ecx, gword ptr [eax+4*ecx+0x08]
        ; gcrRegs +[ecx]
+       mov      gword ptr [ebp-0x34], ecx
+       ; GC ptr vars +{V27}
        mov      edi, dword ptr [ecx+0x04]
        test     edi, edi
        je       SHORT G_M25641_IG09
-                      ;; size=11 bbWeight=4 PerfScore 21.00
-G_M25641_IG05:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=14 bbWeight=4 PerfScore 25.00
+G_M25641_IG05:        ; bbWeight=2, gcVars=00001201 {V02 V25 V27}, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, gcvars, byref, isz
        ; gcrRegs -[eax]
-       mov      gword ptr [ebp-0x34], ecx
-       ; GC ptr vars +{V27}
        mov      eax, gword ptr [ecx+0x0C]
        ; gcrRegs +[eax]
        mov      ecx, eax
@@ -127,14 +125,14 @@ G_M25641_IG05:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        mov      ecx, gword ptr [ebp-0x20]
        ; gcrRegs +[ecx]
        jmp      SHORT G_M25641_IG08
-                      ;; size=56 bbWeight=2 PerfScore 53.00
-G_M25641_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+                     ;; size=53 bbWeight=2 PerfScore 51.00
+G_M25641_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
        ; gcrRegs -[ecx]
        mov      ecx, gword ptr [ebp-0x34]
        ; gcrRegs +[ecx]
        jmp      SHORT G_M25641_IG09
                        ;; size=5 bbWeight=1 PerfScore 3.00
-G_M25641_IG07:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M25641_IG07:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
        ; gcrRegs -[ecx]
        mov      eax, gword ptr [ebp-0x34]
        ; gcrRegs +[eax]
@@ -145,7 +143,7 @@ G_M25641_IG07:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; gcrRegs +[ecx]
        ; byrRegs -[ecx]
                        ;; size=11 bbWeight=2 PerfScore 13.00
-G_M25641_IG08:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+G_M25641_IG08:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref, isz
        ; gcrRegs -[eax]
        lea      edx, [ebp-0x18]
        mov      dword ptr [ebp-0x38], edx
@@ -153,24 +151,22 @@ G_M25641_IG08:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        mov      edx, dword ptr [edx+0x2C]
        mov      dword ptr [ebp-0x3C], edx
        mov      edx, dword ptr [ebp-0x38]
-       mov      esi, dword ptr [ebp-0x3C]
-       call     [esi+0x14]<unknown method>
+       mov      eax, dword ptr [ebp-0x3C]
+       call     [eax+0x14]<unknown method>
        ; gcrRegs -[ecx]
        mov      eax, dword ptr [ebp-0x18]
        add      eax, dword ptr [ebp-0x14]
-       mov      esi, dword ptr [ebp-0x10]
-       cmp      eax, esi
-       mov      dword ptr [ebp-0x10], esi
+       mov      edx, dword ptr [ebp-0x10]
+       cmp      eax, edx
+       mov      dword ptr [ebp-0x10], edx
        mov      ecx, gword ptr [ebp-0x34]
        ; gcrRegs +[ecx]
        jg       SHORT G_M25641_IG12
                        ;; size=42 bbWeight=2 PerfScore 37.50
-G_M25641_IG09:        ; bbWeight=4, gcVars=00001200 {V02 V25}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
-       ; GC ptr vars -{V27}
-       mov      esi, bword ptr [ebp+0x08]
-       ; byrRegs +[esi]
+G_M25641_IG09:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref
        mov      edi, dword ptr [esi]
        push     ecx
+       ; GC ptr vars -{V27}
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<TryCalculateSyntaxOffsetOfPositionInInitializer>g__getGroupLength|106_1(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]):int]
        ; gcrRegs -[ecx]
        add      eax, edi
@@ -179,11 +175,10 @@ G_M25641_IG09:        ; bbWeight=4, gcVars=00001200 {V02 V25}, gcrefRegs=0000000
        mov      ebx, ecx
        mov      edi, dword ptr [ebp-0x28]
        cmp      edi, ebx
-       mov      bword ptr [ebp+0x08], esi
        mov      eax, gword ptr [ebp-0x30]
        ; gcrRegs +[eax]
        jg       G_M25641_IG04
-                        ;; size=38 bbWeight=4 PerfScore 53.00
+                     ;; size=32 bbWeight=4 PerfScore 45.00
 G_M25641_IG10:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax]
        ; byrRegs -[esi]
@@ -203,9 +198,9 @@ G_M25641_IG11:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
        pop      ebp
        ret      12
                        ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M25641_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M25641_IG12:        ; bbWeight=0.50, gcVars=00000001 {V27}, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, gcvars, byref, isz
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x34], ecx
+       ; byrRegs +[esi]
        ; GC ptr vars +{V27}
        push     ecx
        mov      ecx, dword ptr [ebp-0x10]
@@ -214,17 +209,11 @@ G_M25641_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000002 {e
        mov      ebx, eax
        test     ebx, ebx
        jl       SHORT G_M25641_IG10
-       mov      eax, gword ptr [ebp-0x34]
-       ; gcrRegs +[eax]
-       mov      esi, bword ptr [ebp+0x08]
-       ; byrRegs +[esi]
-       mov      edx, dword ptr [esi]
-       mov      dword ptr [ebp-0x3C], edx
-       mov      gword ptr [ebp-0x34], eax
-       push     eax
+       mov      eax, dword ptr [esi]
+       mov      dword ptr [ebp-0x3C], eax
+       push     gword ptr [ebp-0x34]
        mov      ecx, ebx
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<TryCalculateSyntaxOffsetOfPositionInInitializer>g__getPrecedingInitializersLength|106_2(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer],int):int]
-       ; gcrRegs -[eax]
        add      eax, dword ptr [ebp-0x3C]
        mov      dword ptr [esi], eax
        cmp      ebx, edi
@@ -241,7 +230,7 @@ G_M25641_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000002 {e
        call     CORINFO_HELP_ASSIGN_BYREF
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      eax, 1
-                       ;; size=76 bbWeight=0.50 PerfScore 13.62
+                      ;; size=66 bbWeight=0.50 PerfScore 11.62
 G_M25641_IG13:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
@@ -259,6 +248,6 @@ G_M25641_IG15:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 342, prolog size 23, PerfScore 220.08, instruction count 124, allocated bytes for code 342 (MethodHash=36369bd6) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<TryCalculateSyntaxOffsetOfPositionInInitializer>g__findInitializer|106_0(System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]],int,Microsoft.CodeAnalysis.SyntaxTree,byref,byref):ubyte (FullOpts)
+; Total bytes of code 323, prolog size 23, PerfScore 211.08, instruction count 117, allocated bytes for code 323 (MethodHash=36369bd6) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<TryCalculateSyntaxOffsetOfPositionInInitializer>g__findInitializer|106_0(System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]],int,Microsoft.CodeAnalysis.SyntaxTree,byref,byref):ubyte (FullOpts)
 ; ============================================================
 
  
-34 (-5.55%) : 278403.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanUnicodeEscape(ubyte,byref,byref):ushort:this (FullOpts)
@@ -17,29 +17,29 @@
 ;  V06 loc2         [V06,T13] (  5,  9.50)     int  ->  [ebp-0x18] 
 ;  V07 loc3         [V07,T07] (  4, 12.50)     int  ->  edi        
 ;  V08 loc4         [V08,T14] (  4,  9   )     int  ->  [ebp-0x1C] 
-;  V09 loc5         [V09,T08] (  4, 12.50)     int  ->  [ebp-0x20] 
+;  V09 loc5         [V09,T08] (  4, 12.50)     int  ->  edi        
 ;* V10 loc6         [V10    ] (  0,  0   )  ushort  ->  zero-ref   
 ;  V11 tmp0         [V11,T19] (  3,  6   )     ref  ->  edx         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;  V12 tmp1         [V12,T20] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;  V13 tmp2         [V13,T22] (  3,  3   )     ref  ->  edi         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
-;  V14 tmp3         [V14,T05] (  7, 20   )  ushort  ->  [ebp-0x24]  "Inline return value spill temp"
-;  V15 tmp4         [V15,T00] (  6, 36   )     ref  ->  [ebp-0x2C]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
+;  V14 tmp3         [V14,T05] (  7, 20   )  ushort  ->  [ebp-0x20]  "Inline return value spill temp"
+;  V15 tmp4         [V15,T00] (  6, 36   )     ref  ->  [ebp-0x28]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;  V16 tmp5         [V16,T16] (  3,  8   )     int  ->  ecx         "Inline return value spill temp"
 ;  V17 tmp6         [V17,T03] (  3, 24   )     ref  ->  ecx         class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
-;  V18 tmp7         [V18,T23] (  3,  3   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
-;  V19 tmp8         [V19,T06] (  6, 16   )  ushort  ->  [ebp-0x28]  "Inline return value spill temp"
-;  V20 tmp9         [V20,T01] (  6, 36   )     ref  ->  [ebp-0x30]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
+;  V18 tmp7         [V18,T23] (  3,  3   )     ref  ->  edi         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
+;  V19 tmp8         [V19,T06] (  6, 16   )  ushort  ->  [ebp-0x24]  "Inline return value spill temp"
+;  V20 tmp9         [V20,T01] (  6, 36   )     ref  ->  [ebp-0x2C]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;  V21 tmp10        [V21,T17] (  3,  8   )     int  ->  ecx         "Inline return value spill temp"
 ;  V22 tmp11        [V22,T04] (  3, 24   )     ref  ->  ecx         class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;  V23 tmp12        [V23,T09] (  3, 12   )     ref  ->  ecx         "arr expr"
-;  V24 tmp13        [V24,T11] (  3, 12   )     int  ->  edx         "index expr"
+;  V24 tmp13        [V24,T11] (  3, 12   )     int  ->  eax         "index expr"
 ;  V25 tmp14        [V25,T10] (  3, 12   )     ref  ->  ecx         "arr expr"
 ;  V26 tmp15        [V26,T12] (  3, 12   )     int  ->  eax         "index expr"
 ;  V27 cse0         [V27,T24] (  3,  3   )     ref  ->  ecx         "CSE - conservative"
 ;  V28 cse1         [V28,T25] (  3,  3   )     ref  ->  ecx         "CSE - conservative"
-;  V29 cse2         [V29,T21] (  6,  3   )     ref  ->  [ebp-0x34]  multi-def "CSE - conservative"
+;  V29 cse2         [V29,T21] (  6,  3   )     ref  ->  ecx         multi-def "CSE - conservative"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M15457_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -47,7 +47,7 @@ G_M15457_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 40
+       sub      esp, 32
        mov      esi, ecx
        ; gcrRegs +[esi]
        mov      ebx, edx
@@ -127,7 +127,7 @@ G_M15457_IG06:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
 G_M15457_IG07:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      eax, gword ptr [esi+0x04]
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x2C], eax
+       mov      gword ptr [ebp-0x28], eax
        ; GC ptr vars +{V15}
        mov      ecx, dword ptr [eax+0x14]
        cmp      ecx, dword ptr [eax+0x1C]
@@ -139,7 +139,7 @@ G_M15457_IG08:        ; bbWeight=2, gcVars=00000001 {V15}, gcrefRegs=00000041 {e
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
        test     eax, eax
-       mov      eax, gword ptr [ebp-0x2C]
+       mov      eax, gword ptr [ebp-0x28]
        ; gcrRegs +[eax]
        jne      SHORT G_M15457_IG09
        mov      eax, 0xFFFF
@@ -160,12 +160,12 @@ G_M15457_IG10:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=00000040 {esi}
        ; gcrRegs -[ecx]
        ; GC ptr vars -{V15}
        mov      dword ptr [ebp-0x14], eax
-       mov      dword ptr [ebp-0x24], eax
+       mov      dword ptr [ebp-0x20], eax
        mov      ecx, eax
        call     [Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsHexDigit(ushort):ubyte]
        test     eax, eax
        je       SHORT G_M15457_IG15
-       mov      ecx, dword ptr [ebp-0x24]
+       mov      ecx, dword ptr [ebp-0x20]
        mov      edx, ecx
        sub      edx, 48
        cmp      edx, 9
@@ -198,7 +198,7 @@ G_M15457_IG14:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
                        ;; size=5 bbWeight=0.50 PerfScore 1.50
 G_M15457_IG15:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        test     bl, bl
-       jne      SHORT G_M15457_IG17
+       jne      SHORT G_M15457_IG16
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      edx, dword ptr [ebp-0x10]
@@ -209,23 +209,21 @@ G_M15457_IG15:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        call     CORINFO_HELP_CHECKED_ASSIGN_REF_EAX
        ; gcrRegs -[eax]
        ; byrRegs -[edx]
-       mov      edi, dword ptr [ebp-0x14]
-                       ;; size=26 bbWeight=0.50 PerfScore 4.25
+                       ;; size=23 bbWeight=0.50 PerfScore 3.75
 G_M15457_IG16:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      eax, dword ptr [ebp-0x18]
        cmp      eax, 0xD1FFAB1E
        jbe      SHORT G_M15457_IG18
        test     bl, bl
-       jne      G_M15457_IG32
-       mov      dword ptr [ebp-0x14], edi
+       jne      SHORT G_M15457_IG17
        jmp      G_M15457_IG04
-                      ;; size=26 bbWeight=0.50 PerfScore 3.25
-G_M15457_IG17:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      edi, dword ptr [ebp-0x14]
-       jmp      SHORT G_M15457_IG16
-                       ;; size=5 bbWeight=0.25 PerfScore 0.75
-G_M15457_IG18:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+                       ;; size=19 bbWeight=0.50 PerfScore 2.75
+G_M15457_IG17:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi]
+       mov      edi, dword ptr [ebp-0x14]
+       jmp      G_M15457_IG32
+                       ;; size=8 bbWeight=0.25 PerfScore 0.75
+G_M15457_IG18:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, eax
        mov      edx, bword ptr [ebp+0x0C]
        ; byrRegs +[edx]
@@ -241,14 +239,12 @@ G_M15457_IG19:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      dword ptr [ebp-0x1C], edx
        mov      ecx, gword ptr [esi+0x04]
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x34], ecx
-       ; GC ptr vars +{V29}
-       inc      dword ptr [ecx+0x14]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      edi, ecx
+       ; gcrRegs +[edi]
+       inc      dword ptr [edi+0x14]
        cmp      dword ptr [ecx], ecx
-       ; GC ptr vars -{V29}
        call     [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:PeekChar():ushort:this]
-       ; gcrRegs -[ecx]
+       ; gcrRegs -[ecx edi]
        mov      ecx, eax
        call     [Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsHexDigit(ushort):ubyte]
        test     eax, eax
@@ -256,7 +252,7 @@ G_M15457_IG19:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        test     bl, bl
        jne      SHORT G_M15457_IG20
        jmp      G_M15457_IG04
-                        ;; size=46 bbWeight=0.50 PerfScore 11.00
+                      ;; size=42 bbWeight=0.50 PerfScore 10.12
 G_M15457_IG20:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi]
        mov      edi, dword ptr [ebp-0x14]
@@ -264,50 +260,49 @@ G_M15457_IG20:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000000
                        ;; size=8 bbWeight=0.25 PerfScore 0.75
 G_M15457_IG21:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[esi]
-       xor      eax, eax
-       mov      dword ptr [ebp-0x20], eax
-                       ;; size=5 bbWeight=0.50 PerfScore 0.62
+       xor      edi, edi
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M15457_IG22:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, gword ptr [esi+0x04]
-       ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x30], edx
+       mov      eax, gword ptr [esi+0x04]
+       ; gcrRegs +[eax]
+       mov      gword ptr [ebp-0x2C], eax
        ; GC ptr vars +{V20}
-       mov      ecx, dword ptr [edx+0x14]
-       cmp      ecx, dword ptr [edx+0x1C]
+       mov      ecx, dword ptr [eax+0x14]
+       cmp      ecx, dword ptr [eax+0x1C]
        jl       SHORT G_M15457_IG24
                        ;; size=14 bbWeight=4 PerfScore 36.00
-G_M15457_IG23:        ; bbWeight=2, gcVars=00000002 {V20}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       mov      ecx, edx
+G_M15457_IG23:        ; bbWeight=2, gcVars=00000002 {V20}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      ecx, eax
        ; gcrRegs +[ecx]
        call     [<unknown method>]
-       ; gcrRegs -[ecx edx]
+       ; gcrRegs -[eax ecx]
        test     eax, eax
-       mov      edx, gword ptr [ebp-0x30]
-       ; gcrRegs +[edx]
+       mov      eax, gword ptr [ebp-0x2C]
+       ; gcrRegs +[eax]
        jne      SHORT G_M15457_IG24
        mov      eax, 0xFFFF
+       ; gcrRegs -[eax]
        jmp      SHORT G_M15457_IG25
                        ;; size=22 bbWeight=2 PerfScore 15.50
-G_M15457_IG24:        ; bbWeight=2, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
-       mov      ecx, gword ptr [edx+0x08]
+G_M15457_IG24:        ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[eax]
+       mov      ecx, gword ptr [eax+0x08]
        ; gcrRegs +[ecx]
-       mov      edx, dword ptr [edx+0x14]
-       ; gcrRegs -[edx]
-       cmp      edx, dword ptr [ecx+0x04]
-       jae      G_M15457_IG34
-       movzx    ecx, word  ptr [ecx+2*edx+0x08]
-       ; gcrRegs -[ecx]
-       mov      edx, ecx
-       mov      eax, edx
-                       ;; size=24 bbWeight=2 PerfScore 21.00
+       mov      eax, dword ptr [eax+0x14]
+       ; gcrRegs -[eax]
+       cmp      eax, dword ptr [ecx+0x04]
+       jae      SHORT G_M15457_IG34
+       movzx    eax, word  ptr [ecx+2*eax+0x08]
+                       ;; size=16 bbWeight=2 PerfScore 20.00
 G_M15457_IG25:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs -[ecx]
        ; GC ptr vars -{V20}
-       mov      dword ptr [ebp-0x28], eax
+       mov      dword ptr [ebp-0x24], eax
        mov      ecx, eax
        call     [Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsHexDigit(ushort):ubyte]
        test     eax, eax
        je       SHORT G_M15457_IG30
-       mov      ecx, dword ptr [ebp-0x28]
+       mov      ecx, dword ptr [ebp-0x24]
        mov      edx, ecx
        sub      edx, 48
        cmp      edx, 9
@@ -321,7 +316,7 @@ G_M15457_IG26:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
 G_M15457_IG27:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        add      ecx, -48
                        ;; size=3 bbWeight=2 PerfScore 0.50
-G_M15457_IG28:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M15457_IG28:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [ebp-0x1C]
        shl      edx, 4
        add      edx, ecx
@@ -329,21 +324,16 @@ G_M15457_IG28:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      ecx, gword ptr [esi+0x04]
        ; gcrRegs +[ecx]
        inc      dword ptr [ecx+0x14]
-       mov      ecx, dword ptr [ebp-0x20]
-       ; gcrRegs -[ecx]
-       inc      ecx
-       cmp      ecx, 4
-       mov      dword ptr [ebp-0x20], ecx
-       jl       G_M15457_IG22
-                       ;; size=33 bbWeight=4 PerfScore 45.00
+       inc      edi
+       cmp      edi, 4
+       jl       SHORT G_M15457_IG22
+                       ;; size=23 bbWeight=4 PerfScore 37.00
...
  
-5 (-4.55%) : 39796.dasm - System.Runtime.Serialization.ObjectHolderListEnumerator:MoveNext():ubyte:this (FullOpts)
@@ -9,20 +9,20 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  9, 16.50)     ref  ->  ecx         this class-hnd single-def <System.Runtime.Serialization.ObjectHolderListEnumerator>
-;  V01 loc0         [V01,T07] (  3, 12   )     int  ->  edx        
+;  V01 loc0         [V01,T07] (  3, 12   )     int  ->  eax        
 ;* V02 tmp0         [V02    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V03 tmp1         [V03    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Runtime.Serialization.ObjectHolderList>
 ;* V05 tmp3         [V05,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V06 tmp4         [V06,T04] (  2, 16   )     ref  ->  edx         class-hnd exact "Inlining Arg" <System.Runtime.Serialization.ObjectHolder>
+;  V06 tmp4         [V06,T04] (  2, 16   )     ref  ->  eax         class-hnd exact "Inlining Arg" <System.Runtime.Serialization.ObjectHolder>
 ;* V07 tmp5         [V07,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Runtime.Serialization.ObjectHolderList>
 ;* V09 tmp7         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Runtime.Serialization.ObjectHolderList>
-;  V10 tmp8         [V10,T00] (  3, 24   )     ref  ->  edx         "arr expr"
+;  V10 tmp8         [V10,T00] (  3, 24   )     ref  ->  eax         "arr expr"
 ;  V11 tmp9         [V11,T01] (  3, 24   )     int  ->  edi         "index expr"
-;  V12 cse0         [V12,T06] (  4, 16   )     int  ->  eax         "CSE - moderate"
+;  V12 cse0         [V12,T06] (  4, 16   )     int  ->  edx         "CSE - moderate"
 ;  V13 cse1         [V13,T10] (  3,  1.50)     int  ->  eax         "CSE - moderate"
-;  V14 cse2         [V14,T03] (  5, 16   )     int  ->  edx         "CSE - moderate"
+;  V14 cse2         [V14,T03] (  5, 16   )     int  ->  eax         "CSE - moderate"
 ;  V15 cse3         [V15,T05] (  6, 17   )     ref  ->  esi         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 0
@@ -39,43 +39,43 @@ G_M24724_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        je       SHORT G_M24724_IG09
                        ;; size=6 bbWeight=1 PerfScore 4.00
 G_M24724_IG03:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, dword ptr [ecx+0x0C]
-       inc      eax
-       mov      edx, eax
-       mov      dword ptr [ecx+0x0C], edx
+       mov      edx, dword ptr [ecx+0x0C]
+       inc      edx
+       mov      eax, edx
+       mov      dword ptr [ecx+0x0C], eax
        mov      esi, gword ptr [ecx+0x04]
        ; gcrRegs +[esi]
-       cmp      edx, dword ptr [esi+0x08]
+       cmp      eax, dword ptr [esi+0x08]
        jge      SHORT G_M24724_IG07
-       mov      edx, gword ptr [esi+0x04]
-       ; gcrRegs +[edx]
-       mov      edi, eax
-       cmp      edi, dword ptr [edx+0x04]
+       mov      eax, gword ptr [esi+0x04]
+       ; gcrRegs +[eax]
+       mov      edi, edx
+       cmp      edi, dword ptr [eax+0x04]
        jae      SHORT G_M24724_IG11
-       mov      edx, gword ptr [edx+4*edi+0x08]
-       mov      edx, dword ptr [edx+0x34]
-       ; gcrRegs -[edx]
-       test     dl, 4
+       mov      eax, gword ptr [eax+4*edi+0x08]
+       mov      eax, dword ptr [eax+0x34]
+       ; gcrRegs -[eax]
+       test     al, 4
        jne      SHORT G_M24724_IG05
-                     ;; size=39 bbWeight=4 PerfScore 84.00
+                     ;; size=38 bbWeight=4 PerfScore 84.00
 G_M24724_IG04:        ; bbWeight=2, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
-       test     dl, 2
+       test     al, 2
        je       SHORT G_M24724_IG06
-                     ;; size=5 bbWeight=2 PerfScore 2.50
+                       ;; size=4 bbWeight=2 PerfScore 2.50
 G_M24724_IG05:        ; bbWeight=2, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
-       test     edx, 0x4000
+       test     eax, 0x4000
        je       SHORT G_M24724_IG07
-                       ;; size=8 bbWeight=2 PerfScore 2.50
+                       ;; size=7 bbWeight=2 PerfScore 2.50
 G_M24724_IG06:        ; bbWeight=4, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
-       test     dl, 1
+       test     al, 1
        je       SHORT G_M24724_IG03
-                       ;; size=5 bbWeight=4 PerfScore 5.00
+                       ;; size=4 bbWeight=4 PerfScore 5.00
 G_M24724_IG07:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
-       cmp      eax, dword ptr [esi+0x08]
+       xor      eax, eax
+       cmp      edx, dword ptr [esi+0x08]
        setne    al
-       movzx    eax, al
-                       ;; size=9 bbWeight=4 PerfScore 17.00
+                      ;; size=8 bbWeight=4 PerfScore 17.00
 G_M24724_IG08:        ; bbWeight=4, epilog, nogc, extend
        pop      esi
        pop      edi
@@ -105,6 +105,6 @@ G_M24724_IG11:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 110, prolog size 5, PerfScore 134.25, instruction count 47, allocated bytes for code 110 (MethodHash=ab819f6b) for method System.Runtime.Serialization.ObjectHolderListEnumerator:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 105, prolog size 5, PerfScore 134.25, instruction count 47, allocated bytes for code 105 (MethodHash=ab819f6b) for method System.Runtime.Serialization.ObjectHolderListEnumerator:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
  
+9 (+4.15%) : 156263.dasm - System.Net.PathList+PathListComparer:System.Collections.IComparer.Compare(System.Object,System.Object):int:this (FullOpts)
@@ -22,10 +22,11 @@
 ;  V11 tmp2         [V11,T13] (  3,  1   )     int  ->  eax         "fgMakeTemp is creating a new local variable"
 ;  V12 tmp3         [V12,T05] (  4,  6.50)     ref  ->  ecx         class-hnd single-def "spilling QMark2" <System.String>
 ;  V13 tmp4         [V13,T11] (  2,  2   )     int  ->  edx         "Inline return value spill temp"
-;  V14 cse0         [V14,T07] (  5,  3.54)     int  ->  [ebp-0x18]  spill-single-def "CSE - moderate"
-;  V15 cse1         [V15,T08] (  5,  3.54)     int  ->  edi         "CSE - moderate"
+;  V14 cse0         [V14,T07] (  5,  3.54)     int  ->  ecx         "CSE - moderate"
+;  V15 cse1         [V15,T08] (  5,  3.54)     int  ->  [ebp-0x18]  spill-single-def "CSE - moderate"
+;  TEMP_01                                     int  ->  [ebp-0x1C]
 ;
-; Lcl frame size = 12
+; Lcl frame size = 16
 
 G_M31945_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -33,14 +34,14 @@ G_M31945_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 12
+       sub      esp, 16
                       ;; size=9 bbWeight=1 PerfScore 4.50
 G_M31945_IG02:        ; bbWeight=1, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[edx]
        mov      ecx, edx
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       jne      SHORT G_M31945_IG08
+       jne      SHORT G_M31945_IG09
                      ;; size=6 bbWeight=1 PerfScore 1.50
 G_M31945_IG03:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edx]
@@ -53,75 +54,81 @@ G_M31945_IG03:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        mov      ecx, edi
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       jne      SHORT G_M31945_IG07
+       jne      SHORT G_M31945_IG08
                      ;; size=17 bbWeight=1 PerfScore 5.75
 G_M31945_IG04:        ; bbWeight=1, gcrefRegs=00000042 {ecx esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax edi]
        call     [System.Net.CookieParser:CheckQuoted(System.String):System.String]
        ; gcrRegs -[ecx] +[eax]
        mov      ecx, dword ptr [esi+0x04]
-       mov      dword ptr [ebp-0x18], ecx
        mov      edx, ecx
        mov      dword ptr [ebp-0x10], edx
        mov      edi, dword ptr [eax+0x04]
+       mov      dword ptr [ebp-0x18], edi
        mov      ebx, edi
        mov      dword ptr [ebp-0x14], ebx
        cmp      edx, ebx
        cmovg    edx, ebx
        xor      ebx, ebx
        test     edx, edx
-       jle      SHORT G_M31945_IG10
+       jle      SHORT G_M31945_IG11
        cmp      ecx, edx
-       jl       SHORT G_M31945_IG09
+       jl       SHORT G_M31945_IG07
        cmp      edi, edx
-       jl       SHORT G_M31945_IG09
+       jl       SHORT G_M31945_IG10
                      ;; size=44 bbWeight=1 PerfScore 15.00
 G_M31945_IG05:        ; bbWeight=3.96, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
-       movzx    ecx, word  ptr [esi+2*ebx+0x08]
-       cmp      cx, word  ptr [eax+2*ebx+0x08]
-       jne      SHORT G_M31945_IG12
+       movzx    edi, word  ptr [esi+2*ebx+0x08]
+       cmp      di, word  ptr [eax+2*ebx+0x08]
+       jne      SHORT G_M31945_IG13
        inc      ebx
        cmp      ebx, edx
        jl       SHORT G_M31945_IG05
                        ;; size=17 bbWeight=3.96 PerfScore 29.70
-G_M31945_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M31945_IG06:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax esi]
+       jmp      SHORT G_M31945_IG11
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M31945_IG07:        ; bbWeight=0.50, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[eax esi]
        jmp      SHORT G_M31945_IG10
-                       ;; size=2 bbWeight=1 PerfScore 2.00
-G_M31945_IG07:        ; bbWeight=0.25, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs +[ecx esi edi]
-       mov      eax, 0xD1FFAB1E      ; System.String
-       cmp      dword ptr [ecx], eax
-       jne      SHORT G_M31945_IG15
-       jmp      SHORT G_M31945_IG04
-                       ;; size=11 bbWeight=0.25 PerfScore 1.56
-G_M31945_IG08:        ; bbWeight=0.25, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[esi edi] +[edx]
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M31945_IG08:        ; bbWeight=0.25, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax] +[ecx edi]
        mov      eax, 0xD1FFAB1E      ; System.String
        cmp      dword ptr [ecx], eax
        jne      SHORT G_M31945_IG16
+       jmp      SHORT G_M31945_IG04
+                       ;; size=11 bbWeight=0.25 PerfScore 1.56
+G_M31945_IG09:        ; bbWeight=0.25, gcrefRegs=00000006 {ecx edx}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[esi edi] +[edx]
+       mov      eax, 0xD1FFAB1E      ; System.String
+       cmp      dword ptr [ecx], eax
+       jne      SHORT G_M31945_IG17
        jmp      SHORT G_M31945_IG03
                        ;; size=11 bbWeight=0.25 PerfScore 1.56
-G_M31945_IG09:        ; bbWeight=0.04, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
+G_M31945_IG10:        ; bbWeight=0.04, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[ecx edx] +[eax esi]
+       cmp      ebx, ecx
+       jae      SHORT G_M31945_IG15
+       movzx    edi, word  ptr [esi+2*ebx+0x08]
+       mov      dword ptr [ebp-0x1C], edi
        cmp      ebx, dword ptr [ebp-0x18]
-       jae      SHORT G_M31945_IG14
-       movzx    ecx, word  ptr [esi+2*ebx+0x08]
-       cmp      ebx, edi
-       jae      SHORT G_M31945_IG14
-       cmp      cx, word  ptr [eax+2*ebx+0x08]
-       jne      SHORT G_M31945_IG12
+       jae      SHORT G_M31945_IG15
+       movzx    edi, dword ptr [ebp-0x1C]
+       cmp      di, word  ptr [eax+2*ebx+0x08]
+       jne      SHORT G_M31945_IG13
        inc      ebx
        cmp      ebx, edx
-       jl       SHORT G_M31945_IG09
-                       ;; size=26 bbWeight=0.04 PerfScore 0.47
-G_M31945_IG10:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       jl       SHORT G_M31945_IG10
+                       ;; size=33 bbWeight=0.04 PerfScore 0.55
+G_M31945_IG11:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax esi]
        mov      ebx, dword ptr [ebp-0x14]
        mov      eax, ebx
        sub      eax, dword ptr [ebp-0x10]
                        ;; size=8 bbWeight=0.50 PerfScore 1.62
-G_M31945_IG11:        ; bbWeight=0.50, epilog, nogc, extend
+G_M31945_IG12:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -129,19 +136,19 @@ G_M31945_IG11:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      4
                        ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M31945_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M31945_IG13:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[eax esi]
-       cmp      ebx, dword ptr [ebp-0x18]
-       jae      SHORT G_M31945_IG14
+       cmp      ebx, ecx
+       jae      SHORT G_M31945_IG15
        movzx    ecx, word  ptr [esi+2*ebx+0x08]
-       cmp      ebx, edi
-       jae      SHORT G_M31945_IG14
+       cmp      ebx, dword ptr [ebp-0x18]
+       jae      SHORT G_M31945_IG15
        movzx    eax, word  ptr [eax+2*ebx+0x08]
        ; gcrRegs -[eax]
        sub      ecx, eax
        mov      eax, ecx
                        ;; size=23 bbWeight=0.50 PerfScore 4.38
-G_M31945_IG13:        ; bbWeight=0.50, epilog, nogc, extend
+G_M31945_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -149,11 +156,11 @@ G_M31945_IG13:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      4
                        ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M31945_IG14:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M31945_IG15:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[esi]
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
-G_M31945_IG15:        ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
+G_M31945_IG16:        ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[edi]
        mov      ecx, eax
        mov      edx, edi
@@ -162,7 +169,7 @@ G_M31945_IG15:        ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000
        ; gcrRegs -[edx edi] +[eax]
        int3     
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M31945_IG16:        ; bbWeight=0, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
+G_M31945_IG17:        ; bbWeight=0, gcrefRegs=00000004 {edx}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax] +[edx]
        mov      ecx, eax
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
@@ -170,6 +177,6 @@ G_M31945_IG16:        ; bbWeight=0, gcrefRegs=00000004 {edx}, byrefRegs=00000000
        int3     
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 217, prolog size 9, PerfScore 72.54, instruction count 88, allocated bytes for code 217 (MethodHash=daf78336) for method System.Net.PathList+PathListComparer:System.Collections.IComparer.Compare(System.Object,System.Object):int:this (FullOpts)
+; Total bytes of code 226, prolog size 9, PerfScore 72.62, instruction count 91, allocated bytes for code 226 (MethodHash=daf78336) for method System.Net.PathList+PathListComparer:System.Collections.IComparer.Compare(System.Object,System.Object):int:this (FullOpts)
 ; ============================================================
 
  
+34 (+4.36%) : 159272.dasm - System.Net.Mail.Message:EncodeHeaders(System.Net.Mime.HeaderCollection,ubyte):this (FullOpts)
@@ -277,7 +277,7 @@ G_M45731_IG06:        ; bbWeight=1, gcVars=000000000000000000000000 {}, gcrefReg
        call     [edx+0x18]<unknown method>
        ; gcrRegs -[ecx]
        test     eax, eax
-       jle      G_M45731_IG42
+       jle      G_M45731_IG28
                      ;; size=24 bbWeight=1 PerfScore 11.50
 G_M45731_IG07:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [esi+0x04]
@@ -295,9 +295,9 @@ G_M45731_IG07:        ; bbWeight=4, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
 G_M45731_IG08:        ; bbWeight=1, gcrefRegs=000000C3 {eax ecx esi edi}, byrefRegs=00000000 {}, byref
        mov      edx, 0xD1FFAB1E      ; System.Collections.Specialized.NameObjectCollectionBase+NameObjectEntry
        cmp      dword ptr [ecx], edx
-       jne      G_M45731_IG45
+       jne      G_M45731_IG44
                      ;; size=13 bbWeight=1 PerfScore 4.25
-G_M45731_IG09:        ; bbWeight=4, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M45731_IG09:        ; bbWeight=4, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        mov      ecx, gword ptr [ecx+0x04]
        mov      gword ptr [ebp-0x28], ecx
@@ -305,18 +305,18 @@ G_M45731_IG09:        ; bbWeight=4, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=
        call     [System.Net.Mail.MailHeaderInfo:IsUserSettable(System.String):ubyte]
        ; gcrRegs -[ecx]
        test     eax, eax
-       je       SHORT G_M45731_IG18
-                       ;; size=16 bbWeight=4 PerfScore 29.00
-G_M45731_IG10:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       je       G_M45731_IG34
+                       ;; size=20 bbWeight=4 PerfScore 29.00
+G_M45731_IG10:        ; bbWeight=2, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        mov      eax, gword ptr [ebp-0x28]
        ; gcrRegs +[eax]
        test     eax, eax
-       je       SHORT G_M45731_IG17
-                       ;; size=7 bbWeight=2 PerfScore 4.50
-G_M45731_IG11:        ; bbWeight=1.84, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
+       je       G_M45731_IG33
+                       ;; size=11 bbWeight=2 PerfScore 4.50
+G_M45731_IG11:        ; bbWeight=1.84, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
        cmp      dword ptr [eax+0x04], 0
-       je       SHORT G_M45731_IG16
-                       ;; size=6 bbWeight=1.84 PerfScore 7.35
+       je       G_M45731_IG32
+                       ;; size=10 bbWeight=1.84 PerfScore 7.35
 G_M45731_IG12:        ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      gword ptr [ebp-0x24], esi
        ; GC ptr vars +{V01}
@@ -331,65 +331,36 @@ G_M45731_IG12:        ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=
        mov      ecx, eax
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       SHORT G_M45731_IG15
-                       ;; size=22 bbWeight=2 PerfScore 23.50
-G_M45731_IG13:        ; bbWeight=1, gcrefRegs=00000083 {eax ecx edi}, byrefRegs=00000000 {}, byref
+       mov      esi, gword ptr [ebp-0x24]
+       ; gcrRegs +[esi]
+       je       SHORT G_M45731_IG14
+                       ;; size=25 bbWeight=2 PerfScore 25.50
+G_M45731_IG13:        ; bbWeight=1, gcVars=000000000000000000000100 {V04}, gcrefRegs=000000C3 {eax ecx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars -{V01}
        mov      edx, 0xD1FFAB1E      ; System.Collections.Specialized.NameObjectCollectionBase+NameObjectEntry
        cmp      dword ptr [ecx], edx
-       mov      esi, gword ptr [ebp-0x24]
-       ; gcrRegs +[esi]
-       jne      G_M45731_IG47
-                       ;; size=16 bbWeight=1 PerfScore 5.25
-G_M45731_IG14:        ; bbWeight=2, gcVars=000000000000000000000100 {V04}, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       jne      G_M45731_IG46
+                       ;; size=13 bbWeight=1 PerfScore 4.25
+G_M45731_IG14:        ; bbWeight=2, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
-       ; GC ptr vars -{V01}
        test     ecx, ecx
-       jne      SHORT G_M45731_IG19
+       jne      G_M45731_IG35
        xor      edx, edx
        ; gcrRegs +[edx]
-       jmp      SHORT G_M45731_IG20
-                       ;; size=8 bbWeight=2 PerfScore 7.00
-G_M45731_IG15:        ; bbWeight=1, gcVars=000000000000000002000100 {V01 V04}, gcrefRegs=00000082 {ecx edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[edx esi]
-       ; GC ptr vars +{V01 V25}
-       mov      esi, gword ptr [ebp-0x24]
-       ; gcrRegs +[esi]
-       jmp      SHORT G_M45731_IG14
-                       ;; size=5 bbWeight=1 PerfScore 3.00
-G_M45731_IG16:        ; bbWeight=0.92, gcVars=000000000000000000000100 {V04}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[ecx esi edi] +[eax]
-       ; GC ptr vars -{V01 V25}
-       jmp      G_M45731_IG46
-                       ;; size=5 bbWeight=0.92 PerfScore 1.84
-G_M45731_IG17:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref
-       jmp      G_M45731_IG46
-                       ;; size=5 bbWeight=1 PerfScore 2.00
-G_M45731_IG18:        ; bbWeight=2, gcVars=000000000000000000000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[eax] +[esi edi]
-       ; GC ptr vars -{V04}
-       mov      gword ptr [ebp-0x20], edi
-       ; GC ptr vars +{V00}
-       jmp      G_M45731_IG41
-                       ;; size=8 bbWeight=2 PerfScore 6.00
-G_M45731_IG19:        ; bbWeight=2, gcVars=000000000000000000000100 {V04}, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs +[ecx]
-       ; GC ptr vars -{V00} +{V04 V08}
-       mov      edx, gword ptr [ecx+0x08]
-       ; gcrRegs +[edx]
-                       ;; size=3 bbWeight=2 PerfScore 4.00
-G_M45731_IG20:        ; bbWeight=2, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=10 bbWeight=2 PerfScore 3.00
+G_M45731_IG15:        ; bbWeight=2, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[ecx]
        mov      ecx, edx
        ; gcrRegs +[ecx]
        test     ecx, ecx
-       je       SHORT G_M45731_IG23
+       je       SHORT G_M45731_IG18
                      ;; size=6 bbWeight=2 PerfScore 3.00
-G_M45731_IG21:        ; bbWeight=1, gcrefRegs=000000C6 {ecx edx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M45731_IG16:        ; bbWeight=1, gcrefRegs=000000C6 {ecx edx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      eax, 0xD1FFAB1E      ; System.Collections.ArrayList
        cmp      dword ptr [ecx], eax
-       je       SHORT G_M45731_IG23
+       je       SHORT G_M45731_IG18
                      ;; size=9 bbWeight=1 PerfScore 4.25
-G_M45731_IG22:        ; bbWeight=0.50, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
+G_M45731_IG17:        ; bbWeight=0.50, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[ecx]
        mov      ecx, eax
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
@@ -397,7 +368,7 @@ G_M45731_IG22:        ; bbWeight=0.50, gcrefRegs=000000C4 {edx esi edi}, byrefRe
        mov      ecx, eax
        ; gcrRegs +[ecx]
                        ;; size=9 bbWeight=0.50 PerfScore 0.75
-G_M45731_IG23:        ; bbWeight=2, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M45731_IG18:        ; bbWeight=2, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        call     [System.Collections.Specialized.NameValueCollection:GetAsStringArray(System.Collections.ArrayList):System.String[]]
        ; gcrRegs -[ecx] +[eax]
@@ -406,9 +377,9 @@ G_M45731_IG23:        ; bbWeight=2, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=
        xor      eax, eax
        ; gcrRegs -[eax]
        cmp      dword ptr [ebx+0x04], 0
-       jle      SHORT G_M45731_IG27
-                       ;; size=16 bbWeight=2 PerfScore 15.00
-G_M45731_IG24:        ; bbWeight=16, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
+       jle      G_M45731_IG31
+                       ;; size=20 bbWeight=2 PerfScore 15.00
+G_M45731_IG19:        ; bbWeight=16, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      dword ptr [ebp-0x14], eax
        mov      edx, gword ptr [ebx+4*eax+0x08]
        ; gcrRegs +[edx]
@@ -417,20 +388,19 @@ G_M45731_IG24:        ; bbWeight=16, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs
        test     edx, edx
        mov      gword ptr [ebp-0x20], edi
        ; GC ptr vars +{V00}
-       je       G_M45731_IG48
+       je       G_M45731_IG47
        lea      ecx, bword ptr [edx+0x08]
        ; byrRegs +[ecx]
        mov      edi, dword ptr [edx+0x04]
        ; gcrRegs -[edi]
        mov      edx, edi
        ; gcrRegs -[edx]
-       ; GC ptr vars -{V08}
        call     [<unknown method>]
        ; byrRegs -[ecx]
        test     eax, eax
-       je       SHORT G_M45731_IG26
+       je       SHORT G_M45731_IG21
                      ;; size=39 bbWeight=16 PerfScore 212.00
-G_M45731_IG25:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+G_M45731_IG20:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
        mov      edi, gword ptr [ebp-0x30]
        ; gcrRegs +[edi]
        lea      ecx, bword ptr [edi+0x08]
@@ -444,43 +414,27 @@ G_M45731_IG25:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=0000
        ; gcrRegs -[edi]
        ; byrRegs -[ecx]
        test     eax, eax
-       jl       SHORT G_M45731_IG30
+       jl       SHORT G_M45731_IG23
                      ;; size=27 bbWeight=8 PerfScore 80.00
-G_M45731_IG26:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+G_M45731_IG21:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
        cmp      byte  ptr [ebp+0x08], 0
-       je       SHORT G_M45731_IG31
+       je       G_M45731_IG37
        mov      ecx, gword ptr [ebp-0x28]
        ; gcrRegs +[ecx]
        call     [System.Net.Mail.MailHeaderInfo:AllowsUnicode(System.String):ubyte]
        ; gcrRegs -[ecx]
        test     eax, eax
-       je       SHORT G_M45731_IG31
+       je       G_M45731_IG37
        mov      edi, dword ptr [ebp-0x14]
        mov      edx, gword ptr [ebx+4*edi+0x08]
        ; gcrRegs +[edx]
        test     edx, edx
-       jne      SHORT G_M45731_IG28
+       jne      G_M45731_IG36
        xor      ecx, ecx
        ; byrRegs +[ecx]
        xor      eax, eax
-       jmp      SHORT G_M45731_IG29
-                       ;; size=36 bbWeight=8 PerfScore 120.00
-G_M45731_IG27:        ; bbWeight=1, gcVars=000000000000000000000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[edx ebx] +[edi]
-       ; byrRegs -[ecx]
-       ; GC ptr vars -{V04}
-       mov      gword ptr [ebp-0x20], edi
-       ; GC ptr vars +{V00}
-       jmp      G_M45731_IG41
-                       ;; size=8 bbWeight=1 PerfScore 3.00
-G_M45731_IG28:        ; bbWeight=8, gcVars=000000100000000000000100 {V00 V04}, gcrefRegs=0000004C {edx ebx esi}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[edi] +[edx ebx]
-       ; GC ptr vars +{V04 V08}
-       lea      ecx, bword ptr [edx+0x08]
-       ; byrRegs +[ecx]
-       mov      eax, dword ptr [edx+0x04]
-                       ;; size=6 bbWeight=8 PerfScore 20.00
-G_M45731_IG29:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000002 {ecx}, byref, isz
+                       ;; size=46 bbWeight=8 PerfScore 104.00
+G_M45731_IG22:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000002 {ecx}, byref, isz
        ; gcrRegs -[edx]
        push     10
        push     eax
@@ -489,20 +443,116 @@ G_M45731_IG29:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=0000
        ; byrRegs -[ecx]
        test     eax, eax
        mov      dword ptr [ebp-0x14], edi
-       jge      SHORT G_M45731_IG31
+       jge      SHORT G_M45731_IG37
                         ;; size=21 bbWeight=8 PerfScore 60.00
-G_M45731_IG30:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
+G_M45731_IG23:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
        mov      edi, dword ptr [ebp-0x14]
        mov      eax, gword ptr [ebx+4*edi+0x08]
        ; gcrRegs +[eax]
-       jmp      G_M45731_IG37
-                       ;; size=12 bbWeight=8 PerfScore 40.00
-G_M45731_IG31:        ; bbWeight=8, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[eax]
+                      ;; size=7 bbWeight=8 PerfScore 24.00
+G_M45731_IG24:        ; bbWeight=16, gcrefRegs=00000049 {eax ebx esi}, byrefRegs=00000000 {}, byref
+       test     edi, edi
+       jne      G_M45731_IG43
+                       ;; size=8 bbWeight=16 PerfScore 20.00
+G_M45731_IG25:        ; bbWeight=8, gcrefRegs=00000049 {eax ebx esi}, byrefRegs=00000000 {}, byref
+       push     eax
...
  
+19 (+6.19%) : 244862.dasm - System.Text.Json.JsonSerializerOptions+CachingContext:DetermineNearestAncestor(System.Type,System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry):System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry:this (FullOpts)
@@ -85,10 +85,10 @@ G_M6659_IG03:        ; bbWeight=4, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=0
        test     edx, edx
        jne      SHORT G_M6659_IG03
                        ;; size=45 bbWeight=4 PerfScore 80.00
-G_M6659_IG04:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M6659_IG04:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax edx]
        jmp      SHORT G_M6659_IG06
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+                        ;; size=2 bbWeight=1 PerfScore 2.00
 G_M6659_IG05:        ; bbWeight=0.50, gcVars=00000009 {V03 V05}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
        ; GC ptr vars -{V04} +{V00 V05}
        mov      edx, gword ptr [ebp-0x24]
@@ -112,9 +112,12 @@ G_M6659_IG06:        ; bbWeight=1, gcVars=00000018 {V03 V04}, gcrefRegs=000000C0
        mov      edx, dword ptr [ebx+0x04]
        mov      dword ptr [ebp-0x14], edx
        test     edx, edx
-       jle      G_M6659_IG13
-                       ;; size=26 bbWeight=1 PerfScore 9.00
-G_M6659_IG07:        ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [ebp-0x18]
+       ; gcrRegs +[edi]
+       jle      G_M6659_IG15
+                       ;; size=29 bbWeight=1 PerfScore 10.00
+G_M6659_IG07:        ; bbWeight=4, gcVars=00000018 {V03 V04}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V01}
        mov      dword ptr [ebp-0x10], eax
        mov      ecx, gword ptr [ebx+4*eax+0x08]
        ; gcrRegs +[ecx]
@@ -128,18 +131,21 @@ G_M6659_IG07:        ; bbWeight=4, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000
        mov      gword ptr [ebp-0x2C], eax
        ; GC ptr vars +{V09}
        cmp      byte  ptr [eax+0x10], 0
-       je       SHORT G_M6659_IG10
+       je       SHORT G_M6659_IG13
                         ;; size=30 bbWeight=4 PerfScore 53.00
-G_M6659_IG08:        ; bbWeight=2, gcVars=000000DC {V01 V03 V04 V08 V09}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M6659_IG08:        ; bbWeight=2, gcVars=0000005C {V03 V04 V08 V09}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
        mov      edx, gword ptr [ebp-0x20]
        ; gcrRegs +[edx]
        test     edx, edx
        je       SHORT G_M6659_IG09
+       mov      gword ptr [ebp-0x18], edi
+       ; GC ptr vars +{V01}
        mov      ecx, gword ptr [ebp-0x28]
        ; gcrRegs +[ecx]
        mov      gword ptr [ebp-0x20], edx
        mov      edi, dword ptr [ecx]
+       ; gcrRegs -[edi]
        mov      edi, dword ptr [edi+0x64]
        call     [edi+0x10]<unknown method>
        ; gcrRegs -[ecx edx]
@@ -156,10 +162,12 @@ G_M6659_IG08:        ; bbWeight=2, gcVars=000000DC {V01 V03 V04 V08 V09}, gcrefR
        call     [eax+0x10]<unknown method>
        ; gcrRegs -[ecx edx]
        test     eax, eax
-       je       SHORT G_M6659_IG12
-                       ;; size=46 bbWeight=2 PerfScore 47.50
-G_M6659_IG09:        ; bbWeight=2, gcVars=000000C4 {V01 V08 V09}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref
-       ; GC ptr vars -{V04}
+       mov      edi, gword ptr [ebp-0x18]
+       ; gcrRegs +[edi]
+       je       SHORT G_M6659_IG14
+                       ;; size=52 bbWeight=2 PerfScore 51.50
+G_M6659_IG09:        ; bbWeight=2, gcVars=00000044 {V08 V09}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; GC ptr vars -{V01 V04}
        mov      eax, gword ptr [ebp-0x2C]
        ; gcrRegs +[eax]
        mov      ecx, gword ptr [ebp-0x28]
@@ -170,32 +178,46 @@ G_M6659_IG09:        ; bbWeight=2, gcVars=000000C4 {V01 V08 V09}, gcrefRegs=0000
        ; GC ptr vars +{V03}
        mov      gword ptr [ebp-0x20], edx
        ; GC ptr vars +{V04}
-                      ;; size=14 bbWeight=2 PerfScore 8.50
+       mov      gword ptr [ebp-0x18], edi
+       ; GC ptr vars +{V01}
+                       ;; size=17 bbWeight=2 PerfScore 10.50
 G_M6659_IG10:        ; bbWeight=4, gcVars=00000098 {V01 V03 V04}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[eax ecx edx]
+       ; gcrRegs -[eax ecx edx edi]
        ; GC ptr vars -{V08 V09}
        mov      ecx, dword ptr [ebp-0x10]
        inc      ecx
        mov      edi, dword ptr [ebp-0x14]
        cmp      edi, ecx
        mov      eax, ecx
-       jg       SHORT G_M6659_IG07
+       jg       SHORT G_M6659_IG12
                        ;; size=13 bbWeight=4 PerfScore 15.00
-G_M6659_IG11:        ; bbWeight=0.50, gcVars=00000008 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M6659_IG11:        ; bbWeight=1, gcVars=00000008 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[ebx esi]
        ; GC ptr vars -{V01 V04}
-       jmp      SHORT G_M6659_IG13
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M6659_IG12:        ; bbWeight=0.50, gcVars=00000094 {V01 V04 V08}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; GC ptr vars -{V03} +{V01 V02 V04 V07 V08}
-       mov      edx, gword ptr [ebp-0x20]
-       ; gcrRegs +[edx]
+       jmp      SHORT G_M6659_IG15
+                       ;; size=2 bbWeight=1 PerfScore 2.00
+G_M6659_IG12:        ; bbWeight=2, gcVars=00000098 {V01 V03 V04}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs +[ebx esi]
+       ; GC ptr vars +{V01 V04 V07}
        mov      edi, gword ptr [ebp-0x18]
        ; gcrRegs +[edi]
+       jmp      SHORT G_M6659_IG07
+                       ;; size=5 bbWeight=2 PerfScore 6.00
+G_M6659_IG13:        ; bbWeight=2, gcVars=00000018 {V03 V04}, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V01 V07}
+       mov      gword ptr [ebp-0x18], edi
+       ; GC ptr vars +{V01}
+       jmp      SHORT G_M6659_IG10
+                       ;; size=5 bbWeight=2 PerfScore 6.00
+G_M6659_IG14:        ; bbWeight=0.50, gcVars=00000014 {V04 V08}, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, gcvars, byref
+       ; gcrRegs -[ebx esi]
+       ; GC ptr vars -{V01 V03} +{V02 V08}
+       mov      edx, gword ptr [ebp-0x20]
+       ; gcrRegs +[edx]
        push     gword ptr [ebp-0x28]
        mov      ecx, edi
        ; gcrRegs +[ecx]
-       ; GC ptr vars -{V01 V02 V04 V07 V08}
+       ; GC ptr vars -{V02 V04 V08}
        call     [System.Text.Json.ThrowHelper:GetNotSupportedException_AmbiguousMetadataForType(System.Type,System.Type,System.Type):System.NotSupportedException]
        ; gcrRegs -[ecx edx edi] +[eax]
        mov      esi, eax
@@ -216,8 +238,8 @@ G_M6659_IG12:        ; bbWeight=0.50, gcVars=00000094 {V01 V04 V08}, gcrefRegs=0
        mov      byte  ptr [edi+0x10], 1
        mov      gword ptr [ebp-0x1C], edi
        ; GC ptr vars +{V03}
-                      ;; size=54 bbWeight=0.50 PerfScore 7.38
-G_M6659_IG13:        ; bbWeight=1, gcVars=00000008 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+                        ;; size=51 bbWeight=0.50 PerfScore 6.88
+G_M6659_IG15:        ; bbWeight=1, gcVars=00000008 {V03}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[edi]
        mov      ebx, gword ptr [ebp+0x08]
        ; gcrRegs +[ebx]
@@ -232,7 +254,7 @@ G_M6659_IG13:        ; bbWeight=1, gcVars=00000008 {V03}, gcrefRegs=00000000 {},
        mov      eax, edi
        ; gcrRegs +[eax]
                        ;; size=20 bbWeight=1 PerfScore 4.75
-G_M6659_IG14:        ; bbWeight=1, epilog, nogc, extend
+G_M6659_IG16:        ; bbWeight=1, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -241,6 +263,6 @@ G_M6659_IG14:        ; bbWeight=1, epilog, nogc, extend
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
 
-; Total bytes of code 307, prolog size 9, PerfScore 248.88, instruction count 112, allocated bytes for code 307 (MethodHash=2cd6e5fc) for method System.Text.Json.JsonSerializerOptions+CachingContext:DetermineNearestAncestor(System.Type,System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry):System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry:this (FullOpts)
+; Total bytes of code 326, prolog size 9, PerfScore 269.38, instruction count 119, allocated bytes for code 326 (MethodHash=2cd6e5fc) for method System.Text.Json.JsonSerializerOptions+CachingContext:DetermineNearestAncestor(System.Type,System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry):System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry:this (FullOpts)
 ; ============================================================
 
  
  
realworld.run.windows.x86.checked.mch
-19 (-5.56%) : 30150.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:g_findInitializer|1060(System.Collections.Immutable.ImmutableArray1[System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]],int,Microsoft.CodeAnalysis.SyntaxTree,byref,byref):ubyte (FullOpts)
@@ -12,7 +12,7 @@
 ;  V01 arg1         [V01,T08] (  4,  4.50)     int  ->  [ebp-0x10]  single-def
 ;  V02 arg2         [V02,T09] (  3,  4   )     ref  ->  [ebp-0x2C]  class-hnd single-def <Microsoft.CodeAnalysis.SyntaxTree>
 ;  V03 arg3         [V03,T16] (  2,  1   )   byref  ->  [ebp+0x0C]  single-def
-;  V04 arg4         [V04,T05] (  5, 10   )   byref  ->  [ebp+0x08]  single-def
+;  V04 arg4         [V04,T05] (  5, 10   )   byref  ->  esi         single-def
 ;* V05 loc0         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]]>
 ;* V06 loc1         [V06    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]>
 ;  V07 loc2         [V07    ] (  3,  6   )  struct ( 8) [ebp-0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.Text.TextSpan>
@@ -35,7 +35,7 @@
 ;  V24 tmp15        [V24,T14] (  2,  2   )     ref  ->  eax         single-def "field V00.array (fldOffset=0x0)" P-INDEP
 ;  V25 tmp16        [V25,T12] (  2,  5   )     ref  ->  [ebp-0x30]  spill-single-def "field V05._array (fldOffset=0x0)" P-INDEP
 ;  V26 tmp17        [V26,T01] (  4, 13   )     int  ->  ebx         "field V05._index (fldOffset=0x4)" P-INDEP
-;  V27 tmp18        [V27,T00] (  9, 19.50)     ref  ->  [ebp-0x34]  "field V06.array (fldOffset=0x0)" P-INDEP
+;  V27 tmp18        [V27,T00] (  9, 19.50)     ref  ->  [ebp-0x34]  spill-single-def "field V06.array (fldOffset=0x0)" P-INDEP
 ;  V28 tmp19        [V28    ] (  2,  4   )     int  ->  [ebp-0x18]  do-not-enreg[X] addr-exposed "field V07.<Start>k__BackingField (fldOffset=0x0)" P-DEP
 ;  V29 tmp20        [V29    ] (  2,  4   )     int  ->  [ebp-0x14]  do-not-enreg[X] addr-exposed "field V07.<Length>k__BackingField (fldOffset=0x4)" P-DEP
 ;* V30 tmp21        [V30    ] (  0,  0   )     ref  ->  zero-ref    "field V10.FieldOpt (fldOffset=0x0)" P-INDEP
@@ -79,30 +79,28 @@ G_M25641_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
                        ;; size=35 bbWeight=1 PerfScore 12.08
 G_M25641_IG02:        ; bbWeight=1, gcVars=00000200 {V02}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref
        xor      ecx, ecx
-       mov      bword ptr [ebp+0x08], esi
        mov      dword ptr [esi], ecx
        mov      edx, dword ptr [eax+0x04]
        mov      dword ptr [ebp-0x28], edx
        mov      gword ptr [ebp-0x30], eax
        ; GC ptr vars +{V25}
-                      ;; size=16 bbWeight=1 PerfScore 6.25
-G_M25641_IG03:        ; bbWeight=1, gcVars=00001200 {V02 V25}, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, gcvars, byref
-       ; byrRegs -[esi]
+                      ;; size=13 bbWeight=1 PerfScore 5.25
+G_M25641_IG03:        ; bbWeight=1, gcVars=00001200 {V02 V25}, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, gcvars, byref
        xor      ebx, ebx
        test     edx, edx
        jle      G_M25641_IG10
                        ;; size=10 bbWeight=1 PerfScore 1.50
-G_M25641_IG04:        ; bbWeight=4, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, isz
+G_M25641_IG04:        ; bbWeight=4, gcrefRegs=00000001 {eax}, byrefRegs=00000040 {esi}, byref, isz
        mov      ecx, gword ptr [eax+4*ecx+0x08]
        ; gcrRegs +[ecx]
+       mov      gword ptr [ebp-0x34], ecx
+       ; GC ptr vars +{V27}
        mov      edi, dword ptr [ecx+0x04]
        test     edi, edi
        je       SHORT G_M25641_IG09
-                      ;; size=11 bbWeight=4 PerfScore 21.00
-G_M25641_IG05:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=14 bbWeight=4 PerfScore 25.00
+G_M25641_IG05:        ; bbWeight=2, gcVars=00001201 {V02 V25 V27}, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, gcvars, byref, isz
        ; gcrRegs -[eax]
-       mov      gword ptr [ebp-0x34], ecx
-       ; GC ptr vars +{V27}
        mov      eax, gword ptr [ecx+0x0C]
        ; gcrRegs +[eax]
        mov      ecx, eax
@@ -127,14 +125,14 @@ G_M25641_IG05:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        mov      ecx, gword ptr [ebp-0x20]
        ; gcrRegs +[ecx]
        jmp      SHORT G_M25641_IG08
-                      ;; size=56 bbWeight=2 PerfScore 53.00
-G_M25641_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+                     ;; size=53 bbWeight=2 PerfScore 51.00
+G_M25641_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref, isz
        ; gcrRegs -[ecx]
        mov      ecx, gword ptr [ebp-0x34]
        ; gcrRegs +[ecx]
        jmp      SHORT G_M25641_IG09
                        ;; size=5 bbWeight=1 PerfScore 3.00
-G_M25641_IG07:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+G_M25641_IG07:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000040 {esi}, byref
        ; gcrRegs -[ecx]
        mov      eax, gword ptr [ebp-0x34]
        ; gcrRegs +[eax]
@@ -145,7 +143,7 @@ G_M25641_IG07:        ; bbWeight=2, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ; gcrRegs +[ecx]
        ; byrRegs -[ecx]
                        ;; size=11 bbWeight=2 PerfScore 13.00
-G_M25641_IG08:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref, isz
+G_M25641_IG08:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref, isz
        ; gcrRegs -[eax]
        lea      edx, [ebp-0x18]
        mov      dword ptr [ebp-0x38], edx
@@ -153,24 +151,22 @@ G_M25641_IG08:        ; bbWeight=2, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        mov      edx, dword ptr [edx+0x2C]
        mov      dword ptr [ebp-0x3C], edx
        mov      edx, dword ptr [ebp-0x38]
-       mov      esi, dword ptr [ebp-0x3C]
-       call     [esi+0x14]<unknown method>
+       mov      eax, dword ptr [ebp-0x3C]
+       call     [eax+0x14]<unknown method>
        ; gcrRegs -[ecx]
        mov      eax, dword ptr [ebp-0x18]
        add      eax, dword ptr [ebp-0x14]
-       mov      esi, dword ptr [ebp-0x10]
-       cmp      eax, esi
-       mov      dword ptr [ebp-0x10], esi
+       mov      edx, dword ptr [ebp-0x10]
+       cmp      eax, edx
+       mov      dword ptr [ebp-0x10], edx
        mov      ecx, gword ptr [ebp-0x34]
        ; gcrRegs +[ecx]
        jg       SHORT G_M25641_IG12
                        ;; size=42 bbWeight=2 PerfScore 37.50
-G_M25641_IG09:        ; bbWeight=4, gcVars=00001200 {V02 V25}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref
-       ; GC ptr vars -{V27}
-       mov      esi, bword ptr [ebp+0x08]
-       ; byrRegs +[esi]
+G_M25641_IG09:        ; bbWeight=4, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, byref
        mov      edi, dword ptr [esi]
        push     ecx
+       ; GC ptr vars -{V27}
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<TryCalculateSyntaxOffsetOfPositionInInitializer>g__getGroupLength|106_1(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]):int]
        ; gcrRegs -[ecx]
        add      eax, edi
@@ -179,11 +175,10 @@ G_M25641_IG09:        ; bbWeight=4, gcVars=00001200 {V02 V25}, gcrefRegs=0000000
        mov      ebx, ecx
        mov      edi, dword ptr [ebp-0x28]
        cmp      edi, ebx
-       mov      bword ptr [ebp+0x08], esi
        mov      eax, gword ptr [ebp-0x30]
        ; gcrRegs +[eax]
        jg       G_M25641_IG04
-                        ;; size=38 bbWeight=4 PerfScore 53.00
+                     ;; size=32 bbWeight=4 PerfScore 45.00
 G_M25641_IG10:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[eax]
        ; byrRegs -[esi]
@@ -203,9 +198,9 @@ G_M25641_IG11:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000
        pop      ebp
        ret      12
                        ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M25641_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M25641_IG12:        ; bbWeight=0.50, gcVars=00000001 {V27}, gcrefRegs=00000002 {ecx}, byrefRegs=00000040 {esi}, gcvars, byref, isz
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x34], ecx
+       ; byrRegs +[esi]
        ; GC ptr vars +{V27}
        push     ecx
        mov      ecx, dword ptr [ebp-0x10]
@@ -214,17 +209,11 @@ G_M25641_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000002 {e
        mov      ebx, eax
        test     ebx, ebx
        jl       SHORT G_M25641_IG10
-       mov      eax, gword ptr [ebp-0x34]
-       ; gcrRegs +[eax]
-       mov      esi, bword ptr [ebp+0x08]
-       ; byrRegs +[esi]
-       mov      edx, dword ptr [esi]
-       mov      dword ptr [ebp-0x3C], edx
-       mov      gword ptr [ebp-0x34], eax
-       push     eax
+       mov      eax, dword ptr [esi]
+       mov      dword ptr [ebp-0x3C], eax
+       push     gword ptr [ebp-0x34]
        mov      ecx, ebx
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<TryCalculateSyntaxOffsetOfPositionInInitializer>g__getPrecedingInitializersLength|106_2(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer],int):int]
-       ; gcrRegs -[eax]
        add      eax, dword ptr [ebp-0x3C]
        mov      dword ptr [esi], eax
        cmp      ebx, edi
@@ -241,7 +230,7 @@ G_M25641_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000002 {e
        call     CORINFO_HELP_ASSIGN_BYREF
        call     CORINFO_HELP_ASSIGN_BYREF
        mov      eax, 1
-                       ;; size=76 bbWeight=0.50 PerfScore 13.62
+                      ;; size=66 bbWeight=0.50 PerfScore 11.62
 G_M25641_IG13:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
@@ -259,6 +248,6 @@ G_M25641_IG15:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 342, prolog size 23, PerfScore 220.08, instruction count 124, allocated bytes for code 342 (MethodHash=36369bd6) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<TryCalculateSyntaxOffsetOfPositionInInitializer>g__findInitializer|106_0(System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]],int,Microsoft.CodeAnalysis.SyntaxTree,byref,byref):ubyte (FullOpts)
+; Total bytes of code 323, prolog size 23, PerfScore 211.08, instruction count 117, allocated bytes for code 323 (MethodHash=36369bd6) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<TryCalculateSyntaxOffsetOfPositionInInitializer>g__findInitializer|106_0(System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]],int,Microsoft.CodeAnalysis.SyntaxTree,byref,byref):ubyte (FullOpts)
 ; ============================================================
 
  
-34 (-5.55%) : 19012.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanUnicodeEscape(ubyte,byref,byref):ushort:this (FullOpts)
@@ -17,29 +17,29 @@
 ;  V06 loc2         [V06,T13] (  5,  9.50)     int  ->  [ebp-0x18] 
 ;  V07 loc3         [V07,T07] (  4, 12.50)     int  ->  edi        
 ;  V08 loc4         [V08,T14] (  4,  9   )     int  ->  [ebp-0x1C] 
-;  V09 loc5         [V09,T08] (  4, 12.50)     int  ->  [ebp-0x20] 
+;  V09 loc5         [V09,T08] (  4, 12.50)     int  ->  edi        
 ;* V10 loc6         [V10    ] (  0,  0   )  ushort  ->  zero-ref   
 ;  V11 tmp0         [V11,T19] (  3,  6   )     ref  ->  edx         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;  V12 tmp1         [V12,T20] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;  V13 tmp2         [V13,T22] (  3,  3   )     ref  ->  edi         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
-;  V14 tmp3         [V14,T05] (  7, 20   )  ushort  ->  [ebp-0x24]  "Inline return value spill temp"
-;  V15 tmp4         [V15,T00] (  6, 36   )     ref  ->  [ebp-0x2C]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
+;  V14 tmp3         [V14,T05] (  7, 20   )  ushort  ->  [ebp-0x20]  "Inline return value spill temp"
+;  V15 tmp4         [V15,T00] (  6, 36   )     ref  ->  [ebp-0x28]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;  V16 tmp5         [V16,T16] (  3,  8   )     int  ->  ecx         "Inline return value spill temp"
 ;  V17 tmp6         [V17,T03] (  3, 24   )     ref  ->  ecx         class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
-;  V18 tmp7         [V18,T23] (  3,  3   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
-;  V19 tmp8         [V19,T06] (  6, 16   )  ushort  ->  [ebp-0x28]  "Inline return value spill temp"
-;  V20 tmp9         [V20,T01] (  6, 36   )     ref  ->  [ebp-0x30]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
+;  V18 tmp7         [V18,T23] (  3,  3   )     ref  ->  edi         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
+;  V19 tmp8         [V19,T06] (  6, 16   )  ushort  ->  [ebp-0x24]  "Inline return value spill temp"
+;  V20 tmp9         [V20,T01] (  6, 36   )     ref  ->  [ebp-0x2C]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;  V21 tmp10        [V21,T17] (  3,  8   )     int  ->  ecx         "Inline return value spill temp"
 ;  V22 tmp11        [V22,T04] (  3, 24   )     ref  ->  ecx         class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow>
 ;  V23 tmp12        [V23,T09] (  3, 12   )     ref  ->  ecx         "arr expr"
-;  V24 tmp13        [V24,T11] (  3, 12   )     int  ->  edx         "index expr"
+;  V24 tmp13        [V24,T11] (  3, 12   )     int  ->  eax         "index expr"
 ;  V25 tmp14        [V25,T10] (  3, 12   )     ref  ->  ecx         "arr expr"
 ;  V26 tmp15        [V26,T12] (  3, 12   )     int  ->  eax         "index expr"
 ;  V27 cse0         [V27,T24] (  3,  3   )     ref  ->  ecx         "CSE - conservative"
 ;  V28 cse1         [V28,T25] (  3,  3   )     ref  ->  ecx         "CSE - conservative"
-;  V29 cse2         [V29,T21] (  6,  3   )     ref  ->  [ebp-0x34]  multi-def "CSE - conservative"
+;  V29 cse2         [V29,T21] (  6,  3   )     ref  ->  ecx         multi-def "CSE - conservative"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 32
 
 G_M15457_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -47,7 +47,7 @@ G_M15457_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 40
+       sub      esp, 32
        mov      esi, ecx
        ; gcrRegs +[esi]
        mov      ebx, edx
@@ -127,7 +127,7 @@ G_M15457_IG06:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
 G_M15457_IG07:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      eax, gword ptr [esi+0x04]
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x2C], eax
+       mov      gword ptr [ebp-0x28], eax
        ; GC ptr vars +{V15}
        mov      ecx, dword ptr [eax+0x14]
        cmp      ecx, dword ptr [eax+0x1C]
@@ -139,7 +139,7 @@ G_M15457_IG08:        ; bbWeight=2, gcVars=00000001 {V15}, gcrefRegs=00000041 {e
        call     [<unknown method>]
        ; gcrRegs -[eax ecx]
        test     eax, eax
-       mov      eax, gword ptr [ebp-0x2C]
+       mov      eax, gword ptr [ebp-0x28]
        ; gcrRegs +[eax]
        jne      SHORT G_M15457_IG09
        mov      eax, 0xFFFF
@@ -160,12 +160,12 @@ G_M15457_IG10:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=00000040 {esi}
        ; gcrRegs -[ecx]
        ; GC ptr vars -{V15}
        mov      dword ptr [ebp-0x14], eax
-       mov      dword ptr [ebp-0x24], eax
+       mov      dword ptr [ebp-0x20], eax
        mov      ecx, eax
        call     [Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsHexDigit(ushort):ubyte]
        test     eax, eax
        je       SHORT G_M15457_IG15
-       mov      ecx, dword ptr [ebp-0x24]
+       mov      ecx, dword ptr [ebp-0x20]
        mov      edx, ecx
        sub      edx, 48
        cmp      edx, 9
@@ -198,7 +198,7 @@ G_M15457_IG14:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
                        ;; size=5 bbWeight=0.50 PerfScore 1.50
 G_M15457_IG15:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        test     bl, bl
-       jne      SHORT G_M15457_IG17
+       jne      SHORT G_M15457_IG16
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      edx, dword ptr [ebp-0x10]
@@ -209,23 +209,21 @@ G_M15457_IG15:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        call     CORINFO_HELP_CHECKED_ASSIGN_REF_EAX
        ; gcrRegs -[eax]
        ; byrRegs -[edx]
-       mov      edi, dword ptr [ebp-0x14]
-                       ;; size=26 bbWeight=0.50 PerfScore 4.25
+                       ;; size=23 bbWeight=0.50 PerfScore 3.75
 G_M15457_IG16:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      eax, dword ptr [ebp-0x18]
        cmp      eax, 0xD1FFAB1E
        jbe      SHORT G_M15457_IG18
        test     bl, bl
-       jne      G_M15457_IG32
-       mov      dword ptr [ebp-0x14], edi
+       jne      SHORT G_M15457_IG17
        jmp      G_M15457_IG04
-                      ;; size=26 bbWeight=0.50 PerfScore 3.25
-G_M15457_IG17:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      edi, dword ptr [ebp-0x14]
-       jmp      SHORT G_M15457_IG16
-                       ;; size=5 bbWeight=0.25 PerfScore 0.75
-G_M15457_IG18:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+                       ;; size=19 bbWeight=0.50 PerfScore 2.75
+G_M15457_IG17:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi]
+       mov      edi, dword ptr [ebp-0x14]
+       jmp      G_M15457_IG32
+                       ;; size=8 bbWeight=0.25 PerfScore 0.75
+G_M15457_IG18:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, eax
        mov      edx, bword ptr [ebp+0x0C]
        ; byrRegs +[edx]
@@ -241,14 +239,12 @@ G_M15457_IG19:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      dword ptr [ebp-0x1C], edx
        mov      ecx, gword ptr [esi+0x04]
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x34], ecx
-       ; GC ptr vars +{V29}
-       inc      dword ptr [ecx+0x14]
-       mov      ecx, gword ptr [ebp-0x34]
+       mov      edi, ecx
+       ; gcrRegs +[edi]
+       inc      dword ptr [edi+0x14]
        cmp      dword ptr [ecx], ecx
-       ; GC ptr vars -{V29}
        call     [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:PeekChar():ushort:this]
-       ; gcrRegs -[ecx]
+       ; gcrRegs -[ecx edi]
        mov      ecx, eax
        call     [Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsHexDigit(ushort):ubyte]
        test     eax, eax
@@ -256,7 +252,7 @@ G_M15457_IG19:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000
        test     bl, bl
        jne      SHORT G_M15457_IG20
        jmp      G_M15457_IG04
-                        ;; size=46 bbWeight=0.50 PerfScore 11.00
+                      ;; size=42 bbWeight=0.50 PerfScore 10.12
 G_M15457_IG20:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi]
        mov      edi, dword ptr [ebp-0x14]
@@ -264,50 +260,49 @@ G_M15457_IG20:        ; bbWeight=0.25, gcrefRegs=00000000 {}, byrefRegs=00000000
                        ;; size=8 bbWeight=0.25 PerfScore 0.75
 G_M15457_IG21:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[esi]
-       xor      eax, eax
-       mov      dword ptr [ebp-0x20], eax
-                       ;; size=5 bbWeight=0.50 PerfScore 0.62
+       xor      edi, edi
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M15457_IG22:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      edx, gword ptr [esi+0x04]
-       ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x30], edx
+       mov      eax, gword ptr [esi+0x04]
+       ; gcrRegs +[eax]
+       mov      gword ptr [ebp-0x2C], eax
        ; GC ptr vars +{V20}
-       mov      ecx, dword ptr [edx+0x14]
-       cmp      ecx, dword ptr [edx+0x1C]
+       mov      ecx, dword ptr [eax+0x14]
+       cmp      ecx, dword ptr [eax+0x1C]
        jl       SHORT G_M15457_IG24
                        ;; size=14 bbWeight=4 PerfScore 36.00
-G_M15457_IG23:        ; bbWeight=2, gcVars=00000002 {V20}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       mov      ecx, edx
+G_M15457_IG23:        ; bbWeight=2, gcVars=00000002 {V20}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      ecx, eax
        ; gcrRegs +[ecx]
        call     [<unknown method>]
-       ; gcrRegs -[ecx edx]
+       ; gcrRegs -[eax ecx]
        test     eax, eax
-       mov      edx, gword ptr [ebp-0x30]
-       ; gcrRegs +[edx]
+       mov      eax, gword ptr [ebp-0x2C]
+       ; gcrRegs +[eax]
        jne      SHORT G_M15457_IG24
        mov      eax, 0xFFFF
+       ; gcrRegs -[eax]
        jmp      SHORT G_M15457_IG25
                        ;; size=22 bbWeight=2 PerfScore 15.50
-G_M15457_IG24:        ; bbWeight=2, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, byref
-       mov      ecx, gword ptr [edx+0x08]
+G_M15457_IG24:        ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs +[eax]
+       mov      ecx, gword ptr [eax+0x08]
        ; gcrRegs +[ecx]
-       mov      edx, dword ptr [edx+0x14]
-       ; gcrRegs -[edx]
-       cmp      edx, dword ptr [ecx+0x04]
-       jae      G_M15457_IG34
-       movzx    ecx, word  ptr [ecx+2*edx+0x08]
-       ; gcrRegs -[ecx]
-       mov      edx, ecx
-       mov      eax, edx
-                       ;; size=24 bbWeight=2 PerfScore 21.00
+       mov      eax, dword ptr [eax+0x14]
+       ; gcrRegs -[eax]
+       cmp      eax, dword ptr [ecx+0x04]
+       jae      SHORT G_M15457_IG34
+       movzx    eax, word  ptr [ecx+2*eax+0x08]
+                       ;; size=16 bbWeight=2 PerfScore 20.00
 G_M15457_IG25:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs -[ecx]
        ; GC ptr vars -{V20}
-       mov      dword ptr [ebp-0x28], eax
+       mov      dword ptr [ebp-0x24], eax
        mov      ecx, eax
        call     [Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsHexDigit(ushort):ubyte]
        test     eax, eax
        je       SHORT G_M15457_IG30
-       mov      ecx, dword ptr [ebp-0x28]
+       mov      ecx, dword ptr [ebp-0x24]
        mov      edx, ecx
        sub      edx, 48
        cmp      edx, 9
@@ -321,7 +316,7 @@ G_M15457_IG26:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000
 G_M15457_IG27:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        add      ecx, -48
                        ;; size=3 bbWeight=2 PerfScore 0.50
-G_M15457_IG28:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+G_M15457_IG28:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [ebp-0x1C]
        shl      edx, 4
        add      edx, ecx
@@ -329,21 +324,16 @@ G_M15457_IG28:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      ecx, gword ptr [esi+0x04]
        ; gcrRegs +[ecx]
        inc      dword ptr [ecx+0x14]
-       mov      ecx, dword ptr [ebp-0x20]
-       ; gcrRegs -[ecx]
-       inc      ecx
-       cmp      ecx, 4
-       mov      dword ptr [ebp-0x20], ecx
-       jl       G_M15457_IG22
-                       ;; size=33 bbWeight=4 PerfScore 45.00
+       inc      edi
+       cmp      edi, 4
+       jl       SHORT G_M15457_IG22
+                       ;; size=23 bbWeight=4 PerfScore 37.00
...
  
-8 (-4.04%) : 14555.dasm - SixLabors.ImageSharp.Processing.Processors.Convolution.Parameters.BokehBlurKernelDataProvider:CreateComplexKernels(System.Numerics.Vector4[],int,int,float):SixLabors.ImageSharp.Complex64[]
@@ -57,10 +57,10 @@ G_M44253_IG02:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000
        xor      edx, edx
        mov      ecx, dword ptr [ebp-0x14]
        test     ecx, ecx
-       jle      G_M44253_IG08
+       jle      SHORT G_M44253_IG07
        cmp      dword ptr [eax+0x04], ecx
-       jl       SHORT G_M44253_IG06
-                       ;; size=42 bbWeight=1 PerfScore 12.25
+       jl       SHORT G_M44253_IG05
+                       ;; size=38 bbWeight=1 PerfScore 12.25
 G_M44253_IG03:        ; bbWeight=3.96, gcVars=00000020 {V04}, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, gcvars, byref, isz
        ; gcrRegs -[eax]
        mov      dword ptr [ebp-0x10], edx
@@ -85,23 +85,19 @@ G_M44253_IG03:        ; bbWeight=3.96, gcVars=00000020 {V04}, gcrefRegs=00000000
        ; gcrRegs -[eax ebx]
        ; byrRegs -[edx]
        inc      ecx
-       mov      edx, dword ptr [ebp-0x14]
-       cmp      edx, ecx
-       jg       SHORT G_M44253_IG05
-                       ;; size=52 bbWeight=3.96 PerfScore 70.29
+       cmp      dword ptr [ebp-0x14], ecx
+       mov      edx, ecx
+       jg       SHORT G_M44253_IG03
+                       ;; size=52 bbWeight=3.96 PerfScore 74.25
 G_M44253_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; byrRegs -[edi]
        mov      eax, gword ptr [ebp-0x18]
        ; gcrRegs +[eax]
-       jmp      SHORT G_M44253_IG08
+       jmp      SHORT G_M44253_IG07
                       ;; size=5 bbWeight=1 PerfScore 3.00
-G_M44253_IG05:        ; bbWeight=1.98, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
+G_M44253_IG05:        ; bbWeight=0.04, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
        ; gcrRegs -[eax]
        ; byrRegs +[edi]
-       mov      edx, ecx
-       jmp      SHORT G_M44253_IG03
-                       ;; size=4 bbWeight=1.98 PerfScore 4.46
-G_M44253_IG06:        ; bbWeight=0.04, gcrefRegs=00000000 {}, byrefRegs=00000080 {edi}, byref, isz
        mov      dword ptr [ebp-0x10], edx
        mov      ebx, edx
        shl      ebx, 4
@@ -119,7 +115,7 @@ G_M44253_IG06:        ; bbWeight=0.04, gcrefRegs=00000000 {}, byrefRegs=00000080
        mov      ecx, gword ptr [ebp-0x18]
        ; gcrRegs +[ecx]
        cmp      ebx, dword ptr [ecx+0x04]
-       jae      SHORT G_M44253_IG10
+       jae      SHORT G_M44253_IG09
        lea      edx, bword ptr [ecx+4*ebx+0x08]
        ; byrRegs +[edx]
        call     CORINFO_HELP_ASSIGN_REF_EAX
@@ -129,14 +125,14 @@ G_M44253_IG06:        ; bbWeight=0.04, gcrefRegs=00000000 {}, byrefRegs=00000080
        mov      eax, dword ptr [ebp-0x14]
        cmp      eax, ebx
        mov      edx, ebx
-       jg       SHORT G_M44253_IG09
+       jg       SHORT G_M44253_IG08
                      ;; size=59 bbWeight=0.04 PerfScore 0.88
-G_M44253_IG07:        ; bbWeight=0.02, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
+G_M44253_IG06:        ; bbWeight=0.02, gcrefRegs=00000002 {ecx}, byrefRegs=00000000 {}, byref
        ; byrRegs -[edi]
        mov      eax, ecx
        ; gcrRegs +[eax]
                        ;; size=2 bbWeight=0.02 PerfScore 0.01
-G_M44253_IG08:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
+G_M44253_IG07:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref, epilog, nogc
        ; gcrRegs -[ecx]
        lea      esp, [ebp-0x0C]
        pop      ebx
@@ -145,12 +141,12 @@ G_M44253_IG08:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000
        pop      ebp
        ret      8
                        ;; size=10 bbWeight=1 PerfScore 4.50
-G_M44253_IG09:        ; bbWeight=0.02, gcVars=00000020 {V04}, gcrefRegs=00000002 {ecx}, byrefRegs=00000080 {edi}, gcvars, byref, isz
+G_M44253_IG08:        ; bbWeight=0.02, gcVars=00000020 {V04}, gcrefRegs=00000002 {ecx}, byrefRegs=00000080 {edi}, gcvars, byref, isz
        ; gcrRegs -[eax] +[ecx]
        ; byrRegs +[edi]
-       jmp      SHORT G_M44253_IG06
+       jmp      SHORT G_M44253_IG05
                       ;; size=2 bbWeight=0.02 PerfScore 0.04
-G_M44253_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M44253_IG09:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[ecx]
        ; byrRegs -[edi]
        ; GC ptr vars -{V04}
@@ -158,6 +154,6 @@ G_M44253_IG10:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 198, prolog size 12, PerfScore 101.42, instruction count 75, allocated bytes for code 198 (MethodHash=99575322) for method SixLabors.ImageSharp.Processing.Processors.Convolution.Parameters.BokehBlurKernelDataProvider:CreateComplexKernels(System.Numerics.Vector4[],int,int,float):SixLabors.ImageSharp.Complex64[][] (FullOpts)
+; Total bytes of code 190, prolog size 12, PerfScore 100.93, instruction count 73, allocated bytes for code 190 (MethodHash=99575322) for method SixLabors.ImageSharp.Processing.Processors.Convolution.Parameters.BokehBlurKernelDataProvider:CreateComplexKernels(System.Numerics.Vector4[],int,int,float):SixLabors.ImageSharp.Complex64[][] (FullOpts)
 ; ============================================================
 
  
+12 (+2.99%) : 29399.dasm - Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+ScopeTreeBuilder:AddIfCaptured(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
@@ -8,13 +8,13 @@
 ; 0 inlinees with PGO data; 9 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] (  9,  6   )     ref  ->  edi         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+ScopeTreeBuilder>
+;  V00 this         [V00,T06] (  9,  6   )     ref  ->  [ebp-0x18]  this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+ScopeTreeBuilder>
 ;  V01 arg1         [V01,T04] ( 13, 16   )     ref  ->  esi         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbol>
 ;  V02 arg2         [V02,T18] (  1,  0.50)     ref  ->  [ebp+0x08]  class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
 ;  V03 loc0         [V03,T14] (  4,  2   )     ref  ->  eax         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol>
 ;  V04 loc1         [V04,T13] (  5,  2.50)     ref  ->  eax         class-hnd single-def <<unknown class>>
-;  V05 loc2         [V05,T00] (  6, 52.50)     ref  ->  [ebp-0x18]  class-hnd <<unknown class>>
-;  V06 loc3         [V06,T03] (  7, 30.50)     ref  ->  [ebp-0x1C]  class-hnd <<unknown class>>
+;  V05 loc2         [V05,T00] (  6, 52.50)     ref  ->  [ebp-0x1C]  class-hnd <<unknown class>>
+;  V06 loc3         [V06,T03] (  7, 30.50)     ref  ->  [ebp-0x20]  class-hnd <<unknown class>>
 ;  V07 loc4         [V07    ] (  3,  1.50)     ref  ->  [ebp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <<unknown class>>
 ;  V08 tmp0         [V08,T16] (  2,  1   )   ubyte  ->  eax         "Inline return value spill temp"
 ;  V09 tmp1         [V09,T12] (  3,  3   )     ref  ->  edx         class-hnd single-def "Inlining Arg" <<unknown class>>
@@ -34,7 +34,7 @@
 ;  V23 tmp15        [V23,T15] (  2,  2   )     int  ->  edx         "argument with side effect"
 ;  V24 cse0         [V24,T07] (  4,  9   )     int  ->  ebx         "CSE - moderate"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 20
 
 G_M41453_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -42,7 +42,7 @@ G_M41453_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 16
+       sub      esp, 20
        xor      eax, eax
        mov      dword ptr [ebp-0x10], eax
        mov      dword ptr [ebp-0x14], eax
@@ -141,15 +141,17 @@ G_M41453_IG07:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        ; gcr arg pop 1
        mov      eax, gword ptr [edi+0x08]
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x18], eax
+       mov      gword ptr [ebp-0x1C], eax
        ; GC ptr vars +{V05}
+       mov      gword ptr [ebp-0x18], edi
+       ; GC ptr vars +{V00}
        mov      edx, gword ptr [edi+0x0C]
        ; gcrRegs +[edx]
        jmp      SHORT G_M41453_IG11
-                      ;; size=24 bbWeight=0.50 PerfScore 5.75
-G_M41453_IG08:        ; bbWeight=2, gcVars=00000001 {V05}, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs -[eax]
-       mov      gword ptr [ebp-0x1C], edx
+                        ;; size=27 bbWeight=0.50 PerfScore 6.25
+G_M41453_IG08:        ; bbWeight=2, gcVars=00000041 {V00 V05}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs -[eax edi]
+       mov      gword ptr [ebp-0x20], edx
        ; GC ptr vars +{V06}
        mov      ecx, gword ptr [edx+0x0C]
        ; gcrRegs +[ecx]
@@ -159,29 +161,33 @@ G_M41453_IG08:        ; bbWeight=2, gcVars=00000001 {V05}, gcrefRegs=000000C4 {e
        mov      edx, esi
        call     [<unknown method>]
        ; gcrRegs -[ecx edx]
-       mov      eax, gword ptr [ebp-0x18]
+       mov      eax, gword ptr [ebp-0x1C]
        ; gcrRegs +[eax]
-       mov      edx, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [ebp-0x20]
        ; gcrRegs +[edx]
        cmp      gword ptr [eax+0x18], edx
        jne      SHORT G_M41453_IG10
                        ;; size=31 bbWeight=2 PerfScore 33.50
-G_M41453_IG09:        ; bbWeight=16, gcVars=00000000 {}, gcrefRegs=000000C5 {eax edx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; GC ptr vars -{V05 V06}
+G_M41453_IG09:        ; bbWeight=16, gcVars=00000040 {V00}, gcrefRegs=00000045 {eax edx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V00 V05 V06}
        mov      eax, gword ptr [eax+0x04]
        cmp      gword ptr [eax+0x18], edx
        je       SHORT G_M41453_IG09
                        ;; size=8 bbWeight=16 PerfScore 96.00
-G_M41453_IG10:        ; bbWeight=2, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref
+G_M41453_IG10:        ; bbWeight=2, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edx]
        mov      edx, gword ptr [eax+0x18]
        ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x18], eax
+       mov      gword ptr [ebp-0x20], edx
+       ; GC ptr vars +{V06}
+       mov      gword ptr [ebp-0x1C], eax
        ; GC ptr vars +{V05}
-                     ;; size=6 bbWeight=2 PerfScore 6.00
-G_M41453_IG11:        ; bbWeight=4, gcVars=00000001 {V05}, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       mov      edx, gword ptr [ebp-0x20]
+                       ;; size=12 bbWeight=2 PerfScore 10.00
+G_M41453_IG11:        ; bbWeight=4, gcVars=00000041 {V00 V05}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax]
-       mov      gword ptr [ebp-0x1C], edx
+       ; GC ptr vars -{V06} +{V00}
+       mov      gword ptr [ebp-0x20], edx
        ; GC ptr vars +{V06}
        test     edx, edx
        je       SHORT G_M41453_IG14
@@ -189,7 +195,7 @@ G_M41453_IG11:        ; bbWeight=4, gcVars=00000001 {V05}, gcrefRegs=000000C4 {e
        ; gcrRegs +[ecx]
        call     [ebx+0x04]<unknown method>
        ; gcrRegs -[ecx edx] +[eax]
-       mov      edx, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [ebp-0x20]
        ; gcrRegs +[edx]
        mov      ecx, gword ptr [edx+0x04]
        ; gcrRegs +[ecx]
@@ -198,35 +204,35 @@ G_M41453_IG11:        ; bbWeight=4, gcVars=00000001 {V05}, gcrefRegs=000000C4 {e
        test     eax, eax
        jne      SHORT G_M41453_IG08
                        ;; size=26 bbWeight=4 PerfScore 44.00
-G_M41453_IG12:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M41453_IG12:        ; bbWeight=0.50, gcVars=00000040 {V00}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[eax ecx edx]
-       ; GC ptr vars -{V05 V06}
+       ; GC ptr vars -{V00 V05 V06}
        jmp      SHORT G_M41453_IG14
                        ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M41453_IG13:        ; bbWeight=4, gcVars=00000001 {V05}, gcrefRegs=000000C7 {eax ecx edx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M41453_IG13:        ; bbWeight=4, gcVars=00000041 {V00 V05}, gcrefRegs=00000047 {eax ecx edx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[eax ecx edx]
        ; GC ptr vars +{V00 V05}
        cmp      eax, ecx
-       mov      gword ptr [ebp-0x1C], edx
+       mov      gword ptr [ebp-0x20], edx
        ; GC ptr vars +{V06}
        je       SHORT G_M41453_IG14
-       mov      edx, gword ptr [D1FFAB1EH]      ; static handle
-       push     dword ptr [edx+0x04]
+       mov      edi, gword ptr [D1FFAB1EH]      ; static handle
+       ; gcrRegs +[edi]
+       push     dword ptr [edi+0x04]
        mov      edx, eax
        mov      eax, dword ptr [ecx]
        ; gcrRegs -[eax]
        mov      eax, dword ptr [eax+0x44]
-       ; GC ptr vars -{V00}
        call     [eax+0x10]<unknown method>
-       ; gcrRegs -[ecx edx]
+       ; gcrRegs -[ecx edx edi]
        test     eax, eax
-       mov      edx, gword ptr [ebp-0x1C]
+       mov      edx, gword ptr [ebp-0x20]
        ; gcrRegs +[edx]
        je       SHORT G_M41453_IG08
                        ;; size=33 bbWeight=4 PerfScore 63.00
-G_M41453_IG14:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M41453_IG14:        ; bbWeight=4, gcVars=00000040 {V00}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs -[edx]
-       ; GC ptr vars -{V05 V06}
+       ; GC ptr vars -{V00 V05 V06}
        mov      ecx, esi
        ; gcrRegs +[ecx]
        call     [ebx]<unknown method>
@@ -234,7 +240,9 @@ G_M41453_IG14:        ; bbWeight=4, gcVars=00000000 {}, gcrefRegs=000000C0 {esi
        cmp      eax, 9
        je       SHORT G_M41453_IG18
                        ;; size=9 bbWeight=4 PerfScore 18.00
-G_M41453_IG15:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M41453_IG15:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      edi, gword ptr [ebp-0x18]
+       ; gcrRegs +[edi]
        mov      edi, gword ptr [edi+0x10]
        cmp      gword ptr [edi+0x04], 0
        je       SHORT G_M41453_IG16
@@ -255,7 +263,7 @@ G_M41453_IG15:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        ; gcrRegs -[ecx edi]
        ; gcr arg pop 1
        jmp      SHORT G_M41453_IG17
-                      ;; size=37 bbWeight=0.50 PerfScore 9.62
+                       ;; size=40 bbWeight=0.50 PerfScore 10.12
 G_M41453_IG16:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
        xor      eax, eax
@@ -285,6 +293,6 @@ G_M41453_IG18:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        ret      4
                        ;; size=10 bbWeight=1 PerfScore 4.50
 
-; Total bytes of code 401, prolog size 21, PerfScore 330.12, instruction count 143, allocated bytes for code 401 (MethodHash=c6f95e12) for method Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+ScopeTreeBuilder:AddIfCaptured(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
+; Total bytes of code 413, prolog size 21, PerfScore 335.12, instruction count 147, allocated bytes for code 413 (MethodHash=c6f95e12) for method Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+ScopeTreeBuilder:AddIfCaptured(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
 ; ============================================================
 
  
+8 (+3.62%) : 21919.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
@@ -43,14 +43,14 @@ G_M43028_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        mov      ebx, dword ptr [edi+0x04]
        xor      eax, eax
        test     ebx, ebx
-       jle      G_M43028_IG16
+       jle      G_M43028_IG13
        test     esi, esi
        je       SHORT G_M43028_IG09
        cmp      dword ptr [esi+0x04], ebx
        jl       SHORT G_M43028_IG08
        mov      ecx, dword ptr [edi+0x04]
                        ;; size=25 bbWeight=1 PerfScore 10.75
-G_M43028_IG03:        ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+G_M43028_IG03:        ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
        lea      ecx, [eax+2*eax]
        lea      edx, bword ptr [esi+4*ecx+0x08]
        ; byrRegs +[edx]
@@ -65,19 +65,19 @@ G_M43028_IG03:        ; bbWeight=3.96, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        mov      dword ptr [ebp-0x10], eax
        mov      edi, gword ptr [edi+4*eax+0x08]
        cmp      edx, 1
-       jne      SHORT G_M43028_IG14
-                       ;; size=34 bbWeight=3.96 PerfScore 54.45
+       jne      G_M43028_IG15
+                       ;; size=38 bbWeight=3.96 PerfScore 54.45
 G_M43028_IG04:        ; bbWeight=1.98, gcVars=00000100 {V11}, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      gword ptr [ebp-0x14], edi
-       jne      SHORT G_M43028_IG14
+       jne      G_M43028_IG15
        mov      edx, dword ptr [ecx]
        mov      edx, dword ptr [edx+0x2C]
        ; GC ptr vars -{V11}
        call     [edx+0x18]<unknown method>
        ; gcrRegs -[ecx edi] +[eax]
        cmp      dword ptr [eax+0x04], 0
-       jne      SHORT G_M43028_IG14
-                       ;; size=19 bbWeight=1.98 PerfScore 27.72
+       jne      SHORT G_M43028_IG15
+                       ;; size=23 bbWeight=1.98 PerfScore 27.72
 G_M43028_IG05:        ; bbWeight=3.96, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
        mov      edi, dword ptr [ebp-0x10]
@@ -86,10 +86,10 @@ G_M43028_IG05:        ; bbWeight=3.96, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      eax, edi
        jl       SHORT G_M43028_IG07
                        ;; size=10 bbWeight=3.96 PerfScore 10.89
-G_M43028_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+G_M43028_IG06:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[esi]
-       jmp      SHORT G_M43028_IG16
-                       ;; size=2 bbWeight=1 PerfScore 2.00
+       jmp      SHORT G_M43028_IG13
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M43028_IG07:        ; bbWeight=1.98, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi]
        mov      edi, gword ptr [ebp+0x0C]
@@ -106,7 +106,7 @@ G_M43028_IG09:        ; bbWeight=0.50, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
 G_M43028_IG10:        ; bbWeight=0.04, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edi]
        cmp      eax, dword ptr [esi+0x04]
-       jae      SHORT G_M43028_IG18
+       jae      SHORT G_M43028_IG17
        lea      ecx, [eax+2*eax]
        lea      edx, bword ptr [esi+4*ecx+0x08]
        ; byrRegs +[edx]
@@ -122,11 +122,11 @@ G_M43028_IG10:        ; bbWeight=0.04, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      dword ptr [ebp-0x10], eax
        mov      ecx, gword ptr [ecx+4*eax+0x08]
        cmp      edx, 1
-       jne      SHORT G_M43028_IG14
+       jne      SHORT G_M43028_IG15
                        ;; size=39 bbWeight=0.04 PerfScore 0.71
 G_M43028_IG11:        ; bbWeight=0.02, gcVars=00000100 {V11}, gcrefRegs=000000C2 {ecx esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        cmp      gword ptr [ebp-0x14], ecx
-       jne      SHORT G_M43028_IG14
+       jne      SHORT G_M43028_IG15
        mov      ecx, edi
        mov      edx, dword ptr [edi]
        mov      edx, dword ptr [edx+0x2C]
@@ -134,34 +134,21 @@ G_M43028_IG11:        ; bbWeight=0.02, gcVars=00000100 {V11}, gcrefRegs=000000C2
        call     [edx+0x18]<unknown method>
        ; gcrRegs -[ecx edi] +[eax]
        cmp      dword ptr [eax+0x04], 0
-       jne      SHORT G_M43028_IG14
+       jne      SHORT G_M43028_IG15
                       ;; size=21 bbWeight=0.02 PerfScore 0.29
 G_M43028_IG12:        ; bbWeight=0.04, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[eax]
-       mov      eax, dword ptr [ebp-0x10]
-       inc      eax
-       cmp      eax, ebx
+       mov      edi, dword ptr [ebp-0x10]
+       inc      edi
+       cmp      edi, ebx
+       mov      eax, edi
        jl       SHORT G_M43028_IG10
-                      ;; size=8 bbWeight=0.04 PerfScore 0.10
-G_M43028_IG13:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
+                      ;; size=10 bbWeight=0.04 PerfScore 0.11
+G_M43028_IG13:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi]
-       jmp      SHORT G_M43028_IG16
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M43028_IG14:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       xor      eax, eax
-                       ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M43028_IG15:        ; bbWeight=0.50, epilog, nogc, extend
-       lea      esp, [ebp-0x0C]
-       pop      ebx
-       pop      esi
-       pop      edi
-       pop      ebp
-       ret      8
-                       ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M43028_IG16:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M43028_IG17:        ; bbWeight=0.50, epilog, nogc, extend
+G_M43028_IG14:        ; bbWeight=0.50, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -169,11 +156,22 @@ G_M43028_IG17:        ; bbWeight=0.50, epilog, nogc, extend
        pop      ebp
        ret      8
                        ;; size=10 bbWeight=0.50 PerfScore 2.25
-G_M43028_IG18:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+G_M43028_IG15:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
+       xor      eax, eax
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M43028_IG16:        ; bbWeight=0.50, epilog, nogc, extend
+       lea      esp, [ebp-0x0C]
+       pop      ebx
+       pop      esi
+       pop      edi
+       pop      ebp
+       ret      8
+                       ;; size=10 bbWeight=0.50 PerfScore 2.25
+G_M43028_IG17:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 221, prolog size 15, PerfScore 127.10, instruction count 88, allocated bytes for code 221 (MethodHash=8c6257eb) for method Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
+; Total bytes of code 229, prolog size 15, PerfScore 125.11, instruction count 88, allocated bytes for code 229 (MethodHash=8c6257eb) for method Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
 ; ============================================================
 
  
+22 (+6.81%) : 6854.dasm - System.String:TrimWhiteSpaceHelper(int):System.String:this (FullOpts)
@@ -104,7 +104,7 @@ G_M50035_IG06:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
 G_M50035_IG07:        ; bbWeight=2, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        call     [System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte]
        test     eax, eax
-       je       SHORT G_M50035_IG15
+       je       SHORT G_M50035_IG16
                      ;; size=10 bbWeight=2 PerfScore 8.50
 G_M50035_IG08:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [ebp-0x14]
@@ -115,24 +115,24 @@ G_M50035_IG08:        ; bbWeight=4, gcrefRegs=00000040 {esi}, byrefRegs=00000000
 G_M50035_IG09:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        test     edi, 2
        mov      edi, dword ptr [ebp-0x10]
-       je       SHORT G_M50035_IG14
+       je       SHORT G_M50035_IG15
                         ;; size=11 bbWeight=1 PerfScore 2.25
 G_M50035_IG10:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        lea      eax, [ebx-0x01]
        mov      edi, eax
        cmp      edi, edx
-       jl       SHORT G_M50035_IG13
+       jl       SHORT G_M50035_IG14
        mov      dword ptr [ebp-0x14], edx
        mov      ecx, edi
        or       ecx, edx
-       jl       SHORT G_M50035_IG19
+       jl       SHORT G_M50035_IG21
        cmp      ebx, edi
-       jle      SHORT G_M50035_IG19
+       jle      SHORT G_M50035_IG21
                        ;; size=22 bbWeight=0.50 PerfScore 2.88
 G_M50035_IG11:        ; bbWeight=3.96, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        movzx    ebx, word  ptr [esi+2*edi+0x08]
        cmp      ebx, 256
-       jae      SHORT G_M50035_IG16
+       jae      SHORT G_M50035_IG17
                      ;; size=13 bbWeight=3.96 PerfScore 12.87
 G_M50035_IG12:        ; bbWeight=1.98, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        xor      ecx, ecx
@@ -140,45 +140,54 @@ G_M50035_IG12:        ; bbWeight=1.98, gcrefRegs=00000040 {esi}, byrefRegs=00000
        setb     cl
        call     [<unknown method>]
        test     byte  ptr [ebx+D1FFAB1EH], 128
-       je       SHORT G_M50035_IG23
-       jmp      SHORT G_M50035_IG17
+       je       SHORT G_M50035_IG13
+       jmp      SHORT G_M50035_IG18
                         ;; size=28 bbWeight=1.98 PerfScore 20.79
-G_M50035_IG13:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      dword ptr [ebp-0x14], edx
-       jmp      SHORT G_M50035_IG23
-                       ;; size=5 bbWeight=0.25 PerfScore 0.75
-G_M50035_IG14:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       mov      dword ptr [ebp-0x14], edx
-       jmp      SHORT G_M50035_IG23
-                       ;; size=5 bbWeight=0.50 PerfScore 1.50
-G_M50035_IG15:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M50035_IG13:        ; bbWeight=0.99, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, dword ptr [ebp-0x14]
+       jmp      SHORT G_M50035_IG26
+                       ;; size=5 bbWeight=0.99 PerfScore 2.97
+G_M50035_IG14:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, edx
+       jmp      SHORT G_M50035_IG26
+                       ;; size=4 bbWeight=0.25 PerfScore 0.56
+G_M50035_IG15:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, edx
+       jmp      SHORT G_M50035_IG26
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
+G_M50035_IG16:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      edx, dword ptr [ebp-0x14]
        jmp      SHORT G_M50035_IG09
                        ;; size=5 bbWeight=1 PerfScore 3.00
-G_M50035_IG16:        ; bbWeight=1.98, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M50035_IG17:        ; bbWeight=1.98, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, ebx
        call     [System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte]
        test     eax, eax
-       je       SHORT G_M50035_IG23
+       je       SHORT G_M50035_IG20
                      ;; size=12 bbWeight=1.98 PerfScore 8.91
-G_M50035_IG17:        ; bbWeight=3.96, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M50035_IG18:        ; bbWeight=3.96, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        dec      edi
        mov      ebx, dword ptr [ebp-0x14]
        cmp      edi, ebx
        jge      SHORT G_M50035_IG11
                        ;; size=8 bbWeight=3.96 PerfScore 9.90
-G_M50035_IG18:        ; bbWeight=0.50, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
-       jmp      SHORT G_M50035_IG23
-                       ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M50035_IG19:        ; bbWeight=0.04, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M50035_IG19:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, dword ptr [ebp-0x14]
+       jmp      SHORT G_M50035_IG26
+                       ;; size=5 bbWeight=1 PerfScore 3.00
+G_M50035_IG20:        ; bbWeight=0.99, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, dword ptr [ebp-0x14]
+       jmp      SHORT G_M50035_IG26
+                       ;; size=5 bbWeight=0.99 PerfScore 2.97
+G_M50035_IG21:        ; bbWeight=0.04, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        cmp      edi, ebx
-       jae      SHORT G_M50035_IG25
+       jae      SHORT G_M50035_IG30
        movzx    ecx, word  ptr [esi+2*edi+0x08]
        mov      eax, ecx
        cmp      eax, 256
-       jae      SHORT G_M50035_IG21
+       jae      SHORT G_M50035_IG24
                      ;; size=18 bbWeight=0.04 PerfScore 0.19
-G_M50035_IG20:        ; bbWeight=0.02, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M50035_IG22:        ; bbWeight=0.02, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      dword ptr [ebp-0x1C], eax
        xor      ecx, ecx
        cmp      eax, 256
@@ -187,30 +196,33 @@ G_M50035_IG20:        ; bbWeight=0.02, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      eax, dword ptr [ebp-0x1C]
        test     byte  ptr [eax+D1FFAB1EH], 128
        je       SHORT G_M50035_IG23
-       jmp      SHORT G_M50035_IG22
+       jmp      SHORT G_M50035_IG25
                       ;; size=33 bbWeight=0.02 PerfScore 0.25
-G_M50035_IG21:        ; bbWeight=0.02, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M50035_IG23:        ; bbWeight=0.01, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, dword ptr [ebp-0x14]
+       jmp      SHORT G_M50035_IG26
+                       ;; size=5 bbWeight=0.01 PerfScore 0.03
+G_M50035_IG24:        ; bbWeight=0.02, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, eax
        call     [System.Globalization.CharUnicodeInfo:GetIsWhiteSpace(ushort):ubyte]
        test     eax, eax
-       je       SHORT G_M50035_IG23
+       je       SHORT G_M50035_IG29
                      ;; size=12 bbWeight=0.02 PerfScore 0.09
-G_M50035_IG22:        ; bbWeight=0.04, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M50035_IG25:        ; bbWeight=0.04, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        dec      edi
-       mov      edx, dword ptr [ebp-0x14]
-       cmp      edi, edx
-       mov      dword ptr [ebp-0x14], edx
-       jge      SHORT G_M50035_IG19
-                       ;; size=11 bbWeight=0.04 PerfScore 0.14
-G_M50035_IG23:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
+       mov      eax, dword ptr [ebp-0x14]
+       cmp      edi, eax
+       jge      SHORT G_M50035_IG28
+                       ;; size=8 bbWeight=0.04 PerfScore 0.10
+G_M50035_IG26:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        push     edi
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       mov      edx, dword ptr [ebp-0x14]
+       mov      edx, eax
        call     [System.String:CreateTrimmedString(int,int):System.String:this]
        ; gcrRegs -[ecx esi] +[eax]
-                       ;; size=12 bbWeight=1 PerfScore 5.25
-G_M50035_IG24:        ; bbWeight=1, epilog, nogc, extend
+                     ;; size=11 bbWeight=1 PerfScore 4.50
+G_M50035_IG27:        ; bbWeight=1, epilog, nogc, extend
        lea      esp, [ebp-0x0C]
        pop      ebx
        pop      esi
@@ -218,12 +230,21 @@ G_M50035_IG24:        ; bbWeight=1, epilog, nogc, extend
        pop      ebp
        ret      
                        ;; size=8 bbWeight=1 PerfScore 3.50
-G_M50035_IG25:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
-       ; gcrRegs -[eax]
+G_M50035_IG28:        ; bbWeight=0.02, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs -[eax] +[esi]
+       mov      dword ptr [ebp-0x14], eax
+       jmp      SHORT G_M50035_IG21
+                       ;; size=5 bbWeight=0.02 PerfScore 0.06
+G_M50035_IG29:        ; bbWeight=0.01, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, dword ptr [ebp-0x14]
+       jmp      SHORT G_M50035_IG26
+                       ;; size=5 bbWeight=0.01 PerfScore 0.03
+G_M50035_IG30:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
+       ; gcrRegs -[esi]
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 323, prolog size 9, PerfScore 149.51, instruction count 113, allocated bytes for code 323 (MethodHash=878d3c8c) for method System.String:TrimWhiteSpaceHelper(int):System.String:this (FullOpts)
+; Total bytes of code 345, prolog size 9, PerfScore 156.22, instruction count 123, allocated bytes for code 345 (MethodHash=878d3c8c) for method System.String:TrimWhiteSpaceHelper(int):System.String: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 | 267 | 128 | 67 | 72 | -823 | +680 | 
| benchmarks.run_pgo.windows.x86.checked.mch | 709 | 269 | 205 | 235 | -1,443 | +1,481 | 
| benchmarks.run_tiered.windows.x86.checked.mch | 271 | 127 | 67 | 77 | -810 | +678 | 
| coreclr_tests.run.windows.x86.checked.mch | 3,504 | 1,708 | 491 | 1,305 | -24,509 | +6,075 | 
| libraries.crossgen2.windows.x86.checked.mch | 1,359 | 678 | 234 | 447 | -3,311 | +2,153 | 
| libraries.pmi.windows.x86.checked.mch | 1,648 | 817 | 386 | 445 | -4,512 | +3,062 | 
| libraries_tests.run.windows.x86.Release.mch | 7,291 | 2,689 | 2,681 | 1,921 | -27,443 | +25,653 | 
| librariestestsnotieredcompilation.run.windows.x86.Release.mch | 1,899 | 787 | 424 | 688 | -6,145 | +4,880 | 
| realworld.run.windows.x86.checked.mch | 388 | 195 | 75 | 118 | -1,836 | +817 | 
|  | 17,336 | 7,398 | 4,630 | 5,308 | -70,832 | +45,479 | 
Context information
| Collection | Diffed contexts | MinOpts | FullOpts | Missed, base | Missed, diff | 
| benchmarks.run.windows.x86.checked.mch | 24,496 | 4 | 24,492 | 0 (0.00%) | 3 (0.01%) | 
| benchmarks.run_pgo.windows.x86.checked.mch | 116,983 | 41,640 | 75,343 | 0 (0.00%) | 24 (0.02%) | 
| benchmarks.run_tiered.windows.x86.checked.mch | 48,695 | 28,737 | 19,958 | 0 (0.00%) | 3 (0.01%) | 
| coreclr_tests.run.windows.x86.checked.mch | 574,651 | 320,020 | 254,631 | 0 (0.00%) | 64 (0.01%) | 
| libraries.crossgen2.windows.x86.checked.mch | 242,517 | 15 | 242,502 | 0 (0.00%) | 42 (0.02%) | 
| libraries.pmi.windows.x86.checked.mch | 305,471 | 6 | 305,465 | 0 (0.00%) | 70 (0.02%) | 
| libraries_tests.run.windows.x86.Release.mch | 626,707 | 424,879 | 201,828 | 0 (0.00%) | 393 (0.06%) | 
| librariestestsnotieredcompilation.run.windows.x86.Release.mch | 316,350 | 21,909 | 294,441 | 0 (0.00%) | 59 (0.02%) | 
| realworld.run.windows.x86.checked.mch | 35,964 | 3 | 35,961 | 0 (0.00%) | 26 (0.07%) | 
|  | 2,291,834 | 837,213 | 1,454,621 | 0 (0.00%) | 684 (0.03%) | 
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: 7119787 (overridden on cmd)
Total bytes of diff: 7119644 (overridden on cmd)
Total bytes of delta: -143 (-0.00 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
          70 : 16313.dasm (2.06 % of base)
          67 : 3897.dasm (4.37 % of base)
          50 : 17745.dasm (0.78 % of base)
          35 : 2058.dasm (5.10 % of base)
          31 : 152.dasm (2.80 % of base)
          30 : 20607.dasm (1.09 % of base)
          24 : 3357.dasm (0.77 % of base)
          22 : 15099.dasm (0.78 % of base)
          21 : 23294.dasm (9.63 % of base)
          16 : 16460.dasm (5.88 % of base)
          16 : 4383.dasm (1.93 % of base)
          15 : 16977.dasm (0.56 % of base)
          14 : 8343.dasm (1.19 % of base)
          12 : 275.dasm (1.93 % of base)
          12 : 6956.dasm (0.94 % of base)
          11 : 16975.dasm (1.03 % of base)
          11 : 2479.dasm (0.22 % of base)
           9 : 3860.dasm (2.55 % of base)
           9 : 22586.dasm (2.52 % of base)
           9 : 19486.dasm (2.37 % of base)
Top file improvements (bytes):
        -167 : 18298.dasm (-2.97 % of base)
         -48 : 9049.dasm (-0.51 % of base)
         -22 : 2906.dasm (-1.67 % of base)
         -21 : 19035.dasm (-2.47 % of base)
         -21 : 43.dasm (-3.08 % of base)
         -20 : 12515.dasm (-1.91 % of base)
         -20 : 16974.dasm (-2.24 % of base)
         -19 : 1157.dasm (-4.19 % of base)
         -15 : 22414.dasm (-0.79 % of base)
         -14 : 14169.dasm (-1.60 % of base)
         -13 : 14987.dasm (-0.93 % of base)
         -12 : 2650.dasm (-1.36 % of base)
         -12 : 20203.dasm (-1.06 % of base)
         -12 : 23832.dasm (-1.04 % of base)
         -11 : 4175.dasm (-1.16 % of base)
         -10 : 15475.dasm (-3.05 % of base)
         -10 : 5471.dasm (-0.11 % of base)
          -9 : 21469.dasm (-2.74 % of base)
          -8 : 6708.dasm (-1.78 % of base)
          -8 : 1258.dasm (-2.42 % of base)
63 total files with Code Size differences (32 improved, 31 regressed), 20 unchanged.
Top method regressions (bytes):
          70 (2.06 % of base) : 16313.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (FullOpts)
          67 (4.37 % of base) : 3897.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (FullOpts)
          50 (0.78 % of base) : 17745.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
          35 (5.10 % of base) : 2058.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (FullOpts)
          31 (2.80 % of base) : 152.dasm - System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int (FullOpts)
          30 (1.09 % of base) : 20607.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderCollectionsOfPrimitives:Read2_CollectionsOfPrimitives(ubyte,ubyte):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this (FullOpts)
          24 (0.77 % of base) : 3357.dasm - System.Text.RegularExpressions.RegexNode:CanBeMadeAtomic(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte,ubyte):ubyte (FullOpts)
          22 (0.78 % of base) : 15099.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          21 (9.63 % of base) : 23294.dasm - Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (FullOpts)
          16 (5.88 % of base) : 16460.dasm - Benchstone.BenchF.InProd:Inner(double[][],double[][],double[][]) (FullOpts)
          16 (1.93 % of base) : 4383.dasm - System.Number:TryParseBinaryIntegerHexOrBinaryNumberStyle[ushort,ubyte,System.Number+HexParser`1[ubyte]](System.ReadOnlySpan`1[ushort],int,byref):int (FullOpts)
          15 (0.56 % of base) : 16977.dasm - LUDecomp:ludcmp(double[][],int,int[],byref):int (FullOpts)
          14 (1.19 % of base) : 8343.dasm - Newtonsoft.Json.JsonTextReader:ReadStringValue(int):System.Object:this (FullOpts)
          12 (1.93 % of base) : 275.dasm - System.Reflection.TypeNameParser:ParseNamedOrConstructedGenericTypeName():System.Reflection.TypeNameParser+TypeName:this (FullOpts)
          12 (0.94 % of base) : 6956.dasm - System.Xml.XmlBaseReader:ProcessAttributes(System.Xml.XmlBaseReader+XmlAttributeNode[],int):this (FullOpts)
          11 (1.03 % of base) : 16975.dasm - LUDecomp:build_problem(double[][],int,double[]) (FullOpts)
          11 (0.22 % of base) : 2479.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
           9 (2.37 % of base) : 19486.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitStatementSubList(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],int):this (FullOpts)
           9 (2.55 % of base) : 3860.dasm - System.Collections.Generic.GenericEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (FullOpts)
           9 (2.52 % of base) : 22586.dasm - System.Collections.Generic.GenericEqualityComparer`1[System.__Canon]:LastIndexOf(System.__Canon[],System.__Canon,int,int):int:this (FullOpts)
Top method improvements (bytes):
        -167 (-2.97 % of base) : 18298.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         -48 (-0.51 % of base) : 9049.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -22 (-1.67 % of base) : 2906.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
         -21 (-2.47 % of base) : 19035.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
         -21 (-3.08 % of base) : 43.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(uint,int,byref,byref):uint (FullOpts)
         -20 (-2.24 % of base) : 16974.dasm - LUDecomp:Run():double:this (FullOpts)
         -20 (-1.91 % of base) : 12515.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (FullOpts)
         -19 (-4.19 % of base) : 1157.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
         -15 (-0.79 % of base) : 22414.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
         -14 (-1.60 % of base) : 14169.dasm - System.IO.FileSystem:CreateDirectory(System.String,ubyte[]) (FullOpts)
         -13 (-0.93 % of base) : 14987.dasm - AssignJagged:second_assignments(int[][],short[][]) (FullOpts)
         -12 (-1.36 % of base) : 2650.dasm - BenchmarksGame.KNucleotide_9:writeFrequencies(System.Collections.Generic.Dictionary`2[long,BenchmarksGame.Wrapper],int,int[],byref):System.String (FullOpts)
         -12 (-1.06 % of base) : 20203.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:GetForwardedTypes(System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol],Microsoft.CodeAnalysis.CommonAssemblyWellKnownAttributeData`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.Cci.ExportedType]) (FullOpts)
         -12 (-1.04 % of base) : 23832.dasm - System.MulticastDelegate:CombineImpl(System.Delegate):System.Delegate:this (FullOpts)
         -11 (-1.16 % of base) : 4175.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (FullOpts)
         -10 (-0.11 % of base) : 5471.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         -10 (-3.05 % of base) : 15475.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:<TryFoldAlternation>g__TrySplitConcatSubsumption|52_0(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],byref):ubyte (FullOpts)
          -9 (-2.74 % of base) : 21469.dasm - System.Collections.Concurrent.ConcurrentBag`1[int]:ToArray():int[]:this (FullOpts)
          -8 (-1.83 % of base) : 7447.dasm - Jil.Common.ExtensionMethods:GetMethod(System.Type,System.String,int,System.Type[]):System.Reflection.MethodInfo (FullOpts)
          -8 (-0.83 % of base) : 15309.dasm - Microsoft.Extensions.Configuration.ConfigurationBinder:CreateInstance(System.Type,Microsoft.Extensions.Configuration.IConfiguration,Microsoft.Extensions.Configuration.BinderOptions):System.Object (FullOpts)
Top method regressions (percentages):
          21 (9.63 % of base) : 23294.dasm - Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (FullOpts)
          16 (5.88 % of base) : 16460.dasm - Benchstone.BenchF.InProd:Inner(double[][],double[][],double[][]) (FullOpts)
          35 (5.10 % of base) : 2058.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (FullOpts)
          67 (4.37 % of base) : 3897.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (FullOpts)
          31 (2.80 % of base) : 152.dasm - System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int (FullOpts)
           9 (2.55 % of base) : 3860.dasm - System.Collections.Generic.GenericEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (FullOpts)
           9 (2.52 % of base) : 22586.dasm - System.Collections.Generic.GenericEqualityComparer`1[System.__Canon]:LastIndexOf(System.__Canon[],System.__Canon,int,int):int:this (FullOpts)
           9 (2.37 % of base) : 19486.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitStatementSubList(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],int):this (FullOpts)
           2 (2.17 % of base) : 13546.dasm - System.Xml.XmlReader:MoveToContent():int:this (FullOpts)
          70 (2.06 % of base) : 16313.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (FullOpts)
          12 (1.93 % of base) : 275.dasm - System.Reflection.TypeNameParser:ParseNamedOrConstructedGenericTypeName():System.Reflection.TypeNameParser+TypeName:this (FullOpts)
          16 (1.93 % of base) : 4383.dasm - System.Number:TryParseBinaryIntegerHexOrBinaryNumberStyle[ushort,ubyte,System.Number+HexParser`1[ubyte]](System.ReadOnlySpan`1[ushort],int,byref):int (FullOpts)
           8 (1.84 % of base) : 7626.dasm - Sigil.Emit`1[System.__Canon]:InjectTailCall():this (FullOpts)
           8 (1.79 % of base) : 4174.dasm - System.Text.Unicode.Utf8:ToUtf16(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte,ubyte):int (FullOpts)
           6 (1.64 % of base) : 24198.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryFindNextPossibleStartingPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
           8 (1.48 % of base) : 13321.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryFindNextPossibleStartingPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
           6 (1.41 % of base) : 23109.dasm - System.Globalization.DateTimeFormatInfoScanner:AddDateWords(System.String,int,System.String):int:this (FullOpts)
           5 (1.30 % of base) : 13258.dasm - BenchmarksGame.SpectralNorm_1:MultiplyAtv(int,double[],double[]):this (FullOpts)
           5 (1.30 % of base) : 13257.dasm - BenchmarksGame.SpectralNorm_1:MultiplyAv(int,double[],double[]):this (FullOpts)
           6 (1.23 % of base) : 23019.dasm - System.Collections.Generic.Dictionary`2+ValueCollection[int,int]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts)
Top method improvements (percentages):
         -19 (-4.19 % of base) : 1157.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
         -21 (-3.08 % of base) : 43.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(uint,int,byref,byref):uint (FullOpts)
         -10 (-3.05 % of base) : 15475.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:<TryFoldAlternation>g__TrySplitConcatSubsumption|52_0(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],byref):ubyte (FullOpts)
          -6 (-2.99 % of base) : 13.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (FullOpts)
        -167 (-2.97 % of base) : 18298.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
          -9 (-2.74 % of base) : 21469.dasm - System.Collections.Concurrent.ConcurrentBag`1[int]:ToArray():int[]:this (FullOpts)
         -21 (-2.47 % of base) : 19035.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
          -8 (-2.42 % of base) : 1258.dasm - System.Collections.Frozen.KeyAnalyzer:CreateAnalysisResults(System.ReadOnlySpan`1[System.String],ubyte,int,int,int,int,ubyte,System.Collections.Frozen.KeyAnalyzer+GetSpan):System.Collections.Frozen.KeyAnalyzer+AnalysisResults (FullOpts)
          -6 (-2.28 % of base) : 602.dasm - System.Linq.EnumerableSorter`2[System.__Canon,int]:ComputeKeys(System.__Canon[],int):this (FullOpts)
         -20 (-2.24 % of base) : 16974.dasm - LUDecomp:Run():double:this (FullOpts)
         -20 (-1.91 % of base) : 12515.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (FullOpts)
          -8 (-1.83 % of base) : 7447.dasm - Jil.Common.ExtensionMethods:GetMethod(System.Type,System.String,int,System.Type[]):System.Reflection.MethodInfo (FullOpts)
          -5 (-1.80 % of base) : 2132.dasm - Microsoft.Extensions.Logging.LogValuesFormatter:FindBraceIndex(System.String,ushort,int,int):int (FullOpts)
          -5 (-1.79 % of base) : 23953.dasm - NumericSortJagged:LoadNumArrayWithRand(int[][],int,int) (FullOpts)
          -8 (-1.78 % of base) : 6708.dasm - System.Collections.Frozen.KeysAndValuesFrozenDictionary`2[System.Collections.NotKnownComparable,System.Collections.NotKnownComparable]:.ctor(System.Collections.Generic.Dictionary`2[System.Collections.NotKnownComparable,System.Collections.NotKnownComparable],ubyte):this (FullOpts)
          -5 (-1.73 % of base) : 20689.dasm - Benchstone.BenchF.LLoops:AllocArray[double](int,int,int):double[][][] (FullOpts)
         -22 (-1.67 % of base) : 2906.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
          -2 (-1.67 % of base) : 2125.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (FullOpts)
          -2 (-1.67 % of base) : 8470.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (FullOpts)
         -14 (-1.60 % of base) : 14169.dasm - System.IO.FileSystem:CreateDirectory(System.String,ubyte[]) (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: 45004324 (overridden on cmd)
Total bytes of diff: 45004362 (overridden on cmd)
Total bytes of delta: 38 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
          70 : 58960.dasm (2.06 % of base)
          67 : 11645.dasm (4.37 % of base)
          53 : 15611.dasm (7.37 % of base)
          37 : 73675.dasm (3.35 % of base)
          33 : 326.dasm (2.94 % of base)
          31 : 72781.dasm (1.15 % of base)
          30 : 81341.dasm (1.11 % of base)
          28 : 23248.dasm (4.64 % of base)
          24 : 5844.dasm (0.77 % of base)
          21 : 104908.dasm (9.63 % of base)
          21 : 20828.dasm (0.42 % of base)
          20 : 100457.dasm (1.83 % of base)
          17 : 14087.dasm (2.12 % of base)
          17 : 83462.dasm (0.39 % of base)
          17 : 93359.dasm (2.10 % of base)
          16 : 20219.dasm (1.91 % of base)
          16 : 62620.dasm (5.88 % of base)
          16 : 7316.dasm (8.99 % of base)
          15 : 70254.dasm (0.23 % of base)
          15 : 9867.dasm (9.32 % of base)
Top file improvements (bytes):
         -48 : 25052.dasm (-0.51 % of base)
         -29 : 73734.dasm (-3.30 % of base)
         -22 : 5901.dasm (-1.67 % of base)
         -21 : 93.dasm (-3.08 % of base)
         -21 : 32610.dasm (-2.83 % of base)
         -20 : 66150.dasm (-2.24 % of base)
         -20 : 79265.dasm (-0.51 % of base)
         -20 : 38969.dasm (-1.61 % of base)
         -19 : 2606.dasm (-4.19 % of base)
         -15 : 94410.dasm (-1.59 % of base)
         -15 : 10595.dasm (-8.52 % of base)
         -15 : 113153.dasm (-6.55 % of base)
         -15 : 113635.dasm (-0.14 % of base)
         -15 : 99765.dasm (-0.14 % of base)
         -14 : 44821.dasm (-1.60 % of base)
         -13 : 53539.dasm (-0.93 % of base)
         -12 : 109108.dasm (-1.04 % of base)
         -12 : 4104.dasm (-1.36 % of base)
         -12 : 112253.dasm (-6.45 % of base)
         -12 : 70718.dasm (-0.78 % of base)
82 total files with Code Size differences (43 improved, 39 regressed), 20 unchanged.
Top method regressions (bytes):
          70 (2.06 % of base) : 58960.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier0-FullOpts)
          67 (4.37 % of base) : 11645.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (Tier0-FullOpts)
          53 (7.37 % of base) : 15611.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (Tier0-FullOpts)
          37 (3.35 % of base) : 73675.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper:CheckConstraints(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte (Tier0-FullOpts)
          33 (2.94 % of base) : 326.dasm - System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int (Tier0-FullOpts)
          31 (1.15 % of base) : 72781.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.TupleTypeDecoder:DecodeType(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this (Tier1)
          30 (1.11 % of base) : 81341.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderCollectionsOfPrimitives:Read2_CollectionsOfPrimitives(ubyte,ubyte):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this (Tier0-FullOpts)
          28 (4.64 % of base) : 23248.dasm - System.Reflection.TypeNameParser:Parse():System.Type:this (Tier1)
          24 (0.77 % of base) : 5844.dasm - System.Text.RegularExpressions.RegexNode:CanBeMadeAtomic(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte,ubyte):ubyte (Tier0-FullOpts)
          21 (9.63 % of base) : 104908.dasm - Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (Tier0-FullOpts)
          21 (0.42 % of base) : 20828.dasm - ProtoBuf.Meta.MetaType:ApplyDefaultBehaviourImpl(int):this (Tier0-FullOpts)
          20 (1.83 % of base) : 100457.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle+OverlappedValueTaskSource:IOCallback(uint,uint,uint) (Tier1)
          17 (0.39 % of base) : 83462.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseLocalDeclaration(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SeparatedSyntaxListBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.VariableDeclaratorSyntax],ubyte,Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax],Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken],byref,byref):this (Tier1)
          17 (2.10 % of base) : 93359.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle+OverlappedValueTaskSource:Complete(uint,uint):this (Tier1)
          17 (2.12 % of base) : 14087.dasm - System.Net.MultiMemory:CopyFrom(System.ReadOnlySpan`1[ubyte]):this (Tier0-FullOpts)
          16 (5.88 % of base) : 62620.dasm - Benchstone.BenchF.InProd:Inner(double[][],double[][],double[][]) (Tier0-FullOpts)
          16 (1.91 % of base) : 20219.dasm - System.Number:TryParseBinaryIntegerHexOrBinaryNumberStyle[ushort,ubyte,System.Number+HexParser`1[ubyte]](System.ReadOnlySpan`1[ushort],int,byref):int (Tier0-FullOpts)
          16 (8.99 % of base) : 7316.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
          15 (0.23 % of base) : 70254.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (Tier0-FullOpts)
          15 (9.32 % of base) : 9867.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,uint,System.Object) (Tier1)
Top method improvements (bytes):
         -48 (-0.51 % of base) : 25052.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         -29 (-3.30 % of base) : 73734.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (Tier0-FullOpts)
         -22 (-1.67 % of base) : 5901.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier0-FullOpts)
         -21 (-3.08 % of base) : 93.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(uint,int,byref,byref):uint (Tier0-FullOpts)
         -21 (-2.83 % of base) : 32610.dasm - System.Xml.Serialization.TypeScope:ShouldBeReplaced(System.Reflection.MemberInfo,System.Type,byref):ubyte (Tier0-FullOpts)
         -20 (-2.24 % of base) : 66150.dasm - LUDecomp:Run():double:this (Tier0-FullOpts)
         -20 (-0.51 % of base) : 79265.dasm - Microsoft.Cci.MetadataVisitor:Visit(Microsoft.Cci.ICustomAttribute):this (Tier1)
         -20 (-1.61 % of base) : 38969.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (Tier0-FullOpts)
         -19 (-4.19 % of base) : 2606.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (Tier0-FullOpts)
         -15 (-0.14 % of base) : 113635.dasm - Jil.Deserialize.Methods:_ReadISO8601DateThunkReader(byref,ushort[]):System.DateTime (Tier0-FullOpts)
         -15 (-0.14 % of base) : 99765.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,ushort[]):System.DateTimeOffset (Tier0-FullOpts)
         -15 (-6.55 % of base) : 113153.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
         -15 (-8.52 % of base) : 10595.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(uint,System.Object):System.Object (Tier1)
         -15 (-1.59 % of base) : 94410.dasm - System.Text.RegularExpressions.Regex:ScanInternal(int,ubyte,System.String,int,System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort],ubyte):System.Text.RegularExpressions.Match (Tier1)
         -14 (-1.60 % of base) : 44821.dasm - System.IO.FileSystem:CreateDirectory(System.String,ubyte[]) (Tier0-FullOpts)
         -13 (-0.93 % of base) : 53539.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier0-FullOpts)
         -12 (-1.36 % of base) : 4104.dasm - BenchmarksGame.KNucleotide_9:writeFrequencies(System.Collections.Generic.Dictionary`2[long,BenchmarksGame.Wrapper],int,int[],byref):System.String (Tier0-FullOpts)
         -12 (-0.78 % of base) : 70718.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:BuildReferencedAssembliesAndModulesMaps(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.MetadataReference],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]],int,int,System.Collections.Generic.IReadOnlyDictionary`2[System.__Canon,System.__Canon],ubyte,byref,byref,byref,byref) (Tier0-FullOpts)
         -12 (-1.04 % of base) : 109108.dasm - System.MulticastDelegate:CombineImpl(System.Delegate):System.Delegate:this (Tier0-FullOpts)
         -12 (-6.45 % of base) : 112253.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
Top method regressions (percentages):
          21 (9.63 % of base) : 104908.dasm - Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (Tier0-FullOpts)
          15 (9.32 % of base) : 9867.dasm - System.Runtime.CompilerServices.CastHelpers:StelemRef_Helper(byref,uint,System.Object) (Tier1)
          16 (8.99 % of base) : 7316.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
          53 (7.37 % of base) : 15611.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (Tier0-FullOpts)
          16 (5.88 % of base) : 62620.dasm - Benchstone.BenchF.InProd:Inner(double[][],double[][],double[][]) (Tier0-FullOpts)
           8 (4.94 % of base) : 102120.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
           8 (4.94 % of base) : 48383.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
           8 (4.94 % of base) : 51210.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
           8 (4.94 % of base) : 65440.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
           8 (4.94 % of base) : 66664.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
           8 (4.94 % of base) : 115146.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
           8 (4.94 % of base) : 47915.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
           8 (4.94 % of base) : 53624.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
           8 (4.94 % of base) : 66239.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
           8 (4.94 % of base) : 7815.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
           8 (4.94 % of base) : 41943.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
           8 (4.94 % of base) : 91536.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
           8 (4.94 % of base) : 42831.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
           8 (4.94 % of base) : 44775.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
           8 (4.94 % of base) : 61591.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
Top method improvements (percentages):
         -15 (-8.52 % of base) : 10595.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(uint,System.Object):System.Object (Tier1)
         -15 (-6.55 % of base) : 113153.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
         -12 (-6.45 % of base) : 112253.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
          -9 (-4.84 % of base) : 55367.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
         -10 (-4.78 % of base) : 46883.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(uint,System.Object):System.Object (Tier1)
         -10 (-4.78 % of base) : 55831.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(uint,System.Object):System.Object (Tier1)
         -10 (-4.59 % of base) : 67545.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(uint,System.Object):System.Object (Tier1)
         -10 (-4.59 % of base) : 116159.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstanceOfAny(uint,System.Object):System.Object (Tier1)
          -8 (-4.40 % of base) : 56107.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
          -8 (-4.40 % of base) : 66126.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
          -8 (-4.40 % of base) : 80710.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
          -8 (-4.40 % of base) : 108113.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
          -8 (-4.40 % of base) : 109420.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
          -8 (-4.40 % of base) : 31560.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
          -8 (-4.40 % of base) : 61210.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
         -19 (-4.19 % of base) : 2606.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (Tier0-FullOpts)
          -8 (-4.04 % of base) : 56258.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
          -8 (-3.86 % of base) : 24043.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
          -8 (-3.86 % of base) : 46774.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
          -8 (-3.86 % of base) : 59277.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
  
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: 9595642 (overridden on cmd)
Total bytes of diff: 9595510 (overridden on cmd)
Total bytes of delta: -132 (-0.00 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
          70 : 31512.dasm (2.06 % of base)
          67 : 9222.dasm (4.37 % of base)
          50 : 34472.dasm (0.78 % of base)
          35 : 16128.dasm (5.10 % of base)
          31 : 384.dasm (2.80 % of base)
          30 : 33546.dasm (1.12 % of base)
          24 : 2516.dasm (0.77 % of base)
          22 : 28936.dasm (0.78 % of base)
          21 : 46781.dasm (9.63 % of base)
          16 : 32144.dasm (5.88 % of base)
          16 : 15748.dasm (1.93 % of base)
          15 : 32733.dasm (0.56 % of base)
          14 : 18801.dasm (1.19 % of base)
          12 : 12807.dasm (0.92 % of base)
          12 : 661.dasm (1.93 % of base)
          11 : 32731.dasm (1.03 % of base)
          11 : 4054.dasm (0.22 % of base)
           9 : 38306.dasm (2.37 % of base)
           9 : 16216.dasm (1.14 % of base)
           9 : 45569.dasm (2.52 % of base)
Top file improvements (bytes):
        -167 : 35615.dasm (-2.97 % of base)
         -48 : 19800.dasm (-0.51 % of base)
         -22 : 2601.dasm (-1.67 % of base)
         -21 : 37400.dasm (-2.47 % of base)
         -21 : 101.dasm (-3.08 % of base)
         -20 : 32730.dasm (-2.24 % of base)
         -20 : 24777.dasm (-1.91 % of base)
         -19 : 8387.dasm (-4.19 % of base)
         -15 : 45413.dasm (-0.79 % of base)
         -14 : 27543.dasm (-1.60 % of base)
         -13 : 29119.dasm (-0.93 % of base)
         -12 : 17883.dasm (-1.36 % of base)
         -12 : 47727.dasm (-1.04 % of base)
         -12 : 39730.dasm (-1.06 % of base)
         -11 : 13663.dasm (-1.16 % of base)
         -10 : 30099.dasm (-3.05 % of base)
         -10 : 13486.dasm (-0.11 % of base)
          -8 : 16483.dasm (-1.83 % of base)
          -8 : 8398.dasm (-2.42 % of base)
          -8 : 11799.dasm (-1.78 % of base)
64 total files with Code Size differences (32 improved, 32 regressed), 20 unchanged.
Top method regressions (bytes):
          70 (2.06 % of base) : 31512.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier0-FullOpts)
          67 (4.37 % of base) : 9222.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (Tier0-FullOpts)
          50 (0.78 % of base) : 34472.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (Tier0-FullOpts)
          35 (5.10 % of base) : 16128.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (Tier0-FullOpts)
          31 (2.80 % of base) : 384.dasm - System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int (Tier0-FullOpts)
          30 (1.12 % of base) : 33546.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderCollectionsOfPrimitives:Read2_CollectionsOfPrimitives(ubyte,ubyte):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this (Tier0-FullOpts)
          24 (0.77 % of base) : 2516.dasm - System.Text.RegularExpressions.RegexNode:CanBeMadeAtomic(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte,ubyte):ubyte (Tier0-FullOpts)
          22 (0.78 % of base) : 28936.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          21 (9.63 % of base) : 46781.dasm - Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (Tier0-FullOpts)
          16 (5.88 % of base) : 32144.dasm - Benchstone.BenchF.InProd:Inner(double[][],double[][],double[][]) (Tier0-FullOpts)
          16 (1.93 % of base) : 15748.dasm - System.Number:TryParseBinaryIntegerHexOrBinaryNumberStyle[ushort,ubyte,System.Number+HexParser`1[ubyte]](System.ReadOnlySpan`1[ushort],int,byref):int (Tier0-FullOpts)
          15 (0.56 % of base) : 32733.dasm - LUDecomp:ludcmp(double[][],int,int[],byref):int (Tier0-FullOpts)
          14 (1.19 % of base) : 18801.dasm - Newtonsoft.Json.JsonTextReader:ReadStringValue(int):System.Object:this (Tier0-FullOpts)
          12 (1.93 % of base) : 661.dasm - System.Reflection.TypeNameParser:ParseNamedOrConstructedGenericTypeName():System.Reflection.TypeNameParser+TypeName:this (Tier0-FullOpts)
          12 (0.92 % of base) : 12807.dasm - System.Xml.XmlBaseReader:ProcessAttributes(System.Xml.XmlBaseReader+XmlAttributeNode[],int):this (Tier0-FullOpts)
          11 (1.03 % of base) : 32731.dasm - LUDecomp:build_problem(double[][],int,double[]) (Tier0-FullOpts)
          11 (0.22 % of base) : 4054.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier0-FullOpts)
           9 (2.37 % of base) : 38306.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitStatementSubList(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],int):this (Tier0-FullOpts)
           9 (1.14 % of base) : 16216.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:TryRemoveInternal(System.__Canon,byref,ubyte,System.__Canon):ubyte:this (Tier0-FullOpts)
           9 (2.55 % of base) : 9153.dasm - System.Collections.Generic.GenericEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (Tier0-FullOpts)
Top method improvements (bytes):
        -167 (-2.97 % of base) : 35615.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier0-FullOpts)
         -48 (-0.51 % of base) : 19800.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0-FullOpts)
         -22 (-1.67 % of base) : 2601.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier0-FullOpts)
         -21 (-2.47 % of base) : 37400.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (Tier0-FullOpts)
         -21 (-3.08 % of base) : 101.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(uint,int,byref,byref):uint (Tier0-FullOpts)
         -20 (-2.24 % of base) : 32730.dasm - LUDecomp:Run():double:this (Tier0-FullOpts)
         -20 (-1.91 % of base) : 24777.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (Tier0-FullOpts)
         -19 (-4.19 % of base) : 8387.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (Tier0-FullOpts)
         -15 (-0.79 % of base) : 45413.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Tier0-FullOpts)
         -14 (-1.60 % of base) : 27543.dasm - System.IO.FileSystem:CreateDirectory(System.String,ubyte[]) (Tier0-FullOpts)
         -13 (-0.93 % of base) : 29119.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier0-FullOpts)
         -12 (-1.36 % of base) : 17883.dasm - BenchmarksGame.KNucleotide_9:writeFrequencies(System.Collections.Generic.Dictionary`2[long,BenchmarksGame.Wrapper],int,int[],byref):System.String (Tier0-FullOpts)
         -12 (-1.06 % of base) : 39730.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:GetForwardedTypes(System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol],Microsoft.CodeAnalysis.CommonAssemblyWellKnownAttributeData`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.Cci.ExportedType]) (Tier0-FullOpts)
         -12 (-1.04 % of base) : 47727.dasm - System.MulticastDelegate:CombineImpl(System.Delegate):System.Delegate:this (Tier0-FullOpts)
         -11 (-1.16 % of base) : 13663.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (Tier0-FullOpts)
         -10 (-0.11 % of base) : 13486.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0-FullOpts)
         -10 (-3.05 % of base) : 30099.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:<TryFoldAlternation>g__TrySplitConcatSubsumption|52_0(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],byref):ubyte (Tier0-FullOpts)
          -8 (-1.83 % of base) : 16483.dasm - Jil.Common.ExtensionMethods:GetMethod(System.Type,System.String,int,System.Type[]):System.Reflection.MethodInfo (Tier0-FullOpts)
          -8 (-2.42 % of base) : 8398.dasm - System.Collections.Frozen.KeyAnalyzer:CreateAnalysisResults(System.ReadOnlySpan`1[System.String],ubyte,int,int,int,int,ubyte,System.Collections.Frozen.KeyAnalyzer+GetSpan):System.Collections.Frozen.KeyAnalyzer+AnalysisResults (Tier0-FullOpts)
          -8 (-1.78 % of base) : 11799.dasm - System.Collections.Frozen.KeysAndValuesFrozenDictionary`2[System.Collections.NotKnownComparable,System.Collections.NotKnownComparable]:.ctor(System.Collections.Generic.Dictionary`2[System.Collections.NotKnownComparable,System.Collections.NotKnownComparable],ubyte):this (Tier0-FullOpts)
Top method regressions (percentages):
          21 (9.63 % of base) : 46781.dasm - Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (Tier0-FullOpts)
          16 (5.88 % of base) : 32144.dasm - Benchstone.BenchF.InProd:Inner(double[][],double[][],double[][]) (Tier0-FullOpts)
          35 (5.10 % of base) : 16128.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (Tier0-FullOpts)
          67 (4.37 % of base) : 9222.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (Tier0-FullOpts)
          31 (2.80 % of base) : 384.dasm - System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int (Tier0-FullOpts)
           9 (2.55 % of base) : 9153.dasm - System.Collections.Generic.GenericEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (Tier0-FullOpts)
           9 (2.52 % of base) : 45569.dasm - System.Collections.Generic.GenericEqualityComparer`1[System.__Canon]:LastIndexOf(System.__Canon[],System.__Canon,int,int):int:this (Tier0-FullOpts)
           9 (2.37 % of base) : 38306.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitStatementSubList(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],int):this (Tier0-FullOpts)
           2 (2.17 % of base) : 26591.dasm - System.Xml.XmlReader:MoveToContent():int:this (Tier0-FullOpts)
          70 (2.06 % of base) : 31512.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier0-FullOpts)
          12 (1.93 % of base) : 661.dasm - System.Reflection.TypeNameParser:ParseNamedOrConstructedGenericTypeName():System.Reflection.TypeNameParser+TypeName:this (Tier0-FullOpts)
          16 (1.93 % of base) : 15748.dasm - System.Number:TryParseBinaryIntegerHexOrBinaryNumberStyle[ushort,ubyte,System.Number+HexParser`1[ubyte]](System.ReadOnlySpan`1[ushort],int,byref):int (Tier0-FullOpts)
           8 (1.84 % of base) : 16840.dasm - Sigil.Emit`1[System.__Canon]:InjectTailCall():this (Tier0-FullOpts)
           8 (1.79 % of base) : 13662.dasm - System.Text.Unicode.Utf8:ToUtf16(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte,ubyte):int (Tier0-FullOpts)
           6 (1.64 % of base) : 48316.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryFindNextPossibleStartingPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
           8 (1.48 % of base) : 26933.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryFindNextPossibleStartingPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
           6 (1.41 % of base) : 46542.dasm - System.Globalization.DateTimeFormatInfoScanner:AddDateWords(System.String,int,System.String):int:this (Tier0-FullOpts)
           5 (1.30 % of base) : 26085.dasm - BenchmarksGame.SpectralNorm_1:MultiplyAtv(int,double[],double[]):this (Tier0-FullOpts)
           5 (1.30 % of base) : 26084.dasm - BenchmarksGame.SpectralNorm_1:MultiplyAv(int,double[],double[]):this (Tier0-FullOpts)
           6 (1.22 % of base) : 46160.dasm - System.Collections.Generic.Dictionary`2+ValueCollection[int,int]:System.Collections.ICollection.CopyTo(System.Array,int):this (Tier0-FullOpts)
Top method improvements (percentages):
         -19 (-4.19 % of base) : 8387.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (Tier0-FullOpts)
         -21 (-3.08 % of base) : 101.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(uint,int,byref,byref):uint (Tier0-FullOpts)
         -10 (-3.05 % of base) : 30099.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong]:<TryFoldAlternation>g__TrySplitConcatSubsumption|52_0(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ulong],byref):ubyte (Tier0-FullOpts)
          -6 (-2.99 % of base) : 243.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (Tier1)
        -167 (-2.97 % of base) : 35615.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier0-FullOpts)
         -21 (-2.47 % of base) : 37400.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (Tier0-FullOpts)
          -8 (-2.42 % of base) : 8398.dasm - System.Collections.Frozen.KeyAnalyzer:CreateAnalysisResults(System.ReadOnlySpan`1[System.String],ubyte,int,int,int,int,ubyte,System.Collections.Frozen.KeyAnalyzer+GetSpan):System.Collections.Frozen.KeyAnalyzer+AnalysisResults (Tier0-FullOpts)
          -6 (-2.28 % of base) : 1488.dasm - System.Linq.EnumerableSorter`2[System.__Canon,int]:ComputeKeys(System.__Canon[],int):this (Tier0-FullOpts)
         -20 (-2.24 % of base) : 32730.dasm - LUDecomp:Run():double:this (Tier0-FullOpts)
         -20 (-1.91 % of base) : 24777.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (Tier0-FullOpts)
          -8 (-1.83 % of base) : 16483.dasm - Jil.Common.ExtensionMethods:GetMethod(System.Type,System.String,int,System.Type[]):System.Reflection.MethodInfo (Tier0-FullOpts)
          -5 (-1.80 % of base) : 10021.dasm - Microsoft.Extensions.Logging.LogValuesFormatter:FindBraceIndex(System.String,ushort,int,int):int (Tier0-FullOpts)
          -5 (-1.79 % of base) : 48070.dasm - NumericSortJagged:LoadNumArrayWithRand(int[][],int,int) (Tier0-FullOpts)
          -8 (-1.78 % of base) : 11799.dasm - System.Collections.Frozen.KeysAndValuesFrozenDictionary`2[System.Collections.NotKnownComparable,System.Collections.NotKnownComparable]:.ctor(System.Collections.Generic.Dictionary`2[System.Collections.NotKnownComparable,System.Collections.NotKnownComparable],ubyte):this (Tier0-FullOpts)
          -5 (-1.73 % of base) : 33470.dasm - Benchstone.BenchF.LLoops:AllocArray[double](int,int,int):double[][][] (Tier0-FullOpts)
         -22 (-1.67 % of base) : 2601.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier0-FullOpts)
          -2 (-1.67 % of base) : 16175.dasm - System.Diagnostics.Tracing.EventSource+EventMetadata:<get_ParameterTypes>g__GetParameterTypes|22_0(System.Reflection.ParameterInfo[]):System.Type[] (Tier0-FullOpts)
          -2 (-1.67 % of base) : 20077.dasm - System.Diagnostics.Tracing.TraceLoggingEventTypes:MakeParamNameArray(System.Reflection.ParameterInfo[]):System.String[] (Tier0-FullOpts)
         -14 (-1.60 % of base) : 27543.dasm - System.IO.FileSystem:CreateDirectory(System.String,ubyte[]) (Tier0-FullOpts)
          -4 (-1.56 % of base) : 12889.dasm - System.Runtime.Serialization.CodeGenerator:BeginMethod(System.String,System.Type,ubyte):this (Tier0-FullOpts)
  
coreclr_tests.run.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 309466922 (overridden on cmd)
Total bytes of diff: 309448488 (overridden on cmd)
Total bytes of delta: -18434 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
         271 : 542350.dasm (11.43 % of base)
         187 : 385070.dasm (11.81 % of base)
         178 : 120368.dasm (11.65 % of base)
         112 : 229017.dasm (6.84 % of base)
         112 : 476857.dasm (6.84 % of base)
         109 : 120443.dasm (7.88 % of base)
         109 : 385108.dasm (7.60 % of base)
         109 : 385165.dasm (7.60 % of base)
         109 : 120398.dasm (7.88 % of base)
          79 : 440028.dasm (2.48 % of base)
          72 : 442290.dasm (1.12 % of base)
          72 : 185741.dasm (1.12 % of base)
          70 : 190605.dasm (2.06 % of base)
          70 : 452576.dasm (2.06 % of base)
          59 : 376624.dasm (9.50 % of base)
          59 : 370521.dasm (9.50 % of base)
          57 : 282850.dasm (2.39 % of base)
          57 : 546299.dasm (2.39 % of base)
          50 : 412467.dasm (2.28 % of base)
          50 : 404527.dasm (2.28 % of base)
Top file improvements (bytes):
        -116 : 444015.dasm (-2.08 % of base)
         -90 : 399040.dasm (-7.23 % of base)
         -90 : 402758.dasm (-7.23 % of base)
         -90 : 402776.dasm (-7.23 % of base)
         -90 : 402832.dasm (-7.23 % of base)
         -90 : 402851.dasm (-7.23 % of base)
         -90 : 399059.dasm (-7.23 % of base)
         -90 : 399116.dasm (-7.23 % of base)
         -90 : 399135.dasm (-7.23 % of base)
         -88 : 138762.dasm (-7.07 % of base)
         -88 : 142080.dasm (-7.07 % of base)
         -88 : 142155.dasm (-7.07 % of base)
         -88 : 138837.dasm (-7.07 % of base)
         -88 : 142095.dasm (-7.07 % of base)
         -88 : 138777.dasm (-7.07 % of base)
         -88 : 142140.dasm (-7.07 % of base)
         -88 : 138822.dasm (-7.07 % of base)
         -85 : 411979.dasm (-6.32 % of base)
         -85 : 411998.dasm (-6.32 % of base)
         -83 : 158583.dasm (-6.17 % of base)
67 total files with Code Size differences (34 improved, 33 regressed), 20 unchanged.
Top method regressions (bytes):
         271 (11.43 % of base) : 542350.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Instrumented Tier1)
         187 (11.81 % of base) : 385070.dasm - JIT.HardwareIntrinsics.X86._Avx512F.ImmBinaryOpTest__Shuffle4x128Double2:ValidateResult(double[],double[],double[],System.String):this (Tier0-FullOpts)
         178 (11.65 % of base) : 120368.dasm - JIT.HardwareIntrinsics.X86._Avx512F.ImmBinaryOpTest__Shuffle4x128Double2:ValidateResult(double[],double[],double[],System.String):this (FullOpts)
         112 (6.84 % of base) : 229017.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
         112 (6.84 % of base) : 476857.dasm - JitTest_array1_refany_il.Test:Main():int (Tier0-FullOpts)
         109 (7.88 % of base) : 120398.dasm - JIT.HardwareIntrinsics.X86._Avx512F.ImmBinaryOpTest__Shuffle4x128Int642:ValidateResult(long[],long[],long[],System.String):this (FullOpts)
         109 (7.60 % of base) : 385108.dasm - JIT.HardwareIntrinsics.X86._Avx512F.ImmBinaryOpTest__Shuffle4x128Int642:ValidateResult(long[],long[],long[],System.String):this (Tier0-FullOpts)
         109 (7.88 % of base) : 120443.dasm - JIT.HardwareIntrinsics.X86._Avx512F.ImmBinaryOpTest__Shuffle4x128UInt642:ValidateResult(ulong[],ulong[],ulong[],System.String):this (FullOpts)
         109 (7.60 % of base) : 385165.dasm - JIT.HardwareIntrinsics.X86._Avx512F.ImmBinaryOpTest__Shuffle4x128UInt642:ValidateResult(ulong[],ulong[],ulong[],System.String):this (Tier0-FullOpts)
          79 (2.48 % of base) : 440028.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (Tier1)
          72 (1.12 % of base) : 185741.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
          72 (1.12 % of base) : 442290.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (Tier0-FullOpts)
          70 (2.06 % of base) : 190605.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (FullOpts)
          70 (2.06 % of base) : 452576.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier0-FullOpts)
          59 (9.50 % of base) : 376624.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
          59 (9.50 % of base) : 370521.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
          57 (2.39 % of base) : 282850.dasm - TestConfigTester:RunTests() (FullOpts)
          57 (2.39 % of base) : 546299.dasm - TestConfigTester:RunTests() (Tier0-FullOpts)
          50 (2.28 % of base) : 412467.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier1)
          50 (2.28 % of base) : 404527.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (Tier1)
Top method improvements (bytes):
        -116 (-2.08 % of base) : 444015.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 399040.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendInt322:ValidateResult(int[],int[],int[],System.String):this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 399059.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendInt324:ValidateResult(int[],int[],int[],System.String):this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 399116.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendUInt322:ValidateResult(uint[],uint[],uint[],System.String):this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 399135.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendUInt324:ValidateResult(uint[],uint[],uint[],System.String):this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 402758.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendInt322:ValidateResult(int[],int[],int[],System.String):this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 402776.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendInt324:ValidateResult(int[],int[],int[],System.String):this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 402832.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendUInt322:ValidateResult(uint[],uint[],uint[],System.String):this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 402851.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendUInt324:ValidateResult(uint[],uint[],uint[],System.String):this (Tier0-FullOpts)
         -88 (-7.07 % of base) : 138762.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendInt322:ValidateResult(int[],int[],int[],System.String):this (FullOpts)
         -88 (-7.07 % of base) : 138777.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendInt324:ValidateResult(int[],int[],int[],System.String):this (FullOpts)
         -88 (-7.07 % of base) : 138822.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendUInt322:ValidateResult(uint[],uint[],uint[],System.String):this (FullOpts)
         -88 (-7.07 % of base) : 138837.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendUInt324:ValidateResult(uint[],uint[],uint[],System.String):this (FullOpts)
         -88 (-7.07 % of base) : 142080.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendInt322:ValidateResult(int[],int[],int[],System.String):this (FullOpts)
         -88 (-7.07 % of base) : 142095.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendInt324:ValidateResult(int[],int[],int[],System.String):this (FullOpts)
         -88 (-7.07 % of base) : 142140.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendUInt322:ValidateResult(uint[],uint[],uint[],System.String):this (FullOpts)
         -88 (-7.07 % of base) : 142155.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendUInt324:ValidateResult(uint[],uint[],uint[],System.String):this (FullOpts)
         -85 (-6.32 % of base) : 411979.dasm - JIT.HardwareIntrinsics.X86._Sse2.ImmBinaryOpTest__ShuffleDouble0:ValidateResult(double[],double[],double[],System.String):this (Tier0-FullOpts)
         -85 (-6.32 % of base) : 411998.dasm - JIT.HardwareIntrinsics.X86._Sse2.ImmBinaryOpTest__ShuffleDouble1:ValidateResult(double[],double[],double[],System.String):this (Tier0-FullOpts)
         -83 (-6.17 % of base) : 158583.dasm - JIT.HardwareIntrinsics.X86._Sse2.ImmBinaryOpTest__ShuffleDouble1:ValidateResult(double[],double[],double[],System.String):this (FullOpts)
Top method regressions (percentages):
         187 (11.81 % of base) : 385070.dasm - JIT.HardwareIntrinsics.X86._Avx512F.ImmBinaryOpTest__Shuffle4x128Double2:ValidateResult(double[],double[],double[],System.String):this (Tier0-FullOpts)
         178 (11.65 % of base) : 120368.dasm - JIT.HardwareIntrinsics.X86._Avx512F.ImmBinaryOpTest__Shuffle4x128Double2:ValidateResult(double[],double[],double[],System.String):this (FullOpts)
         271 (11.43 % of base) : 542350.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Instrumented Tier1)
          21 (9.63 % of base) : 189208.dasm - Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (FullOpts)
          21 (9.63 % of base) : 450497.dasm - Benchstone.BenchI.AddArray2:BenchInner2(int[][],byref) (Tier0-FullOpts)
          59 (9.50 % of base) : 376624.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
          59 (9.50 % of base) : 370521.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         109 (7.88 % of base) : 120398.dasm - JIT.HardwareIntrinsics.X86._Avx512F.ImmBinaryOpTest__Shuffle4x128Int642:ValidateResult(long[],long[],long[],System.String):this (FullOpts)
         109 (7.88 % of base) : 120443.dasm - JIT.HardwareIntrinsics.X86._Avx512F.ImmBinaryOpTest__Shuffle4x128UInt642:ValidateResult(ulong[],ulong[],ulong[],System.String):this (FullOpts)
          13 (7.88 % of base) : 426589.dasm - System.Runtime.CompilerServices.CastHelpers:IsInstance_Helper(uint,System.Object):System.Object (Tier1)
         109 (7.60 % of base) : 385108.dasm - JIT.HardwareIntrinsics.X86._Avx512F.ImmBinaryOpTest__Shuffle4x128Int642:ValidateResult(long[],long[],long[],System.String):this (Tier0-FullOpts)
         109 (7.60 % of base) : 385165.dasm - JIT.HardwareIntrinsics.X86._Avx512F.ImmBinaryOpTest__Shuffle4x128UInt642:ValidateResult(ulong[],ulong[],ulong[],System.String):this (Tier0-FullOpts)
         112 (6.84 % of base) : 229017.dasm - JitTest_array1_refany_il.Test:Main():int (FullOpts)
         112 (6.84 % of base) : 476857.dasm - JitTest_array1_refany_il.Test:Main():int (Tier0-FullOpts)
          17 (6.56 % of base) : 454840.dasm - System.IO.Stream:ReadAtLeastCore(System.Span`1[ubyte],int,ubyte):int:this (Tier1)
          26 (5.74 % of base) : 574273.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:InsertionSort(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]) (Tier1)
           8 (5.63 % of base) : 204432.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCast_Helper(uint,System.Object):System.Object (Tier1)
           8 (5.63 % of base) : 455968.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCast_Helper(uint,System.Object):System.Object (Tier1)
           8 (5.63 % of base) : 456036.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCast_Helper(uint,System.Object):System.Object (Tier1)
           8 (5.63 % of base) : 204156.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCast_Helper(uint,System.Object):System.Object (Tier1)
Top method improvements (percentages):
         -70 (-9.30 % of base) : 226698.dasm - JitTest_lcsbas_lcs_cs.LCS:findLCS(int[,,,],int[,,,],ushort[][],int[]) (FullOpts)
         -70 (-9.30 % of base) : 473353.dasm - JitTest_lcsbas_lcs_cs.LCS:findLCS(int[,,,],int[,,,],ushort[][],int[]) (Tier0-FullOpts)
         -69 (-8.58 % of base) : 226720.dasm - JitTest_lcs_lcs_cs.LCS:findLCS(int[,,,],int[,,,],ushort[][],int[]) (FullOpts)
         -69 (-8.58 % of base) : 473389.dasm - JitTest_lcs_lcs_cs.LCS:findLCS(int[,,,],int[,,,],ushort[][],int[]) (Tier0-FullOpts)
         -52 (-8.47 % of base) : 571688.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -90 (-7.23 % of base) : 399040.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendInt322:ValidateResult(int[],int[],int[],System.String):this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 399059.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendInt324:ValidateResult(int[],int[],int[],System.String):this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 399116.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendUInt322:ValidateResult(uint[],uint[],uint[],System.String):this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 399135.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendUInt324:ValidateResult(uint[],uint[],uint[],System.String):this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 402758.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendInt322:ValidateResult(int[],int[],int[],System.String):this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 402776.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendInt324:ValidateResult(int[],int[],int[],System.String):this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 402832.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendUInt322:ValidateResult(uint[],uint[],uint[],System.String):this (Tier0-FullOpts)
         -90 (-7.23 % of base) : 402851.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendUInt324:ValidateResult(uint[],uint[],uint[],System.String):this (Tier0-FullOpts)
         -88 (-7.07 % of base) : 138762.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendInt322:ValidateResult(int[],int[],int[],System.String):this (FullOpts)
         -88 (-7.07 % of base) : 138777.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendInt324:ValidateResult(int[],int[],int[],System.String):this (FullOpts)
         -88 (-7.07 % of base) : 138822.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendUInt322:ValidateResult(uint[],uint[],uint[],System.String):this (FullOpts)
         -88 (-7.07 % of base) : 138837.dasm - JIT.HardwareIntrinsics.X86._Avx2.ImmBinaryOpTest__BlendUInt324:ValidateResult(uint[],uint[],uint[],System.String):this (FullOpts)
         -88 (-7.07 % of base) : 142080.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendInt322:ValidateResult(int[],int[],int[],System.String):this (FullOpts)
         -88 (-7.07 % of base) : 142095.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendInt324:ValidateResult(int[],int[],int[],System.String):this (FullOpts)
         -88 (-7.07 % of base) : 142140.dasm - JIT.HardwareIntrinsics.X86._Avx2_Vector128.ImmBinaryOpTest__BlendUInt322:ValidateResult(uint[],uint[],uint[],System.String):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: 31678176 (overridden on cmd)
Total bytes of diff: 31677018 (overridden on cmd)
Total bytes of delta: -1158 (-0.00 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
         197 : 34382.dasm (2.41 % of base)
         149 : 126118.dasm (8.25 % of base)
         101 : 53715.dasm (6.14 % of base)
          88 : 215069.dasm (9.06 % of base)
          60 : 24394.dasm (10.29 % of base)
          49 : 224460.dasm (2.52 % of base)
          42 : 142831.dasm (7.81 % of base)
          39 : 68422.dasm (0.07 % of base)
          32 : 125212.dasm (4.93 % of base)
          29 : 66625.dasm (1.07 % of base)
          29 : 228315.dasm (1.06 % of base)
          29 : 177175.dasm (1.07 % of base)
          26 : 89406.dasm (4.34 % of base)
          25 : 86312.dasm (2.05 % of base)
          25 : 17771.dasm (0.74 % of base)
          25 : 120264.dasm (2.05 % of base)
          25 : 142408.dasm (2.21 % of base)
          21 : 120837.dasm (2.26 % of base)
          21 : 23596.dasm (2.00 % of base)
          19 : 124259.dasm (2.69 % of base)
Top file improvements (bytes):
        -314 : 233159.dasm (-1.41 % of base)
         -63 : 227852.dasm (-1.17 % of base)
         -56 : 61849.dasm (-2.53 % of base)
         -50 : 143619.dasm (-1.32 % of base)
         -46 : 233879.dasm (-7.15 % of base)
         -40 : 18680.dasm (-1.97 % of base)
         -29 : 234104.dasm (-1.90 % of base)
         -28 : 234175.dasm (-0.90 % of base)
         -26 : 191785.dasm (-3.06 % of base)
         -26 : 63186.dasm (-3.63 % of base)
         -24 : 123527.dasm (-0.97 % of base)
         -23 : 131058.dasm (-2.99 % of base)
         -23 : 227891.dasm (-1.05 % of base)
         -23 : 50553.dasm (-3.05 % of base)
         -22 : 143361.dasm (-3.49 % of base)
         -21 : 233930.dasm (-3.32 % of base)
         -21 : 225015.dasm (-2.28 % of base)
         -20 : 63036.dasm (-1.55 % of base)
         -19 : 195862.dasm (-4.70 % of base)
         -18 : 91457.dasm (-0.46 % of base)
78 total files with Code Size differences (44 improved, 34 regressed), 20 unchanged.
Top method regressions (bytes):
         197 (2.41 % of base) : 34382.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
         149 (8.25 % of base) : 126118.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAttributeData:GetTargetAttributeSignatureIndex(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.AttributeDescription):int:this (FullOpts)
         101 (6.14 % of base) : 53715.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:CheckMembers(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol,System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol]],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
          88 (9.06 % of base) : 215069.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this (FullOpts)
          60 (10.29 % of base) : 24394.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (FullOpts)
          49 (2.52 % of base) : 224460.dasm - System.Management.ManagementClassGenerator:GenerateSystemPropertiesClass():System.CodeDom.CodeTypeDeclaration:this (FullOpts)
          42 (7.81 % of base) : 142831.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:GenerateObjectCloneIfNeeded(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
          39 (0.07 % of base) : 68422.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (FullOpts)
          32 (4.93 % of base) : 125212.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor:SubstituteTypeParametersIfNeeded(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSubstitution,byref):ubyte:this (FullOpts)
          29 (1.07 % of base) : 66625.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (FullOpts)
          29 (1.06 % of base) : 228315.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (FullOpts)
          29 (1.07 % of base) : 177175.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (FullOpts)
          26 (4.34 % of base) : 89406.dasm - Diagnostics.Tracing.StackSources.FilterStackSource:FindGroupNameFromFrameName(System.String,byref):System.String:this (FullOpts)
          25 (2.05 % of base) : 86312.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+Builder[System.__Canon]:TryModifyEntries(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon],System.TimeSpan,System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.IncrementalGeneratorRunStep,int]],int):ubyte:this (FullOpts)
          25 (2.05 % of base) : 120264.dasm - Microsoft.CodeAnalysis.NodeStateTable`1+Builder[System.__Canon]:TryModifyEntries(System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon],System.TimeSpan,System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.IncrementalGeneratorRunStep,int]],int):ubyte:this (FullOpts)
          25 (2.21 % of base) : 142408.dasm - Microsoft.CodeAnalysis.VisualBasic.ExpressionLambdaRewriter:VisitObjectInitializer(Microsoft.CodeAnalysis.VisualBasic.BoundObjectInitializerExpression):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
          25 (0.74 % of base) : 17771.dasm - System.Threading.Lock:TryEnterSlow(int,System.Threading.Lock+ThreadId):System.Threading.Lock+ThreadId:this (FullOpts)
          21 (2.26 % of base) : 120837.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbolsWithNoPiaLocalTypes(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+AssemblyData[System.__Canon,System.__Canon]],int):ubyte:this (FullOpts)
          21 (2.00 % of base) : 23596.dasm - System.Diagnostics.Tracing.ManifestBuilder:TranslateToManifestConvention(System.String,System.String):System.String:this (FullOpts)
          19 (2.69 % of base) : 124259.dasm - Microsoft.CodeAnalysis.VisualBasic.MemberSemanticModel:GetCollectionRangeVariableSymbolInfoWorker(Microsoft.CodeAnalysis.VisualBasic.Syntax.CollectionRangeVariableSyntax,System.Threading.CancellationToken):Microsoft.CodeAnalysis.VisualBasic.CollectionRangeVariableSymbolInfo:this (FullOpts)
Top method improvements (bytes):
        -314 (-1.41 % of base) : 233159.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         -63 (-1.17 % of base) : 227852.dasm - System.Data.OleDb.OleDbCommandBuilder:DeriveParametersFromStoredProcedure(System.Data.OleDb.OleDbConnection,System.Data.OleDb.OleDbCommand):System.Data.OleDb.OleDbParameter[] (FullOpts)
         -56 (-2.53 % of base) : 61849.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[System.__Canon]:ReportDiagnostics[System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.String,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,ubyte,System.Nullable`1[ubyte],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
         -50 (-1.32 % of base) : 143619.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:MatchArguments(Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.Binder,byref,Microsoft.CodeAnalysis.SyntaxNode,ubyte,byref) (FullOpts)
         -46 (-7.15 % of base) : 233879.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -40 (-1.97 % of base) : 18680.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (FullOpts)
         -29 (-1.90 % of base) : 234104.dasm - Microsoft.VisualBasic.CompilerServices.LikeOperator:MatchAsterisk(System.String,int,int,Microsoft.VisualBasic.CompilerServices.LikeOperator+LigatureInfo[],System.String,Microsoft.VisualBasic.CompilerServices.LikeOperator+LigatureInfo[],Microsoft.VisualBasic.CompilerServices.LikeOperator+PatternGroup[],int,byref,byref,System.Globalization.CompareInfo,int) (FullOpts)
         -28 (-0.90 % of base) : 234175.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:GetMethodsByName(System.Type,System.Reflection.IReflect,System.String,int):System.Reflection.MethodBase[]:this (FullOpts)
         -26 (-3.63 % of base) : 63186.dasm - System.Data.UniqueConstraint:Clone(System.Data.DataSet,ubyte):System.Data.Constraint:this (FullOpts)
         -26 (-3.06 % of base) : 191785.dasm - System.Security.Cryptography.Xml.SymmetricKeyWrap:AESKeyWrapEncrypt(ubyte[],ubyte[]):ubyte[] (FullOpts)
         -24 (-0.97 % of base) : 123527.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:PassArguments(Microsoft.CodeAnalysis.SyntaxNode,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.ValueTuple`2[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.BitVector]:this (FullOpts)
         -23 (-3.05 % of base) : 50553.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:GetForwardedTypes(System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol],Microsoft.CodeAnalysis.CommonAssemblyWellKnownAttributeData`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.Cci.ExportedType]) (FullOpts)
         -23 (-2.99 % of base) : 131058.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEModuleBuilder:GetForwardedTypes(System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol],Microsoft.CodeAnalysis.CommonAssemblyWellKnownAttributeData`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.Cci.ExportedType]) (FullOpts)
         -23 (-1.05 % of base) : 227891.dasm - System.Data.OleDb.OleDbMetaDataFactory:.ctor(System.IO.Stream,System.String,System.String,System.Data.OleDb.SchemaSupport[]):this (FullOpts)
         -22 (-3.49 % of base) : 143361.dasm - Microsoft.CodeAnalysis.VisualBasic.AccessCheck:InheritsFromOrImplementsIgnoringConstruction(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BasesBeingResolved,byref):ubyte (FullOpts)
         -21 (-3.32 % of base) : 233930.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ReadNextLine(byref,Microsoft.VisualBasic.FileIO.TextFieldParser+ChangeBufferFunction):System.String:this (FullOpts)
         -21 (-2.28 % of base) : 225015.dasm - System.Diagnostics.EventLogInternal:InternalWriteEvent(uint,ushort,int,System.String[],ubyte[],System.String):this (FullOpts)
         -20 (-1.55 % of base) : 63036.dasm - System.Data.DataView:ToTable(System.String,ubyte,System.String[]):System.Data.DataTable:this (FullOpts)
         -19 (-4.70 % of base) : 195862.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
         -18 (-3.45 % of base) : 29576.dasm - Microsoft.CodeAnalysis.CSharp.AccessCheck:InheritsFromOrImplementsIgnoringConstruction(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte (FullOpts)
Top method regressions (percentages):
          60 (10.29 % of base) : 24394.dasm - System.Reflection.CustomAttributeEncodedArgument:ParseNamedArgs(byref,System.Reflection.CustomAttributeNamedParameter[],System.Reflection.RuntimeModule) (FullOpts)
          88 (9.06 % of base) : 215069.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this (FullOpts)
         149 (8.25 % of base) : 126118.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAttributeData:GetTargetAttributeSignatureIndex(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.AttributeDescription):int:this (FullOpts)
          42 (7.81 % of base) : 142831.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:GenerateObjectCloneIfNeeded(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.BoundExpression):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
          18 (7.32 % of base) : 16723.dasm - System.String:TrimWhiteSpaceHelper(int):System.String:this (FullOpts)
         101 (6.14 % of base) : 53715.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:CheckMembers(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol,System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol]],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
          32 (4.93 % of base) : 125212.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor:SubstituteTypeParametersIfNeeded(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSubstitution,byref):ubyte:this (FullOpts)
          26 (4.34 % of base) : 89406.dasm - Diagnostics.Tracing.StackSources.FilterStackSource:FindGroupNameFromFrameName(System.String,byref):System.String:this (FullOpts)
           2 (3.92 % of base) : 34631.dasm - Microsoft.CodeAnalysis.CSharp.ReadWriteWalker:GetRangeVariableUnderlyingParameter(Microsoft.CodeAnalysis.CSharp.BoundNode):Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol (FullOpts)
           7 (3.78 % of base) : 231739.dasm - System.Net.PathList+PathListComparer:System.Collections.IComparer.Compare(System.Object,System.Object):int:this (FullOpts)
          10 (3.73 % of base) : 190573.dasm - System.Text.InternalDecoderBestFitFallbackBuffer:TryBestFit(ubyte[]):ushort:this (FullOpts)
           8 (3.60 % of base) : 51969.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
          13 (3.32 % of base) : 164866.dasm - System.Xml.Xsl.Xslt.XslAstRewriter:CheckNodeCost(System.Xml.Xsl.Xslt.XslNode):int:this (FullOpts)
          13 (3.26 % of base) : 162677.dasm - System.Xml.XmlTextReaderImpl:ParseElementAsync():System.Threading.Tasks.Task:this (FullOpts)
           6 (3.00 % of base) : 21341.dasm - System.DefaultBinder:FindMostDerivedNewSlotMeth(System.Reflection.MethodBase[],int):System.Reflection.MethodBase (FullOpts)
           6 (3.00 % of base) : 993.dasm - System.DefaultBinder:FindMostDerivedNewSlotMeth(System.Reflection.MethodBase[],int):System.Reflection.MethodBase (FullOpts)
           2 (2.82 % of base) : 116511.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.ISymbol,ubyte):ubyte:this (FullOpts)
           2 (2.82 % of base) : 82466.dasm - Microsoft.CodeAnalysis.Emit.SymbolChanges:IsReplaced(Microsoft.CodeAnalysis.Symbols.ISymbolInternal,ubyte):ubyte:this (FullOpts)
           4 (2.80 % of base) : 183663.dasm - System.Numerics.BigInteger:System.Numerics.IBinaryInteger<System.Numerics.BigInteger>.GetShortestBitLength():int:this (FullOpts)
           7 (2.77 % of base) : 170286.dasm - System.Uri:GetCombinedString(System.Uri,System.String,ubyte,byref) (FullOpts)
Top method improvements (percentages):
         -46 (-7.15 % of base) : 233879.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:MethodsDifferOnlyByReturnType(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte:this (FullOpts)
         -17 (-5.04 % of base) : 127058.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:IsConflictingOperatorOverloading(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,int,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],int,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):ubyte:this (FullOpts)
         -19 (-4.70 % of base) : 195862.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
         -11 (-4.49 % of base) : 125209.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor:Equals(Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor,int):ubyte:this (FullOpts)
          -8 (-4.26 % of base) : 172710.dasm - Microsoft.CSharp.RuntimeBinder.BinderHelper:CompareArgInfos(Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo[],Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo[]):ubyte (FullOpts)
         -26 (-3.63 % of base) : 63186.dasm - System.Data.UniqueConstraint:Clone(System.Data.DataSet,ubyte):System.Data.Constraint:this (FullOpts)
         -22 (-3.49 % of base) : 143361.dasm - Microsoft.CodeAnalysis.VisualBasic.AccessCheck:InheritsFromOrImplementsIgnoringConstruction(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BasesBeingResolved,byref):ubyte (FullOpts)
         -11 (-3.47 % of base) : 30167.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:MakeOutputTypeInferences(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BoundTupleLiteral,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,byref):this (FullOpts)
         -18 (-3.45 % of base) : 29576.dasm - Microsoft.CodeAnalysis.CSharp.AccessCheck:InheritsFromOrImplementsIgnoringConstruction(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte (FullOpts)
          -8 (-3.42 % of base) : 69892.dasm - Microsoft.FSharp.Reflection.Impl:getInstancePropertyInfos(System.Type,System.String[],int):System.Reflection.PropertyInfo[] (FullOpts)
         -17 (-3.33 % of base) : 89600.dasm - Microsoft.Diagnostics.Utilities.PathUtil:PathRelativeTo(System.String,System.String):System.String (FullOpts)
         -21 (-3.32 % of base) : 233930.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ReadNextLine(byref,Microsoft.VisualBasic.FileIO.TextFieldParser+ChangeBufferFunction):System.String:this (FullOpts)
          -8 (-3.28 % of base) : 16699.dasm - System.RuntimeType+RuntimeTypeCache:GetDefaultMemberName():System.String:this (FullOpts)
         -11 (-3.14 % of base) : 161844.dasm - System.Xml.Xsl.Runtime.XmlQueryRuntime:ParseTagName(System.String,int,byref,byref,byref):this (FullOpts)
         -26 (-3.06 % of base) : 191785.dasm - System.Security.Cryptography.Xml.SymmetricKeyWrap:AESKeyWrapEncrypt(ubyte[],ubyte[]):ubyte[] (FullOpts)
         -23 (-3.05 % of base) : 50553.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:GetForwardedTypes(System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol],Microsoft.CodeAnalysis.CommonAssemblyWellKnownAttributeData`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.Cci.ExportedType]) (FullOpts)
          -8 (-3.05 % of base) : 197221.dasm - System.Collections.Frozen.KeyAnalyzer:CreateAnalysisResults(System.ReadOnlySpan`1[System.String],ubyte,int,int,int,int,ubyte,System.Collections.Frozen.KeyAnalyzer+GetSpan):System.Collections.Frozen.KeyAnalyzer+AnalysisResults (FullOpts)
         -23 (-2.99 % of base) : 131058.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEModuleBuilder:GetForwardedTypes(System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol],Microsoft.CodeAnalysis.CommonAssemblyWellKnownAttributeData`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.Cci.ExportedType]) (FullOpts)
          -8 (-2.92 % of base) : 124367.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeManager:CheckAndReportMissingSymbols(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeManager+AnonymousTypeOrDelegateTemplateSymbol],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):ubyte:this (FullOpts)
         -12 (-2.88 % of base) : 769.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[]):System.Reflection.PropertyInfo (FullOpts)
  
libraries.pmi.windows.x86.checked.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 49132156 (overridden on cmd)
Total bytes of diff: 49130706 (overridden on cmd)
Total bytes of delta: -1450 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
         120 : 100363.dasm (4.89 % of base)
         102 : 259833.dasm (8.61 % of base)
          78 : 199234.dasm (4.90 % of base)
          72 : 32087.dasm (4.56 % of base)
          60 : 255515.dasm (2.55 % of base)
          53 : 82632.dasm (4.21 % of base)
          52 : 58039.dasm (4.66 % of base)
          47 : 281821.dasm (1.70 % of base)
          42 : 290671.dasm (1.42 % of base)
          41 : 101453.dasm (5.53 % of base)
          38 : 30999.dasm (0.77 % of base)
          37 : 101584.dasm (2.42 % of base)
          35 : 78311.dasm (1.53 % of base)
          35 : 301774.dasm (2.58 % of base)
          34 : 113364.dasm (3.92 % of base)
          34 : 151416.dasm (3.93 % of base)
          34 : 177113.dasm (3.95 % of base)
          34 : 260256.dasm (4.36 % of base)
          32 : 78673.dasm (1.03 % of base)
          30 : 220048.dasm (3.94 % of base)
Top file improvements (bytes):
         -90 : 151415.dasm (-3.42 % of base)
         -90 : 113363.dasm (-3.42 % of base)
         -80 : 58830.dasm (-1.44 % of base)
         -72 : 60246.dasm (-3.38 % of base)
         -57 : 82998.dasm (-2.37 % of base)
         -54 : 66399.dasm (-2.11 % of base)
         -54 : 113365.dasm (-6.14 % of base)
         -54 : 151417.dasm (-6.14 % of base)
         -49 : 231360.dasm (-1.75 % of base)
         -49 : 215216.dasm (-1.75 % of base)
         -48 : 117.dasm (-0.51 % of base)
         -43 : 30235.dasm (-0.69 % of base)
         -39 : 44214.dasm (-3.60 % of base)
         -35 : 105829.dasm (-1.58 % of base)
         -34 : 49781.dasm (-5.55 % of base)
         -32 : 26138.dasm (-7.17 % of base)
         -30 : 60015.dasm (-3.48 % of base)
         -27 : 36994.dasm (-0.57 % of base)
         -26 : 178069.dasm (-0.74 % of base)
         -26 : 32533.dasm (-1.64 % of base)
77 total files with Code Size differences (43 improved, 34 regressed), 20 unchanged.
Top method regressions (bytes):
         120 (4.89 % of base) : 100363.dasm - Microsoft.CodeAnalysis.VisualBasic.ExpressionLambdaRewriter:VisitObjectInitializer(Microsoft.CodeAnalysis.VisualBasic.BoundObjectInitializerExpression):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
         102 (8.61 % of base) : 259833.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this (FullOpts)
          78 (4.90 % of base) : 199234.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (FullOpts)
          72 (4.56 % of base) : 32087.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:HasVariantConversionNoCycleCheck(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte:this (FullOpts)
          60 (2.55 % of base) : 255515.dasm - System.Management.ManagementClassGenerator:GenerateSystemPropertiesClass():System.CodeDom.CodeTypeDeclaration:this (FullOpts)
          53 (4.21 % of base) : 82632.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:DetermineDefaultPropertyName(System.Collections.Generic.Dictionary`2[System.String,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol]],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.String:this (FullOpts)
          52 (4.66 % of base) : 58039.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAttributeData:<GetTargetAttributeSignatureIndex>g__matches|28_0(ubyte[],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],byref,byref):ubyte:this (FullOpts)
          47 (1.70 % of base) : 281821.dasm - System.Text.ISO2022Encoding:GetBytesCP5022xJP(uint,int,uint,int,System.Text.ISO2022Encoding+ISO2022Encoder):int:this (FullOpts)
          42 (1.42 % of base) : 290671.dasm - System.CommandLine.Helpers:ConfigureInstructionSetSupport(System.String,int,ubyte,int,int,System.String,System.String,ILCompiler.Logger,ubyte):ILCompiler.InstructionSetSupport (FullOpts)
          41 (5.53 % of base) : 101453.dasm - Microsoft.CodeAnalysis.VisualBasic.AccessCheck:InheritsFromOrImplementsIgnoringConstruction(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BasesBeingResolved,byref):ubyte (FullOpts)
          38 (0.77 % of base) : 30999.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindCatchBlock(Microsoft.CodeAnalysis.CSharp.Syntax.CatchClauseSyntax,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundCatchBlock],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCatchBlock:this (FullOpts)
          37 (2.42 % of base) : 101584.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyImmediateVarianceCompatibility(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,int,byref):int (FullOpts)
          35 (1.53 % of base) : 78311.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindDelegateCreationExpression(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.ArgumentListSyntax,Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
          35 (2.58 % of base) : 301774.dasm - System.Buffers.SequenceReader`1[ubyte]:IsNextSlow(System.ReadOnlySpan`1[ubyte],ubyte):ubyte:this (FullOpts)
          34 (3.92 % of base) : 113364.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(Microsoft.CodeAnalysis.SyntaxTrivia,Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],byref):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
          34 (3.93 % of base) : 151416.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(Microsoft.CodeAnalysis.SyntaxTrivia,Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],byref):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
          34 (4.36 % of base) : 260256.dasm - System.Net.Mail.Message:EncodeHeaders(System.Net.Mime.HeaderCollection,ubyte):this (FullOpts)
          34 (3.95 % of base) : 177113.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:WriteEnumAndArrayTypes(byref,System.Xml.XmlQualifiedName,System.String):ubyte:this (FullOpts)
          32 (1.03 % of base) : 78673.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:VerifyNameShadowingInMethodBody(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          30 (3.94 % of base) : 220048.dasm - System.Collections.Concurrent.BlockingCollection`1[System.__Canon]:TryTakeFromAnyCoreSlow(System.__Canon[],byref,int,ubyte,System.Threading.CancellationToken):int (FullOpts)
Top method improvements (bytes):
         -90 (-3.42 % of base) : 151415.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetPreviousToken(Microsoft.CodeAnalysis.SyntaxTrivia,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -90 (-3.42 % of base) : 113363.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetPreviousToken(Microsoft.CodeAnalysis.SyntaxTrivia,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -80 (-1.44 % of base) : 58830.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         -72 (-3.38 % of base) : 60246.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:CheckMembers(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol,System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol]],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
         -57 (-2.37 % of base) : 82998.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol:GetMyGroupCollectionAttributeData(Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref,byref):Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData:this (FullOpts)
         -54 (-2.11 % of base) : 66399.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeManager+AnonymousTypeToStringMethodSymbol:GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.TypeCompilationState,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         -54 (-6.14 % of base) : 113365.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetPreviousToken(Microsoft.CodeAnalysis.SyntaxTrivia,Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],byref):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -54 (-6.14 % of base) : 151417.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetPreviousToken(Microsoft.CodeAnalysis.SyntaxTrivia,Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],byref):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -49 (-1.75 % of base) : 231360.dasm - System.Configuration.BaseConfigurationRecord:Init(System.Configuration.Internal.IInternalConfigRoot,System.Configuration.BaseConfigurationRecord,System.String,System.String):this (FullOpts)
         -49 (-1.75 % of base) : 215216.dasm - System.Configuration.BaseConfigurationRecord:Init(System.Configuration.Internal.IInternalConfigRoot,System.Configuration.BaseConfigurationRecord,System.String,System.String):this (FullOpts)
         -48 (-0.51 % of base) : 117.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -43 (-0.69 % of base) : 30235.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAnonymousObjectCreation(Microsoft.CodeAnalysis.CSharp.Syntax.AnonymousObjectCreationExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         -39 (-3.60 % of base) : 44214.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.DirectiveTriviaSyntax:GetNextDirective(System.Func`2[Microsoft.CodeAnalysis.CSharp.Syntax.DirectiveTriviaSyntax,ubyte]):Microsoft.CodeAnalysis.CSharp.Syntax.DirectiveTriviaSyntax:this (FullOpts)
         -35 (-1.58 % of base) : 105829.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+ReferenceManager:CreateAndSetSourceAssemblyFullBind(Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation):ubyte:this (FullOpts)
         -34 (-5.55 % of base) : 49781.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanUnicodeEscape(ubyte,byref,byref):ushort:this (FullOpts)
         -32 (-7.17 % of base) : 26138.dasm - Microsoft.FSharp.Primitives.Basics.Array:stableSortWithKeysAndComparer[ubyte,System.Nullable`1[int]](System.Collections.Generic.IComparer`1[ubyte],System.Collections.Generic.IComparer`1[ubyte],System.Nullable`1[int][],ubyte[]) (FullOpts)
         -30 (-3.48 % of base) : 60015.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
         -27 (-0.57 % of base) : 36994.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
         -26 (-1.64 % of base) : 32533.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:Fix(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],byref):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte] (FullOpts)
         -26 (-0.74 % of base) : 178069.dasm - System.Xml.Serialization.XmlSerializationReader:ReadArray(System.String,System.String):System.Array:this (FullOpts)
Top method regressions (percentages):
         102 (8.61 % of base) : 259833.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this (FullOpts)
          41 (5.53 % of base) : 101453.dasm - Microsoft.CodeAnalysis.VisualBasic.AccessCheck:InheritsFromOrImplementsIgnoringConstruction(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BasesBeingResolved,byref):ubyte (FullOpts)
          19 (5.29 % of base) : 283360.dasm - System.Text.Json.JsonSerializerOptions+CachingContext:DetermineNearestAncestor(System.Type,System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry):System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry:this (FullOpts)
          78 (4.90 % of base) : 199234.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (FullOpts)
         120 (4.89 % of base) : 100363.dasm - Microsoft.CodeAnalysis.VisualBasic.ExpressionLambdaRewriter:VisitObjectInitializer(Microsoft.CodeAnalysis.VisualBasic.BoundObjectInitializerExpression):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
          28 (4.82 % of base) : 49733.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:LexDisabledText(byref):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode:this (FullOpts)
          52 (4.66 % of base) : 58039.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAttributeData:<GetTargetAttributeSignatureIndex>g__matches|28_0(ubyte[],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],byref,byref):ubyte:this (FullOpts)
          72 (4.56 % of base) : 32087.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:HasVariantConversionNoCycleCheck(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte:this (FullOpts)
           7 (4.55 % of base) : 101716.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:HaveNarrowingOnlyFromObjectCandidates(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult]):ubyte (FullOpts)
          34 (4.36 % of base) : 260256.dasm - System.Net.Mail.Message:EncodeHeaders(System.Net.Mime.HeaderCollection,ubyte):this (FullOpts)
          53 (4.21 % of base) : 82632.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:DetermineDefaultPropertyName(System.Collections.Generic.Dictionary`2[System.String,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol]],Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.String:this (FullOpts)
           9 (4.15 % of base) : 261285.dasm - System.Net.PathList+PathListComparer:System.Collections.IComparer.Compare(System.Object,System.Object):int:this (FullOpts)
          34 (3.95 % of base) : 177113.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:WriteEnumAndArrayTypes(byref,System.Xml.XmlQualifiedName,System.String):ubyte:this (FullOpts)
          30 (3.94 % of base) : 220048.dasm - System.Collections.Concurrent.BlockingCollection`1[System.__Canon]:TryTakeFromAnyCoreSlow(System.__Canon[],byref,int,ubyte,System.Threading.CancellationToken):int (FullOpts)
          10 (3.94 % of base) : 281686.dasm - System.Text.InternalDecoderBestFitFallbackBuffer:TryBestFit(ubyte[]):ushort:this (FullOpts)
          34 (3.93 % of base) : 151416.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(Microsoft.CodeAnalysis.SyntaxTrivia,Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],byref):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
          34 (3.92 % of base) : 113364.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(Microsoft.CodeAnalysis.SyntaxTrivia,Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],byref):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
           8 (3.62 % of base) : 58209.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
          26 (3.31 % of base) : 78441.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:GetCommonExpressionTypeForErrorRecovery(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol],Microsoft.CodeAnalysis.VisualBasic.ConstantFieldsInProgress):Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol:this (FullOpts)
          29 (3.30 % of base) : 234299.dasm - System.Data.ProviderBase.DbMetaDataFactory:FindMetaDataCollectionRow(System.String):System.Data.DataRow:this (FullOpts)
Top method improvements (percentages):
         -12 (-7.32 % of base) : 174052.dasm - System.Xml.Xsl.XsltOld.OutputScopeManager:FindPrefix(System.String,byref):ubyte:this (FullOpts)
         -32 (-7.17 % of base) : 26138.dasm - Microsoft.FSharp.Primitives.Basics.Array:stableSortWithKeysAndComparer[ubyte,System.Nullable`1[int]](System.Collections.Generic.IComparer`1[ubyte],System.Collections.Generic.IComparer`1[ubyte],System.Nullable`1[int][],ubyte[]) (FullOpts)
         -20 (-7.12 % of base) : 280717.dasm - System.Speech.Internal.Synthesis.VoiceSynthesis:MatchVoice(System.Globalization.CultureInfo,int,int,int,ubyte,byref):System.Speech.Internal.Synthesis.TTSVoice:this (FullOpts)
         -14 (-6.83 % of base) : 213152.dasm - Microsoft.Build.Graph.ProjectGraph+ProjectGraphBuildRequest:GetHashCode():int:this (FullOpts)
         -54 (-6.14 % of base) : 151417.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetPreviousToken(Microsoft.CodeAnalysis.SyntaxTrivia,Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],byref):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -54 (-6.14 % of base) : 113365.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetPreviousToken(Microsoft.CodeAnalysis.SyntaxTrivia,Microsoft.CodeAnalysis.SyntaxTriviaList,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],byref):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
         -19 (-5.56 % of base) : 59910.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<TryCalculateSyntaxOffsetOfPositionInInitializer>g__findInitializer|106_0(System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]],int,Microsoft.CodeAnalysis.SyntaxTree,byref,byref):ubyte (FullOpts)
         -34 (-5.55 % of base) : 49781.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanUnicodeEscape(ubyte,byref,byref):ushort:this (FullOpts)
          -5 (-4.55 % of base) : 274649.dasm - System.Runtime.Serialization.ObjectHolderListEnumerator:MoveNext():ubyte:this (FullOpts)
         -19 (-4.38 % of base) : 225737.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
         -16 (-4.35 % of base) : 11617.dasm - System.Collections.Concurrent.ConcurrentQueue`1[System.Numerics.Vector`1[float]]:EnqueueSlow(System.Numerics.Vector`1[float]):this (FullOpts)
         -11 (-4.01 % of base) : 80503.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor:Equals(Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor,int):ubyte:this (FullOpts)
         -11 (-4.00 % of base) : 219341.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -11 (-4.00 % of base) : 269435.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -20 (-3.94 % of base) : 195321.dasm - Microsoft.VisualBasic.CompilerServices.VB6File:PutFixedLengthString(long,System.String,int):this (FullOpts)
          -2 (-3.70 % of base) : 35457.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
         -39 (-3.60 % of base) : 44214.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.DirectiveTriviaSyntax:GetNextDirective(System.Func`2[Microsoft.CodeAnalysis.CSharp.Syntax.DirectiveTriviaSyntax,ubyte]):Microsoft.CodeAnalysis.CSharp.Syntax.DirectiveTriviaSyntax:this (FullOpts)
         -14 (-3.50 % of base) : 179986.dasm - System.Security.Cryptography.CryptoConfig:AddAlgorithm(System.Type,System.String[]) (FullOpts)
         -30 (-3.48 % of base) : 60015.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
         -90 (-3.42 % of base) : 151415.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetPreviousToken(Microsoft.CodeAnalysis.SyntaxTrivia,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (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: 184699042 (overridden on cmd)
Total bytes of diff: 184697252 (overridden on cmd)
Total bytes of delta: -1790 (-0.00 % of base)
    diff is a regression.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
         273 : 9859.dasm (11.69 % of base)
         270 : 416830.dasm (2.33 % of base)
         228 : 570365.dasm (2.40 % of base)
         219 : 499386.dasm (1.93 % of base)
         211 : 440803.dasm (1.90 % of base)
         158 : 440143.dasm (4.92 % of base)
         154 : 52708.dasm (3.48 % of base)
         148 : 115717.dasm (1.36 % of base)
         136 : 306553.dasm (1.43 % of base)
         107 : 228618.dasm (1.01 % of base)
         106 : 144515.dasm (0.99 % of base)
         105 : 501486.dasm (8.24 % of base)
         103 : 153605.dasm (5.67 % of base)
         102 : 330197.dasm (8.81 % of base)
          95 : 321709.dasm (8.41 % of base)
          94 : 374175.dasm (1.74 % of base)
          90 : 79349.dasm (1.20 % of base)
          84 : 356574.dasm (0.78 % of base)
          82 : 572821.dasm (1.31 % of base)
          82 : 575247.dasm (3.26 % of base)
Top file improvements (bytes):
        -251 : 423962.dasm (-2.42 % of base)
        -213 : 296323.dasm (-1.79 % of base)
        -203 : 152151.dasm (-2.24 % of base)
        -191 : 614206.dasm (-1.76 % of base)
        -173 : 572663.dasm (-6.42 % of base)
        -138 : 343038.dasm (-1.24 % of base)
        -135 : 115828.dasm (-7.18 % of base)
        -135 : 440367.dasm (-2.50 % of base)
        -131 : 242241.dasm (-7.10 % of base)
        -111 : 265866.dasm (-6.90 % of base)
        -110 : 79478.dasm (-2.87 % of base)
        -107 : 59224.dasm (-14.68 % of base)
        -102 : 235937.dasm (-0.87 % of base)
        -102 : 267233.dasm (-0.87 % of base)
        -102 : 116969.dasm (-0.87 % of base)
        -102 : 282521.dasm (-0.87 % of base)
        -102 : 346769.dasm (-0.87 % of base)
        -102 : 413389.dasm (-0.87 % of base)
        -102 : 498393.dasm (-0.87 % of base)
        -102 : 134973.dasm (-5.23 % of base)
89 total files with Code Size differences (53 improved, 36 regressed), 20 unchanged.
Top method regressions (bytes):
         273 (11.69 % of base) : 9859.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Instrumented Tier1)
         270 (2.33 % of base) : 416830.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         228 (2.40 % of base) : 570365.dasm - Microsoft.CodeAnalysis.CSharp.DiagnosticsPass:VisitCall(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.CSharp.BoundNode):this (Tier1)
         219 (1.93 % of base) : 499386.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         211 (1.90 % of base) : 440803.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         158 (4.92 % of base) : 440143.dasm - (dynamicClass):ReadWithNullablesFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         154 (3.48 % of base) : 52708.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindIdentifier(Microsoft.CodeAnalysis.CSharp.Syntax.SimpleNameSyntax,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
         148 (1.36 % of base) : 115717.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         136 (1.43 % of base) : 306553.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         107 (1.01 % of base) : 228618.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         106 (0.99 % of base) : 144515.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         105 (8.24 % of base) : 501486.dasm - System.Text.Encodings.Web.Tests.JavaScriptEncoderTests:InvalidFindFirstCharacterToEncode(ushort,System.Text.Encodings.Web.JavaScriptEncoder):this (Tier0-FullOpts)
         103 (5.67 % of base) : 153605.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:EnterParameter(Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol):this (Tier1)
         102 (8.81 % of base) : 330197.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this (Tier0-FullOpts)
          95 (8.41 % of base) : 321709.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this (Tier0-FullOpts)
          94 (1.74 % of base) : 374175.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderTypeWithGetSetArrayMembers:Read3_TypeWithGetSetArrayMembers(ubyte,ubyte):SerializationTypes.TypeWithGetSetArrayMembers:this (Tier0-FullOpts)
          90 (1.20 % of base) : 79349.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindGenericSimpleNamespaceOrTypeOrAliasSymbol(Microsoft.CodeAnalysis.CSharp.Syntax.GenericNameSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
          84 (0.78 % of base) : 356574.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          82 (3.26 % of base) : 575247.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindLabel(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
          82 (1.31 % of base) : 572821.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:CanInferTypeArgumentsFromFirstArgument(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],byref,byref):ubyte (Tier1)
Top method improvements (bytes):
        -251 (-2.42 % of base) : 423962.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -213 (-1.79 % of base) : 296323.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -203 (-2.24 % of base) : 152151.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:EarlyDecodeWellKnownAttribute(byref):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData,Microsoft.CodeAnalysis.CSharp.BoundAttribute]:this (Tier1)
        -191 (-1.76 % of base) : 614206.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -173 (-6.42 % of base) : 572663.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:CompileMethodBodies(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,ubyte,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Predicate`1[Microsoft.CodeAnalysis.CSharp.Symbol],System.Threading.CancellationToken) (Tier1)
        -138 (-1.24 % of base) : 343038.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
        -135 (-2.50 % of base) : 440367.dasm - (dynamicClass):ReadPrimitiveContainerFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        -135 (-7.18 % of base) : 115828.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
        -131 (-7.10 % of base) : 242241.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
        -111 (-6.90 % of base) : 265866.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
        -110 (-2.87 % of base) : 79478.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:EarlyDecodeWellKnownAttribute(byref):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData,Microsoft.CodeAnalysis.CSharp.BoundAttribute]:this (Tier1)
        -107 (-14.68 % of base) : 59224.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
        -102 (-5.23 % of base) : 134973.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (Tier0-FullOpts)
        -102 (-0.87 % of base) : 235937.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        -102 (-0.87 % of base) : 267233.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        -102 (-0.87 % of base) : 116969.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        -102 (-0.87 % of base) : 282521.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        -102 (-0.87 % of base) : 346769.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        -102 (-0.87 % of base) : 413389.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
        -102 (-0.87 % of base) : 498393.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier1)
Top method regressions (percentages):
          75 (22.19 % of base) : 7800.dasm - NuGet.Frameworks.NuGetFramework:RawParse(System.String):System.Tuple`3[System.String,System.String,System.String] (Tier0-FullOpts)
          73 (12.19 % of base) : 495922.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
          70 (11.95 % of base) : 274981.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         273 (11.69 % of base) : 9859.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],ubyte,ubyte):ubyte (Instrumented Tier1)
         102 (8.81 % of base) : 330197.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this (Tier0-FullOpts)
          14 (8.75 % of base) : 442401.dasm - System.MemoryExtensions:TrimEnd(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort] (Tier1)
          95 (8.41 % of base) : 321709.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this (Tier0-FullOpts)
         105 (8.24 % of base) : 501486.dasm - System.Text.Encodings.Web.Tests.JavaScriptEncoderTests:InvalidFindFirstCharacterToEncode(ushort,System.Text.Encodings.Web.JavaScriptEncoder):this (Tier0-FullOpts)
          43 (7.76 % of base) : 287891.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
          10 (7.19 % of base) : 78179.dasm - Microsoft.CodeAnalysis.Shared.Extensions.StringExtensions:ConvertTabToSpace(System.String,int,int,int):int (Tier0-FullOpts)
          62 (7.15 % of base) : 79942.dasm - Roslyn.Utilities.GeneratedCodeUtilities:IsGeneratedCode(Microsoft.CodeAnalysis.SyntaxTree,System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],System.Threading.CancellationToken):ubyte (Tier1)
          63 (6.87 % of base) : 152995.dasm - Roslyn.Utilities.GeneratedCodeUtilities:IsGeneratedCode(Microsoft.CodeAnalysis.SyntaxTree,System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],System.Threading.CancellationToken):ubyte (Tier1)
          58 (6.66 % of base) : 56458.dasm - Roslyn.Utilities.GeneratedCodeUtilities:IsGeneratedCode(Microsoft.CodeAnalysis.SyntaxTree,System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],System.Threading.CancellationToken):ubyte (Tier1)
          60 (6.47 % of base) : 568871.dasm - Roslyn.Utilities.GeneratedCodeUtilities:IsGeneratedCode(Microsoft.CodeAnalysis.SyntaxTree,System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte],System.Threading.CancellationToken):ubyte (Tier1)
          40 (6.32 % of base) : 465554.dasm - System.Number:TryParseBinaryIntegerHexOrBinaryNumberStyle[ushort,uint,System.Number+BinaryParser`1[uint]](System.ReadOnlySpan`1[ushort],int,byref):int (Tier1)
          37 (6.28 % of base) : 265868.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
          19 (6.19 % of base) : 504728.dasm - System.Text.Json.JsonSerializerOptions+CachingContext:DetermineNearestAncestor(System.Type,System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry):System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry:this (Tier0-FullOpts)
          57 (5.97 % of base) : 13869.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAttributeData:<GetTargetAttributeSignatureIndex>g__matches|34_0(ubyte[],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],byref,byref):ubyte (Tier0-FullOpts)
         103 (5.67 % of base) : 153605.dasm - Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass:EnterParameter(Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol):this (Tier1)
           8 (5.63 % of base) : 482552.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCast_Helper(uint,System.Object):System.Object (Tier1)
Top method improvements (percentages):
        -107 (-14.68 % of base) : 59224.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -97 (-13.31 % of base) : 267955.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -15 (-11.90 % of base) : 167959.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this (Tier1)
         -15 (-11.90 % of base) : 195582.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this (Tier1)
         -15 (-11.90 % of base) : 307328.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this (Tier1)
         -15 (-11.90 % of base) : 314449.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this (Tier1)
         -15 (-11.90 % of base) : 429719.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this (Tier1)
         -15 (-11.90 % of base) : 252828.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this (Tier1)
         -15 (-11.90 % of base) : 381488.dasm - System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this (Tier1)
         -23 (-10.70 % of base) : 161418.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -63 (-10.21 % of base) : 146800.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -60 (-9.76 % of base) : 306661.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -23 (-9.75 % of base) : 354559.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalListInOrder(System.__Canon[]):this (Tier1)
         -76 (-7.92 % of base) : 265740.dasm - System.Globalization.Tests.DateTimeFormatInfoAbbreviatedMonthGenitiveNames:TestAbbreviatedGenitiveNamesWithAllCultures():this (Tier0-FullOpts)
         -52 (-7.76 % of base) : 112141.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
         -25 (-7.69 % of base) : 152997.dasm - Roslyn.Utilities.FileNameUtilities:GetExtension(System.String):System.String (Tier1)
         -25 (-7.69 % of base) : 568873.dasm - Roslyn.Utilities.FileNameUtilities:GetExtension(System.String):System.String (Tier1)
        -135 (-7.18 % of base) : 115828.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
        -131 (-7.10 % of base) : 242241.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateProperties(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.List`1[System.Reflection.RuntimePropertyInfo]],System.Span`1[ubyte],ubyte,byref):this (Tier1)
         -43 (-6.95 % of base) : 611988.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:MergeWithGlobalList(System.__Canon[]):this (Tier1)
  
librariestestsnotieredcompilation.run.windows.x86.Release.mch
To reproduce these diffs on Windows x86:
superpmi.py asmdiffs -target_os windows -target_arch x86 -arch x86
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 103808748 (overridden on cmd)
Total bytes of diff: 103807483 (overridden on cmd)
Total bytes of delta: -1265 (-0.00 % of base)
    diff is a regression.
    relative diff is a regression.
Detail diffs
Top file regressions (bytes):
         176 : 208980.dasm (4.94 % of base)
         110 : 208550.dasm (3.61 % of base)
         105 : 242492.dasm (7.71 % of base)
          94 : 172614.dasm (1.75 % of base)
          93 : 156130.dasm (8.31 % of base)
          92 : 153554.dasm (8.13 % of base)
          75 : 4166.dasm (22.19 % of base)
          72 : 295725.dasm (2.03 % of base)
          72 : 45723.dasm (4.62 % of base)
          72 : 4981.dasm (1.13 % of base)
          72 : 43592.dasm (1.12 % of base)
          72 : 52136.dasm (4.60 % of base)
          72 : 49255.dasm (1.12 % of base)
          69 : 242466.dasm (3.02 % of base)
          68 : 295929.dasm (3.06 % of base)
          67 : 22470.dasm (4.37 % of base)
          66 : 147601.dasm (2.94 % of base)
          65 : 30930.dasm (2.86 % of base)
          63 : 172006.dasm (1.39 % of base)
          63 : 172461.dasm (1.39 % of base)
Top file improvements (bytes):
        -159 : 208657.dasm (-3.01 % of base)
        -131 : 6317.dasm (-2.37 % of base)
        -102 : 49495.dasm (-5.23 % of base)
        -102 : 43793.dasm (-5.23 % of base)
         -93 : 44892.dasm (-1.84 % of base)
         -81 : 301034.dasm (-2.42 % of base)
         -81 : 301032.dasm (-2.42 % of base)
         -81 : 301033.dasm (-2.42 % of base)
         -69 : 5842.dasm (-3.32 % of base)
         -69 : 63827.dasm (-1.23 % of base)
         -58 : 283949.dasm (-2.29 % of base)
         -54 : 284557.dasm (-1.51 % of base)
         -49 : 91476.dasm (-1.77 % of base)
         -48 : 2445.dasm (-0.51 % of base)
         -41 : 297946.dasm (-2.84 % of base)
         -40 : 279390.dasm (-3.18 % of base)
         -38 : 301014.dasm (-2.48 % of base)
         -36 : 272908.dasm (-0.80 % of base)
         -35 : 301061.dasm (-2.15 % of base)
         -35 : 301062.dasm (-2.14 % of base)
81 total files with Code Size differences (46 improved, 35 regressed), 20 unchanged.
Top method regressions (bytes):
         176 (4.94 % of base) : 208980.dasm - (dynamicClass):ReadDerivedTypeWithDifferentOverridesFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         110 (3.61 % of base) : 208550.dasm - (dynamicClass):ReadWithNullablesFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
         105 (7.71 % of base) : 242492.dasm - System.Text.Encodings.Web.Tests.JavaScriptEncoderTests:InvalidFindFirstCharacterToEncode(ushort,System.Text.Encodings.Web.JavaScriptEncoder):this (FullOpts)
          94 (1.75 % of base) : 172614.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderTypeWithGetSetArrayMembers:Read3_TypeWithGetSetArrayMembers(ubyte,ubyte):SerializationTypes.TypeWithGetSetArrayMembers:this (FullOpts)
          93 (8.31 % of base) : 156130.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this (FullOpts)
          92 (8.13 % of base) : 153554.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this (FullOpts)
          75 (22.19 % of base) : 4166.dasm - NuGet.Frameworks.NuGetFramework:RawParse(System.String):System.Tuple`3[System.String,System.String,System.String] (FullOpts)
          72 (1.13 % of base) : 4981.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
          72 (1.12 % of base) : 43592.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
          72 (1.12 % of base) : 49255.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
          72 (4.62 % of base) : 45723.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:HasVariantConversionNoCycleCheck(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte:this (FullOpts)
          72 (4.60 % of base) : 52136.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:HasVariantConversionNoCycleCheck(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte:this (FullOpts)
          72 (2.03 % of base) : 295725.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex30407_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          69 (3.02 % of base) : 242466.dasm - System.Text.Encodings.Web.Tests.JavaScriptEncoderTests:EscapingTestWhileWritingSurrogate(System.Text.Encodings.Web.JavaScriptEncoder):this (FullOpts)
          68 (3.06 % of base) : 295929.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex30592_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          67 (4.37 % of base) : 22470.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (FullOpts)
          66 (2.94 % of base) : 147601.dasm - System.Management.ManagementClassGenerator:GenerateSystemPropertiesClass():System.CodeDom.CodeTypeDeclaration:this (FullOpts)
          65 (2.86 % of base) : 30930.dasm - System.Number:TryParseBinaryIntegerStyle[ushort,System.Int128](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int (FullOpts)
          63 (1.39 % of base) : 172006.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderXmlSerializerAttributes:Read3_XmlSerializerAttributes(ubyte,ubyte):SerializationTypes.XmlSerializerAttributes:this (FullOpts)
          63 (1.39 % of base) : 172461.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderXmlSerializerAttributes:Read3_XmlSerializerAttributes(ubyte,ubyte):SerializationTypes.XmlSerializerAttributes:this (FullOpts)
Top method improvements (bytes):
        -159 (-3.01 % of base) : 208657.dasm - (dynamicClass):ReadPrimitiveContainerFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
        -131 (-2.37 % of base) : 6317.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
        -102 (-5.23 % of base) : 49495.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
        -102 (-5.23 % of base) : 43793.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
         -93 (-1.84 % of base) : 44892.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
         -81 (-2.42 % of base) : 301032.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32256_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -81 (-2.42 % of base) : 301033.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32257_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -81 (-2.42 % of base) : 301034.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32258_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -69 (-3.32 % of base) : 5842.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:CheckMembers(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol,System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol]],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
         -69 (-1.23 % of base) : 63827.dasm - System.Xml.Schema.Compiler:CompileLocalAttributes(System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaComplexType,System.Xml.Schema.XmlSchemaObjectCollection,System.Xml.Schema.XmlSchemaAnyAttribute,int):this (FullOpts)
         -58 (-2.29 % of base) : 283949.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1005_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -54 (-1.51 % of base) : 284557.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2077_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -49 (-1.77 % of base) : 91476.dasm - System.Configuration.BaseConfigurationRecord:Init(System.Configuration.Internal.IInternalConfigRoot,System.Configuration.BaseConfigurationRecord,System.String,System.String):this (FullOpts)
         -48 (-0.51 % of base) : 2445.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -41 (-2.84 % of base) : 297946.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex30769_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -40 (-3.18 % of base) : 279390.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex28713_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -38 (-2.48 % of base) : 301014.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32240_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -36 (-0.80 % of base) : 272908.dasm - System.Text.Json.Tests.Utf8JsonReaderTests:TestTrySkipPartial(System.String,ubyte) (FullOpts)
         -35 (-2.15 % of base) : 301061.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32313_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -35 (-2.14 % of base) : 301062.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32316_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
Top method regressions (percentages):
          75 (22.19 % of base) : 4166.dasm - NuGet.Frameworks.NuGetFramework:RawParse(System.String):System.Tuple`3[System.String,System.String,System.String] (FullOpts)
          93 (8.31 % of base) : 156130.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this (FullOpts)
          92 (8.13 % of base) : 153554.dasm - System.Net.Http.Headers.AltSvcHeaderParser:GetParsedValueLength(System.String,int,System.Object,byref):int:this (FullOpts)
         105 (7.71 % of base) : 242492.dasm - System.Text.Encodings.Web.Tests.JavaScriptEncoderTests:InvalidFindFirstCharacterToEncode(ushort,System.Text.Encodings.Web.JavaScriptEncoder):this (FullOpts)
          55 (7.15 % of base) : 158849.dasm - System.Net.Mail.Message:EncodeHeaders(System.Net.Mime.HeaderCollection,ubyte):this (FullOpts)
          19 (6.19 % of base) : 244862.dasm - System.Text.Json.JsonSerializerOptions+CachingContext:DetermineNearestAncestor(System.Type,System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry):System.Text.Json.JsonSerializerOptions+CachingContext+CacheEntry:this (FullOpts)
          57 (5.97 % of base) : 6811.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAttributeData:<GetTargetAttributeSignatureIndex>g__matches|34_0(ubyte[],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],byref,byref):ubyte (FullOpts)
         176 (4.94 % of base) : 208980.dasm - (dynamicClass):ReadDerivedTypeWithDifferentOverridesFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
          72 (4.62 % of base) : 45723.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:HasVariantConversionNoCycleCheck(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte:this (FullOpts)
          72 (4.60 % of base) : 52136.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:HasVariantConversionNoCycleCheck(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte:this (FullOpts)
          67 (4.37 % of base) : 22470.dasm - Newtonsoft.Json.Linq.JContainer:ReadContentFrom(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Linq.JsonLoadSettings):this (FullOpts)
          34 (4.36 % of base) : 159272.dasm - System.Net.Mail.Message:EncodeHeaders(System.Net.Mime.HeaderCollection,ubyte):this (FullOpts)
           9 (4.15 % of base) : 161018.dasm - System.Net.PathList+PathListComparer:System.Collections.IComparer.Compare(System.Object,System.Object):int:this (FullOpts)
           9 (4.15 % of base) : 156263.dasm - System.Net.PathList+PathListComparer:System.Collections.IComparer.Compare(System.Object,System.Object):int:this (FullOpts)
          34 (4.14 % of base) : 315975.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:WriteEnumAndArrayTypes(byref,System.Xml.XmlQualifiedName,System.String):ubyte:this (FullOpts)
          47 (4.02 % of base) : 165562.dasm - System.Numerics.Tensors.Tests.GenericNumberTensorPrimitivesTests`1+<>c__DisplayClass85_0[System.UInt128]:<ScalarSpanDestination_InPlace>b__0(int):this (FullOpts)
           8 (3.62 % of base) : 51326.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
           8 (3.62 % of base) : 9591.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
           8 (3.62 % of base) : 45413.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
         110 (3.61 % of base) : 208550.dasm - (dynamicClass):ReadWithNullablesFromXml(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString[]):System.Object (FullOpts)
Top method improvements (percentages):
         -19 (-5.56 % of base) : 278087.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<TryCalculateSyntaxOffsetOfPositionInInitializer>g__findInitializer|106_0(System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]],int,Microsoft.CodeAnalysis.SyntaxTree,byref,byref):ubyte (FullOpts)
         -34 (-5.55 % of base) : 278403.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanUnicodeEscape(ubyte,byref,byref):ushort:this (FullOpts)
        -102 (-5.23 % of base) : 49495.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
        -102 (-5.23 % of base) : 43793.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[System.__Canon],int):this (FullOpts)
          -5 (-4.55 % of base) : 39796.dasm - System.Runtime.Serialization.ObjectHolderListEnumerator:MoveNext():ubyte:this (FullOpts)
         -19 (-4.38 % of base) : 70407.dasm - System.Collections.Frozen.LengthBuckets:CreateLengthBucketsArrayIfAppropriate(System.String[],System.Collections.Generic.IEqualityComparer`1[System.String],int,int):int[] (FullOpts)
         -15 (-4.20 % of base) : 44989.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:DescendThroughTupleRestFields(byref,int,ubyte):int:this (FullOpts)
         -11 (-4.00 % of base) : 64816.dasm - System.CodeDom.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -11 (-4.00 % of base) : 205638.dasm - System.Runtime.Serialization.CodeTypeReference:RipOffAssemblyInformationFromTypeName(System.String):System.String (FullOpts)
         -12 (-3.93 % of base) : 33201.dasm - Moq.MatcherFactory:CreateMatchers(System.Collections.Generic.IReadOnlyList`1[System.Linq.Expressions.Expression],System.Reflection.ParameterInfo[]):Moq.Pair`2[Moq.IMatcher[],System.Linq.Expressions.Expression[]] (FullOpts)
          -2 (-3.70 % of base) : 12085.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
          -2 (-3.70 % of base) : 50971.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:IsInDocumentationComment(Microsoft.CodeAnalysis.SyntaxNode):ubyte (FullOpts)
          -5 (-3.52 % of base) : 127783.dasm - System.IO.Compression.Tests.ZipFileTestBase:ArraysEqual[ubyte](ubyte[],ubyte[],int):ubyte (FullOpts)
          -5 (-3.52 % of base) : 127890.dasm - System.IO.Compression.Tests.ZipFileTestBase:ArraysEqual[ubyte](ubyte[],ubyte[],int):ubyte (FullOpts)
         -69 (-3.32 % of base) : 5842.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:CheckMembers(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol,System.Collections.Generic.Dictionary`2[System.ReadOnlyMemory`1[ushort],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol]],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
         -16 (-3.29 % of base) : 24107.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:IsDefined(System.String):int:this (FullOpts)
         -16 (-3.29 % of base) : 53720.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:IsDefined(System.String):int:this (FullOpts)
         -16 (-3.29 % of base) : 48013.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:IsDefined(System.String):int:this (FullOpts)
          -5 (-3.25 % of base) : 159215.dasm - System.Net.Mime.ByteEncoder:AppendEncodedCodepoint(ubyte[],int):this (FullOpts)
          -5 (-3.25 % of base) : 158622.dasm - System.Net.Mime.ByteEncoder:AppendEncodedCodepoint(ubyte[],int):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: 11300239 (overridden on cmd)
Total bytes of diff: 11299220 (overridden on cmd)
Total bytes of delta: -1019 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.
Detail diffs
Top file regressions (bytes):
         137 : 6777.dasm (2.23 % of base)
          72 : 26628.dasm (4.60 % of base)
          52 : 21536.dasm (4.84 % of base)
          50 : 19901.dasm (0.80 % of base)
          46 : 1325.dasm (1.68 % of base)
          31 : 152.dasm (2.80 % of base)
          24 : 20681.dasm (0.73 % of base)
          22 : 6854.dasm (6.81 % of base)
          20 : 22900.dasm (0.38 % of base)
          19 : 30048.dasm (1.32 % of base)
          18 : 17936.dasm (0.96 % of base)
          15 : 34592.dasm (2.25 % of base)
          13 : 21988.dasm (0.94 % of base)
          12 : 29399.dasm (2.99 % of base)
          12 : 275.dasm (1.93 % of base)
          11 : 31803.dasm (0.19 % of base)
          10 : 28021.dasm (0.76 % of base)
           9 : 28631.dasm (2.37 % of base)
           9 : 33647.dasm (0.89 % of base)
           9 : 19076.dasm (2.55 % of base)
Top file improvements (bytes):
        -182 : 21012.dasm (-3.26 % of base)
        -125 : 6639.dasm (-1.50 % of base)
        -117 : 6524.dasm (-1.64 % of base)
         -96 : 14453.dasm (-1.59 % of base)
         -52 : 8736.dasm (-0.54 % of base)
         -48 : 31804.dasm (-0.51 % of base)
         -34 : 14057.dasm (-3.86 % of base)
         -34 : 19012.dasm (-5.55 % of base)
         -28 : 13487.dasm (-0.11 % of base)
         -27 : 21594.dasm (-0.57 % of base)
         -26 : 15666.dasm (-0.38 % of base)
         -26 : 25545.dasm (-1.73 % of base)
         -24 : 23901.dasm (-1.77 % of base)
         -23 : 28486.dasm (-0.52 % of base)
         -22 : 2148.dasm (-1.67 % of base)
         -21 : 22786.dasm (-2.47 % of base)
         -21 : 14711.dasm (-1.54 % of base)
         -21 : 43.dasm (-3.08 % of base)
         -21 : 14980.dasm (-1.03 % of base)
         -20 : 33393.dasm (-1.05 % of base)
73 total files with Code Size differences (45 improved, 28 regressed), 20 unchanged.
Top method regressions (bytes):
         137 (2.23 % of base) : 6777.dasm - FSharp.Compiler.LexFilter:scanAhead@1017(FSharp.Compiler.LexFilter+LexFilterImpl,ubyte,Internal.Utilities.Text.Lexing.Position,Microsoft.FSharp.Core.FSharpRef`1[Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.LexFilter+TokenTup,ubyte]]],int):ubyte (FullOpts)
          72 (4.60 % of base) : 26628.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:HasVariantConversionNoCycleCheck(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte:this (FullOpts)
          52 (4.84 % of base) : 21536.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAttributeData:<GetTargetAttributeSignatureIndex>g__matches|28_0(ubyte[],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],byref,byref):ubyte:this (FullOpts)
          50 (0.80 % of base) : 19901.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon,System.__Canon]]:this (FullOpts)
          46 (1.68 % of base) : 1325.dasm - BepuPhysics.IslandSleeper:CollectIsland[BepuPhysics.IslandSleeper+TraversalTest`1[BepuPhysics.IslandSleeper+SleepPredicate]](BepuUtilities.Memory.BufferPool,int,byref,byref,byref):ubyte:this (FullOpts)
          31 (2.80 % of base) : 152.dasm - System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int (FullOpts)
          24 (0.73 % of base) : 20681.dasm - System.Text.RegularExpressions.RegexNode:CanBeMadeAtomic(System.Text.RegularExpressions.RegexNode,System.Text.RegularExpressions.RegexNode,ubyte,ubyte):ubyte (FullOpts)
          22 (6.81 % of base) : 6854.dasm - System.String:TrimWhiteSpaceHelper(int):System.String:this (FullOpts)
          20 (0.38 % of base) : 22900.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeTypeParameters(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]:this (FullOpts)
          19 (1.32 % of base) : 30048.dasm - Microsoft.CodeAnalysis.CSharp.SpillSequenceSpiller:VisitExpressionList(byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]:this (FullOpts)
          18 (0.96 % of base) : 17936.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,System.__Canon]:TryRemoveInternal(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey,byref,ubyte,System.__Canon):ubyte:this (FullOpts)
          15 (2.25 % of base) : 34592.dasm - System.Management.Automation.Runspaces.CommandParameter:ToCommandParameterInternal(System.Management.Automation.Runspaces.CommandParameter,ubyte):System.Management.Automation.CommandParameterInternal (FullOpts)
          13 (0.94 % of base) : 21988.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AbstractTypeMap:SubstituteCustomModifiers(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]:this (FullOpts)
          12 (2.99 % of base) : 29399.dasm - Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+ScopeTreeBuilder:AddIfCaptured(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
          12 (1.93 % of base) : 275.dasm - System.Reflection.TypeNameParser:ParseNamedOrConstructedGenericTypeName():System.Reflection.TypeNameParser+TypeName:this (FullOpts)
          11 (0.19 % of base) : 31803.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts)
          10 (0.76 % of base) : 28021.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:GetUserDefinedOperators(int,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.UnaryOperatorAnalysisResult],byref):ubyte:this (FullOpts)
           9 (2.37 % of base) : 28631.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitStatementSubList(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],int):this (FullOpts)
           9 (1.25 % of base) : 3004.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,System.__Canon]:TryAddInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[int,System.__Canon],int,System.Nullable`1[int],System.__Canon,ubyte,ubyte,byref):ubyte:this (FullOpts)
           9 (2.55 % of base) : 19076.dasm - System.Collections.Generic.GenericEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (FullOpts)
Top method improvements (bytes):
        -182 (-3.26 % of base) : 21012.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
        -125 (-1.50 % of base) : 6639.dasm - FSharp.Compiler.Lexer:singleQuoteString(FSharp.Compiler.IO.ByteBuffer,FSharp.Compiler.Lexhelp+LexerStringFinisher,FSharp.Compiler.Text.Range,FSharp.Compiler.ParseHelpers+LexerStringKind,FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort]):FSharp.Compiler.Parser+token (FullOpts)
        -117 (-1.64 % of base) : 6524.dasm - FSharp.Compiler.LexFilter:undentationLimit@727(FSharp.Compiler.LexFilter+LexFilterImpl,FSharp.Compiler.LexFilter+Context,ubyte,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.LexFilter+Context]):FSharp.Compiler.LexFilter+PositionWithColumn (FullOpts)
         -96 (-1.59 % of base) : 14453.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.HuffmanScanDecoder:ParseProgressiveDataNonInterleaved():this (FullOpts)
         -52 (-0.54 % of base) : 8736.dasm - FSharp.Compiler.ConstraintSolver:SolveTypeSubsumesType(FSharp.Compiler.ConstraintSolver+ConstraintSolverEnv,int,FSharp.Compiler.Text.Range,FSharp.Compiler.ConstraintSolver+OptionalTrace,Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+TraitConstraintInfo,FSharp.Compiler.TypedTree+TraitConstraintSln]],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TypedTree+TType):FSharp.Compiler.ErrorLogger+OperationResult`1[Microsoft.FSharp.Core.Unit] (FullOpts)
         -48 (-0.51 % of base) : 31804.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -34 (-5.55 % of base) : 19012.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanUnicodeEscape(ubyte,byref,byref):ushort:this (FullOpts)
         -34 (-3.86 % of base) : 14057.dasm - System.Number:TryParseBinaryIntegerHexOrBinaryNumberStyle[ushort,uint,System.Number+HexParser`1[uint]](System.ReadOnlySpan`1[ushort],int,byref):int (FullOpts)
         -28 (-0.11 % of base) : 13487.dasm - FSharp.Compiler.CompilerDiagnostics:OutputExceptionR@597(System.Text.StringBuilder,ubyte,System.Text.StringBuilder,System.Exception) (FullOpts)
         -27 (-0.57 % of base) : 21594.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
         -26 (-1.73 % of base) : 25545.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:Fix(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol,System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],byref):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte] (FullOpts)
         -26 (-0.38 % of base) : 15666.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:TrainWithoutLock(Microsoft.ML.Runtime.IProgressChannelProvider,Microsoft.ML.Trainers.FloatLabelCursor+Factory,System.Random,Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],int,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],float[],float[],float,Microsoft.ML.Data.VBuffer`1[float][],float[],Microsoft.ML.Data.VBuffer`1[float][],float[],float[]):this (FullOpts)
         -24 (-1.77 % of base) : 23901.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEEventSymbol:GetAssociatedField(Roslyn.Utilities.MultiDictionary`2[System.String,Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol:this (FullOpts)
         -23 (-0.52 % of base) : 28486.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
         -22 (-1.67 % of base) : 2148.dasm - System.DefaultBinder:SelectMethod(int,System.Reflection.MethodBase[],System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodBase:this (FullOpts)
         -21 (-2.47 % of base) : 22786.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
         -21 (-1.03 % of base) : 14980.dasm - SixLabors.ImageSharp.Processing.Processors.Dithering.OrderedDither:SixLabors.ImageSharp.Processing.Processors.Dithering.IDither.ApplyPaletteDither[SixLabors.ImageSharp.Processing.Processors.Dithering.PaletteDitherProcessor`1+DitherProcessor[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.PixelFormats.Rgba32](byref,SixLabors.ImageSharp.ImageFrame`1[SixLabors.ImageSharp.PixelFormats.Rgba32],SixLabors.ImageSharp.Rectangle):this (FullOpts)
         -21 (-1.54 % of base) : 14711.dasm - SixLabors.ImageSharp.Processing.Processors.Quantization.WuQuantizer`1[SixLabors.ImageSharp.PixelFormats.Rgba32]:GetQuantizedColor(SixLabors.ImageSharp.PixelFormats.Rgba32,byref):ubyte:this (FullOpts)
         -21 (-3.08 % of base) : 43.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(uint,int,byref,byref):uint (FullOpts)
         -20 (-2.27 % of base) : 1436.dasm - BepuPhysics.BatchCompressor:DoJob(byref,int,BepuUtilities.Memory.BufferPool):this (FullOpts)
Top method regressions (percentages):
          22 (6.81 % of base) : 6854.dasm - System.String:TrimWhiteSpaceHelper(int):System.String:this (FullOpts)
          52 (4.84 % of base) : 21536.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAttributeData:<GetTargetAttributeSignatureIndex>g__matches|28_0(ubyte[],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],byref,byref):ubyte:this (FullOpts)
          72 (4.60 % of base) : 26628.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:HasVariantConversionNoCycleCheck(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):ubyte:this (FullOpts)
           8 (3.62 % of base) : 21919.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]):ubyte (FullOpts)
          12 (2.99 % of base) : 29399.dasm - Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+ScopeTreeBuilder:AddIfCaptured(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
          31 (2.80 % of base) : 152.dasm - System.Number:TryParseBinaryIntegerStyle[ushort,int](System.ReadOnlySpan`1[ushort],int,System.Globalization.NumberFormatInfo,byref):int (FullOpts)
           2 (2.56 % of base) : 19760.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:PreviousBranchTaken():ubyte:this (FullOpts)
           9 (2.55 % of base) : 19076.dasm - System.Collections.Generic.GenericEqualityComparer`1[System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this (FullOpts)
           9 (2.37 % of base) : 28631.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitStatementSubList(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundStatement],int):this (FullOpts)
           6 (2.35 % of base) : 23688.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:FindEnclosingTypeParameter(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.String):Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol (FullOpts)
          15 (2.25 % of base) : 34592.dasm - System.Management.Automation.Runspaces.CommandParameter:ToCommandParameterInternal(System.Management.Automation.Runspaces.CommandParameter,ubyte):System.Management.Automation.CommandParameterInternal (FullOpts)
         137 (2.23 % of base) : 6777.dasm - FSharp.Compiler.LexFilter:scanAhead@1017(FSharp.Compiler.LexFilter+LexFilterImpl,ubyte,Internal.Utilities.Text.Lexing.Position,Microsoft.FSharp.Core.FSharpRef`1[Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.LexFilter+TokenTup,ubyte]]],int):ubyte (FullOpts)
           8 (2.04 % of base) : 23396.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:CheckForMissingRequiredParameter(Microsoft.CodeAnalysis.CSharp.OverloadResolution+ParameterMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],ubyte,ubyte):System.Nullable`1[int] (FullOpts)
          12 (1.93 % of base) : 275.dasm - System.Reflection.TypeNameParser:ParseNamedOrConstructedGenericTypeName():System.Reflection.TypeNameParser+TypeName:this (FullOpts)
           2 (1.72 % of base) : 28410.dasm - Microsoft.CodeAnalysis.AnalyzerConfig:IsComment(System.String):ubyte (FullOpts)
          46 (1.68 % of base) : 1325.dasm - BepuPhysics.IslandSleeper:CollectIsland[BepuPhysics.IslandSleeper+TraversalTest`1[BepuPhysics.IslandSleeper+SleepPredicate]](BepuUtilities.Memory.BufferPool,int,byref,byref,byref):ubyte:this (FullOpts)
           6 (1.60 % of base) : 34169.dasm - System.Management.Automation.CommandPathSearch:CheckAgainstAcceptableCommandNames(System.String[]):System.Collections.Generic.IEnumerable`1[System.String]:this (FullOpts)
          19 (1.32 % of base) : 30048.dasm - Microsoft.CodeAnalysis.CSharp.SpillSequenceSpiller:VisitExpressionList(byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]:this (FullOpts)
           9 (1.25 % of base) : 3004.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,System.__Canon]:TryAddInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[int,System.__Canon],int,System.Nullable`1[int],System.__Canon,ubyte,ubyte,byref):ubyte:this (FullOpts)
           8 (1.23 % of base) : 27859.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetNextToken(Microsoft.CodeAnalysis.SyntaxNode,System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte],System.Func`2[Microsoft.CodeAnalysis.SyntaxTrivia,ubyte]):Microsoft.CodeAnalysis.SyntaxToken:this (FullOpts)
Top method improvements (percentages):
         -19 (-5.56 % of base) : 30150.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<TryCalculateSyntaxOffsetOfPositionInInitializer>g__findInitializer|106_0(System.Collections.Immutable.ImmutableArray`1[System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldOrPropertyInitializer]],int,Microsoft.CodeAnalysis.SyntaxTree,byref,byref):ubyte (FullOpts)
         -34 (-5.55 % of base) : 19012.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanUnicodeEscape(ubyte,byref,byref):ushort:this (FullOpts)
          -8 (-4.04 % of base) : 14555.dasm - SixLabors.ImageSharp.Processing.Processors.Convolution.Parameters.BokehBlurKernelDataProvider:CreateComplexKernels(System.Numerics.Vector4[],int,int,float):SixLabors.ImageSharp.Complex64[][] (FullOpts)
         -34 (-3.86 % of base) : 14057.dasm - System.Number:TryParseBinaryIntegerHexOrBinaryNumberStyle[ushort,uint,System.Number+HexParser`1[uint]](System.ReadOnlySpan`1[ushort],int,byref):int (FullOpts)
        -182 (-3.26 % of base) : 21012.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         -20 (-3.23 % of base) : 19456.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlAttributeText(byref):this (FullOpts)
         -11 (-3.10 % of base) : 27938.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:MakeOutputTypeInferences(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BoundTupleLiteral,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,byref):this (FullOpts)
         -21 (-3.08 % of base) : 43.dasm - System.Text.Unicode.Utf16Utility:GetPointerToFirstInvalidChar(uint,int,byref,byref):uint (FullOpts)
          -6 (-2.99 % of base) : 13.dasm - System.Runtime.CompilerServices.CastHelpers:ChkCastAny(uint,System.Object):System.Object (FullOpts)
         -16 (-2.77 % of base) : 19071.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack:IsDefined(System.String):int:this (FullOpts)
          -6 (-2.71 % of base) : 25245.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:VisitArgumentsAfterCall(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):this (FullOpts)
         -19 (-2.68 % of base) : 5002.dasm - FSharp.Compiler.AbstractIL.IL+SHA1:sha1Hash(FSharp.Compiler.AbstractIL.IL+SHA1+SHAStream):System.Tuple`5[int,int,int,int,int] (FullOpts)
         -11 (-2.65 % of base) : 35825.dasm - System.Management.Automation.PSMethod:GetMethodGroupType(System.Reflection.MethodInfo):System.Type (FullOpts)
         -21 (-2.47 % of base) : 22786.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
          -6 (-2.28 % of base) : 602.dasm - System.Linq.EnumerableSorter`2[System.__Canon,int]:ComputeKeys(System.__Canon[],int):this (FullOpts)
         -20 (-2.27 % of base) : 1436.dasm - BepuPhysics.BatchCompressor:DoJob(byref,int,BepuUtilities.Memory.BufferPool):this (FullOpts)
          -5 (-2.13 % of base) : 16322.dasm - Microsoft.ML.Internal.Utilities.SequencePool:UIntArrayToLeb128(uint[],int,int,ubyte[],byref) (FullOpts)
          -7 (-1.97 % of base) : 15180.dasm - System.Collections.Generic.Dictionary`2+ValueCollection[System.__Canon,Microsoft.ML.SchemaShape+Column]:CopyTo(Microsoft.ML.SchemaShape+Column[],int):this (FullOpts)
          -7 (-1.97 % of base) : 27819.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:MakeExplicitParameterTypeInferences(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BoundTupleLiteral,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,int,byref):ubyte:this (FullOpts)
          -4 (-1.89 % of base) : 21164.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:EarlyDecodeWellKnownAttributeTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax]):this (FullOpts)