Assembly Diffs

linux arm

Diffs are based on 2,238,212 contexts (827,812 MinOpts, 1,410,400 FullOpts).

MISSED contexts: base: 74,052 (3.20%), diff: 74,066 (3.20%)

Overall (-2,444 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch 60,232,784 +188
coreclr_tests.run.linux.arm.checked.mch 321,775,434 +454
libraries.pmi.linux.arm.checked.mch 49,549,380 +86
libraries_tests.run.linux.arm.Release.mch 241,718,592 -3,166
librariestestsnotieredcompilation.run.linux.arm.Release.mch 93,040,870 -6

FullOpts (-2,444 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch 49,435,182 +188
coreclr_tests.run.linux.arm.checked.mch 109,045,300 +454
libraries.pmi.linux.arm.checked.mch 49,442,876 +86
libraries_tests.run.linux.arm.Release.mch 119,715,648 -3,166
librariestestsnotieredcompilation.run.linux.arm.Release.mch 82,957,050 -6

Example diffs

benchmarks.run_pgo.linux.arm.checked.mch

-22 (-1.37%) : 20486.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0-FullOpts)

@@ -9,35 +9,35 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T20] ( 16, 23   )     ref  ->   r4         this class-hnd single-def <System.Reflection.Emit.RuntimeMethodBuilder>
-;  V01 arg1         [V01,T32] (  9,  4   )     ref  ->   r5         class-hnd single-def <System.Reflection.Emit.RuntimeILGenerator>
-;  V02 loc0         [V02,T34] (  4,  4   )     ref  ->  [sp+0x34]  class-hnd exact spill-single-def <System.Reflection.Emit.__ExceptionInfo[]>
-;  V03 loc1         [V03,T11] (  9, 33   )     int  ->  [sp+0x8C] 
-;  V04 loc2         [V04,T21] (  9, 24.16)     ref  ->  [sp+0x30]  class-hnd spill-single-def <int[]>
-;  V05 loc3         [V05,T22] (  9, 24.16)     ref  ->  [sp+0x2C]  class-hnd spill-single-def <int[]>
-;  V06 loc4         [V06,T23] (  9, 24.16)     ref  ->  [sp+0x28]  class-hnd spill-single-def <int[]>
-;  V07 loc5         [V07,T24] (  6, 24.16)     ref  ->  [sp+0x24]  class-hnd spill-single-def <System.Type[]>
-;  V08 loc6         [V08,T25] (  6, 24.16)     ref  ->  [sp+0x20]  class-hnd spill-single-def <int[]>
-;  V09 loc7         [V09,T10] (  9, 34   )     int  ->  [sp+0x88]  spill-single-def
-;  V10 loc8         [V10,T26] (  5, 20   )     int  ->  [sp+0x84]  spill-single-def
-;  V11 loc9         [V11,T30] (  3, 12   )     int  ->  [sp+0x80]  spill-single-def
-;  V12 loc10        [V12,T31] (  3,  9   )     ref  ->  [sp+0x1C]  class-hnd exact spill-single-def <<unknown class>>
-;  V13 loc11        [V13,T42] (  3,  0   )     int  ->   r0        
-;  V14 loc12        [V14,T27] (  5, 16   )     int  ->  [sp+0x7C] 
+;  V01 arg1         [V01,T33] (  9,  4   )     ref  ->   r5         class-hnd single-def <System.Reflection.Emit.RuntimeILGenerator>
+;  V02 loc0         [V02,T32] (  5,  8   )     ref  ->  [sp+0x40]  class-hnd exact spill-single-def <System.Reflection.Emit.__ExceptionInfo[]>
+;  V03 loc1         [V03,T11] (  9, 33   )     int  ->  [sp+0x94] 
+;  V04 loc2         [V04,T21] (  9, 24.16)     ref  ->  [sp+0x3C]  class-hnd spill-single-def <int[]>
+;  V05 loc3         [V05,T22] (  9, 24.16)     ref  ->  [sp+0x38]  class-hnd spill-single-def <int[]>
+;  V06 loc4         [V06,T23] (  9, 24.16)     ref  ->  [sp+0x34]  class-hnd spill-single-def <int[]>
+;  V07 loc5         [V07,T24] (  6, 24.16)     ref  ->  [sp+0x30]  class-hnd spill-single-def <System.Type[]>
+;  V08 loc6         [V08,T25] (  6, 24.16)     ref  ->  [sp+0x2C]  class-hnd spill-single-def <int[]>
+;  V09 loc7         [V09,T10] (  9, 34   )     int  ->  [sp+0x90]  spill-single-def
+;  V10 loc8         [V10,T26] (  5, 20   )     int  ->  [sp+0x8C]  spill-single-def
+;  V11 loc9         [V11,T30] (  3, 12   )     int  ->  [sp+0x88]  spill-single-def
+;  V12 loc10        [V12,T31] (  3,  9   )     ref  ->  [sp+0x28]  class-hnd exact spill-single-def <<unknown class>>
+;  V13 loc11        [V13,T41] (  3,  0   )     int  ->   r0        
+;  V14 loc12        [V14,T27] (  5, 16   )     int  ->  [sp+0x84] 
 ;  V15 loc13        [V15,T01] ( 24, 69.44)     int  ->   r8        
 ;  V16 loc14        [V16,T07] (  8, 40   )     int  ->  registers  
 ;* V17 loc15        [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;  V18 OutArgs      [V18    ] (  1,  1   )  struct (16) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V19 tmp1         [V19,T02] (  8, 64   )     int  ->  registers   "impSpillLclRefs"
-;  V20 tmp2         [V20,T05] (  6, 48   )     ref  ->  registers   class-hnd exact "impAppendStmt" <<unknown class>>
-;  V21 tmp3         [V21    ] (  6, 48   )  struct (28) [sp+0x60]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Reflection.Emit.ExceptionHandler>
+;  V20 tmp2         [V20,T05] (  6, 48   )     ref  ->  [sp+0x24]  class-hnd exact "impAppendStmt" <<unknown class>>
+;  V21 tmp3         [V21    ] (  6, 48   )  struct (28) [sp+0x68]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Reflection.Emit.ExceptionHandler>
 ;  V22 tmp4         [V22,T03] (  8, 64   )     int  ->   r6         "impSpillLclRefs"
-;  V23 tmp5         [V23    ] (  6, 48   )  struct (28) [sp+0x44]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Reflection.Emit.ExceptionHandler>
-;  V24 tmp6         [V24,T06] (  6, 48   )     ref  ->  registers   class-hnd exact "impAppendStmt" <<unknown class>>
-;  V25 tmp7         [V25,T39] (  3,  0   )     ref  ->   r5         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V26 tmp8         [V26,T40] (  3,  0   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V27 tmp9         [V27,T41] (  3,  0   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V28 tmp10        [V28,T33] (  5,  4   )     ref  ->   r0         class-hnd single-def "Inlining Arg" <System.Reflection.MethodInfo>
-;  V29 tmp11        [V29,T38] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
+;  V23 tmp5         [V23    ] (  6, 48   )  struct (28) [sp+0x4C]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Reflection.Emit.ExceptionHandler>
+;  V24 tmp6         [V24,T06] (  6, 48   )     ref  ->  [sp+0x20]  class-hnd exact "impAppendStmt" <<unknown class>>
+;  V25 tmp7         [V25,T38] (  3,  0   )     ref  ->   r5         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V26 tmp8         [V26,T39] (  3,  0   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V27 tmp9         [V27,T40] (  3,  0   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V28 tmp10        [V28,T34] (  5,  4   )     ref  ->   r0         class-hnd single-def "Inlining Arg" <System.Reflection.MethodInfo>
+;  V29 tmp11        [V29,T37] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
 ;* V30 tmp12        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Reflection.MethodInfo>
 ;* V31 tmp13        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V32 tmp14        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Reflection.Emit.__ExceptionInfo>
@@ -48,38 +48,37 @@
 ;* V37 tmp19        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Reflection.Emit.__ExceptionInfo>
 ;* V38 tmp20        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Reflection.Emit.__ExceptionInfo>
 ;* V39 tmp21        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Reflection.Emit.__ExceptionInfo>
-;  V40 tmp22        [V40,T12] (  4, 32   )     ref  ->   r1         class-hnd exact "Inlining Arg" <System.Reflection.Emit.__ExceptionInfo>
+;  V40 tmp22        [V40,T12] (  4, 32   )     ref  ->  registers   class-hnd exact "Inlining Arg" <System.Reflection.Emit.__ExceptionInfo>
 ;  V41 tmp23        [V41,T13] (  4, 32   )     int  ->  registers   "argument with side effect"
-;  V42 tmp24        [V42,T14] (  4, 32   )     int  ->  registers   "argument with side effect"
+;  V42 tmp24        [V42,T14] (  4, 32   )     int  ->   r0         "argument with side effect"
 ;  V43 tmp25        [V43,T15] (  4, 32   )     int  ->  r12         "argument with side effect"
 ;  V44 tmp26        [V44,T16] (  4, 32   )     int  ->  registers   "argument with side effect"
-;  V45 tmp27        [V45,T17] (  4, 32   )     int  ->   r1         "argument with side effect"
-;  V46 tmp28        [V46,T18] (  4, 32   )     int  ->  r12         "argument with side effect"
+;  V45 tmp27        [V45,T17] (  4, 32   )     int  ->   r0         "argument with side effect"
+;  V46 tmp28        [V46,T18] (  4, 32   )     int  ->  registers   "argument with side effect"
 ;  V47 tmp29        [V47,T19] (  4, 32   )     int  ->  registers   "argument with side effect"
-;  V48 tmp30        [V48,T43] (  2,  0   )     ref  ->   r1         single-def "argument with side effect"
-;  V49 tmp31        [V49,T44] (  2,  0   )     ref  ->   r1         single-def "argument with side effect"
-;  V50 tmp32        [V50,T45] (  2,  0   )     ref  ->   r1         single-def "argument with side effect"
-;  V51 cse0         [V51,T36] (  5,  0.64)     int  ->  [sp+0x40]  spill-single-def "CSE - conservative"
-;  V52 cse1         [V52,T37] (  3,  0.40)     ref  ->   r3         "CSE - conservative"
+;  V48 tmp30        [V48,T42] (  2,  0   )     ref  ->   r1         single-def "argument with side effect"
+;  V49 tmp31        [V49,T43] (  2,  0   )     ref  ->   r1         single-def "argument with side effect"
+;  V50 tmp32        [V50,T44] (  2,  0   )     ref  ->   r1         single-def "argument with side effect"
+;  V51 cse0         [V51,T35] (  5,  0.64)     int  ->  [sp+0x48]  spill-single-def "CSE - conservative"
+;  V52 cse1         [V52,T36] (  3,  0.40)     ref  ->   r3         "CSE - conservative"
 ;  V53 cse2         [V53,T09] (  9, 36   )     ref  ->   r1         "CSE - moderate"
-;  V54 cse3         [V54,T04] (  5, 63.36)     int  ->   lr         "CSE - aggressive"
-;  V55 cse4         [V55,T08] (  3, 39.60)     ref  ->   lr         "CSE - aggressive"
+;  V54 cse3         [V54,T04] (  5, 63.36)     int  ->   r3         "CSE - aggressive"
+;  V55 cse4         [V55,T08] (  3, 39.60)     ref  ->   r3         "CSE - aggressive"
 ;  V56 cse5         [V56,T00] (  9, 95.04)     int  ->   r7         "CSE - aggressive"
-;  V57 cse6         [V57,T28] (  4, 16   )   byref  ->  [sp+0x18]  spill-single-def "CSE - moderate"
-;  V58 cse7         [V58,T29] (  4, 16   )     int  ->  [sp+0x3C]  spill-single-def "CSE - moderate"
-;  V59 cse8         [V59,T35] (  3,  4   )     int  ->  [sp+0x38]  spill-single-def "CSE - moderate"
-;  TEMP_02                                   byref  ->  [r11-0x9C]
-;  TEMP_01                                     ref  ->  [r11-0xA0]
+;  V57 cse6         [V57,T28] (  4, 16   )   byref  ->  [sp+0x1C]  spill-single-def "CSE - moderate"
+;  V58 cse7         [V58,T29] (  4, 16   )     int  ->  [sp+0x44]  spill-single-def "CSE - moderate"
+;  TEMP_02                                   byref  ->  [r11-0xA0]
+;  TEMP_01                                     ref  ->  [r11-0xA4]
 ;
-; Lcl frame size = 148
+; Lcl frame size = 156
 
 G_M41336_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 148
-            add     r11, sp, 176
+            sub     sp, 156
+            add     r11, sp, 184
             movs    r2, 0
-            str     r2, [sp+0x14]  // [TEMP_02]
-            str     r2, [sp+0x10]  // [TEMP_01]
+            str     r2, [sp+0x18]  // [TEMP_02]
+            str     r2, [sp+0x14]  // [TEMP_01]
             mov     r4, r0
             ; gcrRegs +[r4]
             mov     r5, r1
@@ -113,7 +112,7 @@ G_M41336_IG04:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             movs    r6, 0
             ldr     r7, [r4+0x08]
             ; gcrRegs +[r7]
-            str     r7, [sp+0x1C]  // [V12 loc10]
+            str     r7, [sp+0x28]  // [V12 loc10]
             ; GC ptr vars +{V12}
             ldr     r0, [r4+0x0C]
             ; gcrRegs +[r0]
@@ -126,7 +125,7 @@ G_M41336_IG04:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ; gcr arg pop 0
             ldrb    r0, [r4+0x58]
             cmp     r0, 0
-            bne     G_M41336_IG39
+            bne     G_M41336_IG33
             ldr     r0, [r5+0x2C]
             ; gcrRegs +[r0]
             cmp     r0, r4
@@ -243,11 +242,11 @@ G_M41336_IG08:        ; bbWeight=0, gcVars=0000000080000000 {V12}, gcrefRegs=003
             ldr     r3, [r3]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
-            str     r0, [sp+0x10]  // [TEMP_01]
+            str     r0, [sp+0x14]  // [TEMP_01]
             add     r0, r4, 32
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            ldr     r1, [sp+0x10]  // [TEMP_01]
+            ldr     r1, [sp+0x14]  // [TEMP_01]
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
@@ -261,11 +260,11 @@ G_M41336_IG08:        ; bbWeight=0, gcVars=0000000080000000 {V12}, gcrefRegs=003
             ldr     r3, [r3]
             blx     r3     // System.Reflection.Emit.RuntimeILGenerator:GetTokenFixups():int[]:this
             ; gcr arg pop 0
-            str     r0, [sp+0x10]  // [TEMP_01]
+            str     r0, [sp+0x14]  // [TEMP_01]
             add     r0, r4, 16
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            ldr     r1, [sp+0x10]  // [TEMP_01]
+            ldr     r1, [sp+0x14]  // [TEMP_01]
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
@@ -282,7 +281,7 @@ G_M41336_IG08:        ; bbWeight=0, gcVars=0000000080000000 {V12}, gcrefRegs=003
             ; gcr arg pop 0
             mov     r5, r0
             ; gcrRegs +[r5]
-            str     r5, [sp+0x34]  // [V02 loc0]
+            str     r5, [sp+0x40]  // [V02 loc0]
             ; GC ptr vars +{V02}
             mov     r0, r5
             movw    r3, 0xd1ff
@@ -292,7 +291,7 @@ G_M41336_IG08:        ; bbWeight=0, gcVars=0000000080000000 {V12}, gcrefRegs=003
             ; gcrRegs -[r0]
             ; gcr arg pop 0
             cmp     r0, 0
-            ble     G_M41336_IG36
+            ble     G_M41336_IG30
             mov     r1, r0
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -301,11 +300,11 @@ G_M41336_IG08:        ; bbWeight=0, gcVars=0000000080000000 {V12}, gcrefRegs=003
             blx     r3     // CORINFO_HELP_NEWARR_1_VC
             ; gcrRegs +[r0]
             ; gcr arg pop 0
-            str     r0, [sp+0x10]  // [TEMP_01]
+            str     r0, [sp+0x14]  // [TEMP_01]
             add     r0, r4, 36
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            ldr     r1, [sp+0x10]  // [TEMP_01]
+            ldr     r1, [sp+0x14]  // [TEMP_01]
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
@@ -313,582 +312,471 @@ G_M41336_IG08:        ; bbWeight=0, gcVars=0000000080000000 {V12}, gcrefRegs=003
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
             mov     r8, 0
-            ldr     r9, [r5+0x04]
-            str     r9, [sp+0x38]  // [V59 cse8]
-            cmp     r9, 0
-            ble     G_M41336_IG36
-                       ;; size=160 bbWeight=0 PerfScore 0.00
+            ldr     r1, [r5+0x04]
+            cmp     r1, 0
+            ble     G_M41336_IG30
+                       ;; size=152 bbWeight=0 PerfScore 0.00
 G_M41336_IG09:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            add     r3, r5, 8
-            ; byrRegs +[r3]
-            str     r3, [sp+0x18]  // [V57 cse6]
+            add     r9, r5, 8
+            ; byrRegs +[r9]
+            str     r9, [sp+0x1C]  // [V57 cse6]
             ; GC ptr vars +{V57}
-            str     r8, [sp+0x7C]  // [V14 loc12]
-            lsl     lr, r8, 2
-            str     lr, [sp+0x3C]  // [V58 cse7]
-            ldr     r1, [r3+lr]
+            str     r8, [sp+0x84]  // [V14 loc12]
+            lsl     r3, r8, 2
+            str     r3, [sp+0x44]  // [V58 cse7]
+            ldr     r1, [r9+r3]
             ; gcrRegs +[r1]
-            ldr     r12, [r1+0x04]
-            ; gcrRegs +[r12]
-            str     r12, [sp+0x30] // [V04 loc2]
+            ldr     lr, [r1+0x04]
+            ; gcrRegs +[lr]
+            str     lr, [sp+0x3C]  // [V04 loc2]
             ; GC ptr vars +{V04}
-            ldr     r2, [r1+0x08]
-            ; gcrRegs +[r2]
-            str     r2, [sp+0x2C]  // [V05 loc3]
+            ldr     r12, [r1+0x08]
+            ; gcrRegs +[r12]
+            str     r12, [sp+0x38] // [V05 loc3]
             ; GC ptr vars +{V05}
-            ldr     r0, [r1+0x0C]
-            ; gcrRegs +[r0]
-            str     r0, [sp+0x28]  // [V06 loc4]
+            ldr     r2, [r1+0x0C]
+            ; gcrRegs +[r2]
+            str     r2, [sp+0x34]  // [V06 loc4]
             ; GC ptr vars +{V06}
-            ldr     r5, [r1+0x14]
-            str     r5, [sp+0x24]  // [V07 loc5]
+            ldr     r0, [r1+0x14]
...

-4 (-0.60%) : 101217.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(uint,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)

@@ -67,8 +67,8 @@
 ;  V55 tmp51        [V55,T33] (  4,  3   )     int  ->   r3         "Inline stloc first use temp"
 ;* V56 tmp52        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp53        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V58 tmp54        [V58,T42] (  2,  0   )     int  ->   r0        
-;  V59 tmp55        [V59,T43] (  2,  0   )     int  ->   r0        
+;  V58 tmp54        [V58,T41] (  2,  0   )     int  ->   r0        
+;  V59 tmp55        [V59,T42] (  2,  0   )     int  ->   r0        
 ;* V60 tmp56        [V60    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V61 tmp57        [V61    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V62 tmp58        [V62,T36] (  2,  2   )   byref  ->   r1         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
@@ -87,7 +87,6 @@
 ;  V75 cse0         [V75,T09] (  3, 24   )     int  ->  r12         "CSE - aggressive"
 ;  V76 cse1         [V76,T01] (  2,285.44)   byref  ->   r8         hoist "CSE - aggressive"
 ;  V77 cse2         [V77,T17] (  2,  9   )     int  ->   lr         hoist "CSE - moderate"
-;  V78 cse3         [V78,T41] (  8,  0   )     ref  ->  registers   multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 28
 
@@ -127,17 +126,15 @@ G_M43263_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M43263_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r3]
-            movw    r7, 0xd1ff
-            movt    r7, 0xd1ff
-            mov     r0, r7
-            ; gcrRegs +[r0]
-                       ;; size=10 bbWeight=0 PerfScore 0.00
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 G_M43263_IG07:        ; bbWeight=0, epilog, nogc, extend
             add     sp, 28
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=0 PerfScore 0.00
 G_M43263_IG08:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[r0] +[r3]
+            ; gcrRegs +[r3]
             ldr     r2, [r3]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -364,17 +361,14 @@ G_M43263_IG31:        ; bbWeight=1, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byre
 G_M43263_IG32:        ; bbWeight=0, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
-            movw    r7, 0xd1ff
-            movt    r7, 0xd1ff
-            mov     r1, r7
-            ; gcrRegs +[r1]
+            movw    r1, 0xd1ff
+            movt    r1, 0xd1ff
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r1]
             ; gcr arg pop 0
-                       ;; size=30 bbWeight=0 PerfScore 0.00
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M43263_IG33:        ; bbWeight=1, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref, isz
             cmp     r10, 0
             bne     SHORT G_M43263_IG35
@@ -499,7 +493,7 @@ G_M43263_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 672, prolog size 20, PerfScore 1913.24, instruction count 245, allocated bytes for code 672 (MethodHash=a82e5700) for method System.Reflection.Internal.EncodingHelper:DecodeUtf8(uint,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
+Total bytes of code 668, prolog size 20, PerfScore 1913.24, instruction count 243, allocated bytes for code 668 (MethodHash=a82e5700) for method System.Reflection.Internal.EncodingHelper:DecodeUtf8(uint,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -511,7 +505,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 336 (0x00150) Actual length = 672 (0x0002a0)
+  Function Length   : 334 (0x0014e) Actual length = 668 (0x00029c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-4 (-0.60%) : 83818.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(uint,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)

@@ -67,8 +67,8 @@
 ;  V55 tmp51        [V55,T33] (  4,  3   )     int  ->   r3         "Inline stloc first use temp"
 ;* V56 tmp52        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp53        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V58 tmp54        [V58,T42] (  2,  0   )     int  ->   r0        
-;  V59 tmp55        [V59,T43] (  2,  0   )     int  ->   r0        
+;  V58 tmp54        [V58,T41] (  2,  0   )     int  ->   r0        
+;  V59 tmp55        [V59,T42] (  2,  0   )     int  ->   r0        
 ;* V60 tmp56        [V60    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V61 tmp57        [V61    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V62 tmp58        [V62,T36] (  2,  2   )   byref  ->   r1         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
@@ -87,7 +87,6 @@
 ;  V75 cse0         [V75,T09] (  3, 24   )     int  ->  r12         "CSE - aggressive"
 ;  V76 cse1         [V76,T01] (  2,285.44)   byref  ->   r8         hoist "CSE - aggressive"
 ;  V77 cse2         [V77,T17] (  2,  9   )     int  ->   lr         hoist "CSE - moderate"
-;  V78 cse3         [V78,T41] (  8,  0   )     ref  ->  registers   multi-def "CSE - conservative"
 ;
 ; Lcl frame size = 28
 
@@ -127,17 +126,15 @@ G_M43263_IG05:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M43263_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r3]
-            movw    r7, 0xd1ff
-            movt    r7, 0xd1ff
-            mov     r0, r7
-            ; gcrRegs +[r0]
-                       ;; size=10 bbWeight=0 PerfScore 0.00
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 G_M43263_IG07:        ; bbWeight=0, epilog, nogc, extend
             add     sp, 28
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=0 PerfScore 0.00
 G_M43263_IG08:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[r0] +[r3]
+            ; gcrRegs +[r3]
             ldr     r2, [r3]
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -364,17 +361,14 @@ G_M43263_IG31:        ; bbWeight=1, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byre
 G_M43263_IG32:        ; bbWeight=0, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
-            movw    r7, 0xd1ff
-            movt    r7, 0xd1ff
-            mov     r1, r7
-            ; gcrRegs +[r1]
+            movw    r1, 0xd1ff
+            movt    r1, 0xd1ff
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r1]
             ; gcr arg pop 0
-                       ;; size=30 bbWeight=0 PerfScore 0.00
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M43263_IG33:        ; bbWeight=1, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref, isz
             cmp     r10, 0
             bne     SHORT G_M43263_IG35
@@ -499,7 +493,7 @@ G_M43263_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 672, prolog size 20, PerfScore 1913.24, instruction count 245, allocated bytes for code 672 (MethodHash=a82e5700) for method System.Reflection.Internal.EncodingHelper:DecodeUtf8(uint,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
+Total bytes of code 668, prolog size 20, PerfScore 1913.24, instruction count 243, allocated bytes for code 668 (MethodHash=a82e5700) for method System.Reflection.Internal.EncodingHelper:DecodeUtf8(uint,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -511,7 +505,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 336 (0x00150) Actual length = 672 (0x0002a0)
+  Function Length   : 334 (0x0014e) Actual length = 668 (0x00029c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+6 (+1.86%) : 25081.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:CanLockTheFile(int,int):ubyte:this (Tier1)

@@ -144,9 +144,8 @@
 ;* V132 tmp128      [V132    ] (  0,  0   )     ref  ->  zero-ref    single-def "V101.[000..004)"
 ;* V133 tmp129      [V133    ] (  0,  0   )     ref  ->  zero-ref    single-def "V101.[004..008)"
 ;* V134 tmp130      [V134    ] (  0,  0   )   ubyte  ->  zero-ref    "V101.[008..009)"
-;  V135 cse0        [V135,T11] (  3,  0   )     ref  ->   r1         "CSE - conservative"
-;* V136 rat0        [V136    ] (  0,  0   )     int  ->  zero-ref    "field V64.lo (fldOffset=0x0)" P-INDEP
-;* V137 rat1        [V137    ] (  0,  0   )     int  ->  zero-ref    "field V64.hi (fldOffset=0x4)" P-INDEP
+;* V135 rat0        [V135    ] (  0,  0   )     int  ->  zero-ref    "field V64.lo (fldOffset=0x0)" P-INDEP
+;* V136 rat1        [V136    ] (  0,  0   )     int  ->  zero-ref    "field V64.hi (fldOffset=0x4)" P-INDEP
 ;
 ; Lcl frame size = 44
 
@@ -316,20 +315,19 @@ G_M55442_IG19:        ; bbWeight=1, epilog, nogc, extend
                        ;; size=6 bbWeight=1 PerfScore 2.00
 G_M55442_IG20:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r4]
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
             b       SHORT G_M55442_IG05
-                       ;; size=24 bbWeight=0 PerfScore 0.00
+                       ;; size=30 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 322, prolog size 28, PerfScore 107.00, instruction count 125, allocated bytes for code 322 (MethodHash=e8c8276d) for method Microsoft.Win32.SafeHandles.SafeFileHandle:CanLockTheFile(int,int):ubyte:this (Tier1)
+Total bytes of code 328, prolog size 28, PerfScore 107.00, instruction count 126, allocated bytes for code 328 (MethodHash=e8c8276d) for method Microsoft.Win32.SafeHandles.SafeFileHandle:CanLockTheFile(int,int):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -341,7 +339,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 161 (0x000a1) Actual length = 322 (0x000142)
+  Function Length   : 164 (0x000a4) Actual length = 328 (0x000148)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+6 (+1.86%) : 127590.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:CanLockTheFile(int,int):ubyte:this (Tier1)

@@ -144,9 +144,8 @@
 ;* V132 tmp128      [V132    ] (  0,  0   )     ref  ->  zero-ref    single-def "V101.[000..004)"
 ;* V133 tmp129      [V133    ] (  0,  0   )     ref  ->  zero-ref    single-def "V101.[004..008)"
 ;* V134 tmp130      [V134    ] (  0,  0   )   ubyte  ->  zero-ref    "V101.[008..009)"
-;  V135 cse0        [V135,T11] (  3,  0   )     ref  ->   r1         "CSE - conservative"
-;* V136 rat0        [V136    ] (  0,  0   )     int  ->  zero-ref    "field V64.lo (fldOffset=0x0)" P-INDEP
-;* V137 rat1        [V137    ] (  0,  0   )     int  ->  zero-ref    "field V64.hi (fldOffset=0x4)" P-INDEP
+;* V135 rat0        [V135    ] (  0,  0   )     int  ->  zero-ref    "field V64.lo (fldOffset=0x0)" P-INDEP
+;* V136 rat1        [V136    ] (  0,  0   )     int  ->  zero-ref    "field V64.hi (fldOffset=0x4)" P-INDEP
 ;
 ; Lcl frame size = 44
 
@@ -318,20 +317,19 @@ G_M55442_IG20:        ; bbWeight=1, epilog, nogc, extend
                        ;; size=6 bbWeight=1 PerfScore 2.00
 G_M55442_IG21:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs +[r4]
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
             b       SHORT G_M55442_IG05
-                       ;; size=24 bbWeight=0 PerfScore 0.00
+                       ;; size=30 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 322, prolog size 28, PerfScore 107.00, instruction count 125, allocated bytes for code 322 (MethodHash=e8c8276d) for method Microsoft.Win32.SafeHandles.SafeFileHandle:CanLockTheFile(int,int):ubyte:this (Tier1)
+Total bytes of code 328, prolog size 28, PerfScore 107.00, instruction count 126, allocated bytes for code 328 (MethodHash=e8c8276d) for method Microsoft.Win32.SafeHandles.SafeFileHandle:CanLockTheFile(int,int):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -343,7 +341,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 161 (0x000a1) Actual length = 322 (0x000142)
+  Function Length   : 164 (0x000a4) Actual length = 328 (0x000148)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+6 (+2.75%) : 667.dasm - System.Runtime.CompilerServices.ConditionalWeakTable2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable2[System.Canon,System.Canon]):this (Tier0-FullOpts)

@@ -18,9 +18,8 @@
 ;* V07 tmp4         [V07,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V08 tmp5         [V08,T00] (  3, 24   )     ref  ->   r3         "arr expr"
 ;  V09 cse0         [V09,T02] (  4, 10   )     ref  ->   r1         "CSE - aggressive"
-;  V10 cse1         [V10,T09] (  3,  0   )     ref  ->   r1         "CSE - moderate"
-;  V11 rat0         [V11,T06] (  3,  4.40)     int  ->   r0         "Spilling to split statement for tree"
-;  V12 rat1         [V12,T05] (  3,  5.60)     int  ->   r1         "fgMakeTemp is creating a new local variable"
+;  V10 rat0         [V10,T06] (  3,  4.40)     int  ->   r0         "Spilling to split statement for tree"
+;  V11 rat1         [V11,T05] (  3,  5.60)     int  ->   r1         "fgMakeTemp is creating a new local variable"
 ;  TEMP_01                                     ref  ->  [r11-0x10]
 ;
 ; Lcl frame size = 8
@@ -41,17 +40,16 @@ G_M9941_IG02:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, by
             bne     SHORT G_M9941_IG04
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M9941_IG03:        ; bbWeight=0, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=22 bbWeight=0 PerfScore 0.00
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M9941_IG04:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -158,7 +156,7 @@ G_M9941_IG11:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byre
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 218, prolog size 20, PerfScore 99.00, instruction count 79, allocated bytes for code 218 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier0-FullOpts)
+Total bytes of code 224, prolog size 20, PerfScore 99.00, instruction count 80, allocated bytes for code 224 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -170,7 +168,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 109 (0x0006d) Actual length = 218 (0x0000da)
+  Function Length   : 112 (0x00070) Actual length = 224 (0x0000e0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

coreclr_tests.run.linux.arm.checked.mch

-24 (-2.96%) : 375660.dasm - System.Buffers.SharedArrayPool`1[float]:Return(float[],ubyte):this (FullOpts)

@@ -10,31 +10,31 @@
 ;
 ;  V00 this         [V00,T09] (  8,  5   )     ref  ->   r5         this class-hnd single-def <System.Buffers.SharedArrayPool`1[float]>
 ;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->   r4         class-hnd single-def <float[]>
-;  V02 arg2         [V02,T12] (  3,  2.50)   ubyte  ->   r6         single-def
+;  V02 arg2         [V02,T11] (  3,  2.50)   ubyte  ->   r6         single-def
 ;  V03 loc0         [V03,T10] (  8,  5   )     int  ->   r8        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V05 loc2         [V05,T20] (  4,  2.50)   ubyte  ->  [sp+0x2C] 
-;  V06 loc3         [V06,T23] (  3,  2   )   ubyte  ->  [sp+0x28] 
-;  V07 loc4         [V07,T16] (  4,  3   )     ref  ->   r9         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V08 loc5         [V08,T21] (  4,  2   )   byref  ->   r2         single-def
-;  V09 loc6         [V09,T18] (  3,  3   )     ref  ->   r6         class-hnd single-def <System.Array>
+;  V05 loc2         [V05,T19] (  4,  2.50)   ubyte  ->  r10        
+;  V06 loc3         [V06,T22] (  3,  2   )   ubyte  ->  [sp+0x24] 
+;  V07 loc4         [V07,T15] (  4,  3   )     ref  ->   r9         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+;  V08 loc5         [V08,T20] (  4,  2   )   byref  ->   r2         single-def
+;  V09 loc6         [V09,T17] (  3,  3   )     ref  ->   r6         class-hnd single-def <System.Array>
 ;* V10 loc7         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Buffers.SharedArrayPoolPartitions>
 ;  V11 OutArgs      [V11    ] (  1,  1   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T15] (  2,  4   )     ref  ->   r9         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V13 tmp2         [V13,T14] (  5,  4   )     ref  ->   r9        
-;  V14 tmp3         [V14,T25] (  2,  2   )     int  ->   r6         "impAppendStmt"
-;  V15 tmp4         [V15,T26] (  2,  2   )     int  ->  [sp+0x24]  spill-single-def "impAppendStmt"
-;  V16 tmp5         [V16,T27] (  2,  2   )     int  ->   r6         "impAppendStmt"
-;  V17 tmp6         [V17,T28] (  2,  2   )     int  ->   r7         "impAppendStmt"
+;  V12 tmp1         [V12,T14] (  2,  4   )     ref  ->   r9         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V13 tmp2         [V13,T13] (  5,  4   )     ref  ->   r9        
+;  V14 tmp3         [V14,T24] (  2,  2   )     int  ->   r6         "impAppendStmt"
+;  V15 tmp4         [V15,T25] (  2,  2   )     int  ->  [sp+0x20]  spill-single-def "impAppendStmt"
+;  V16 tmp5         [V16,T26] (  2,  2   )     int  ->   r6         "impAppendStmt"
+;  V17 tmp6         [V17,T27] (  2,  2   )     int  ->   r7         "impAppendStmt"
 ;* V18 tmp7         [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V19 tmp8         [V19    ] (  0,  0   )     int  ->  zero-ref   
 ;* V20 tmp9         [V20    ] (  0,  0   )     int  ->  zero-ref   
-;  V21 tmp10        [V21,T36] (  2,  1   )     int  ->   r3        
+;  V21 tmp10        [V21,T35] (  2,  1   )     int  ->   r3        
 ;* V22 tmp11        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp13        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp14        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp15        [V26,T31] (  3,  1.50)     int  ->   r0        
+;  V26 tmp15        [V26,T30] (  3,  1.50)     int  ->   r0        
 ;* V27 tmp16        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V28 tmp17        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp18        [V29    ] (  0,  0   )     int  ->  zero-ref   
@@ -45,47 +45,46 @@
 ;* V34 tmp23        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp24        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp25        [V36    ] (  0,  0   )     int  ->  zero-ref   
-;  V37 tmp26        [V37,T32] (  3,  1.50)     int  ->   r1        
-;  V38 tmp27        [V38,T29] (  2,  2   )     int  ->   r6         "impAppendStmt"
+;  V37 tmp26        [V37,T31] (  3,  1.50)     int  ->   r1        
+;  V38 tmp27        [V38,T28] (  2,  2   )     int  ->   r6         "impAppendStmt"
 ;* V39 tmp28        [V39    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V40 tmp29        [V40,T24] (  2,  2   )     ref  ->   r3         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V41 tmp30        [V41,T22] (  4,  2   )     ref  ->   r3        
-;  V42 tmp31        [V42,T39] (  3,  0   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V40 tmp29        [V40,T23] (  2,  2   )     ref  ->   r3         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V41 tmp30        [V41,T21] (  4,  2   )     ref  ->   r3        
+;  V42 tmp31        [V42,T38] (  3,  0   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V43 tmp32        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp33        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V45 tmp34        [V45,T33] (  3,  1.50)     int  ->  [sp+0x20]  spill-single-def "Inline stloc first use temp"
+;  V45 tmp34        [V45,T32] (  3,  1.50)     int  ->  [sp+0x1C]  spill-single-def "Inline stloc first use temp"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp36        [V47    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V48 tmp37        [V48,T34] (  3,  1.50)   ubyte  ->   r6         "Inline return value spill temp"
-;  V49 tmp38        [V49,T11] (  3,  4.50)     ref  ->   r9         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V50 tmp39        [V50,T01] (  7, 22   )     int  ->  [sp+0x1C]  "Inline stloc first use temp"
-;  V51 tmp40        [V51,T05] (  4, 12   )     int  ->  [sp+0x18]  "Inline stloc first use temp"
-;  V52 tmp41        [V52,T02] (  2, 16   )     int  ->  r10         "dup spill"
+;  V48 tmp37        [V48,T33] (  3,  1.50)   ubyte  ->   r6         "Inline return value spill temp"
+;  V49 tmp38        [V49,T02] (  6, 16.50)     ref  ->   r9         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V50 tmp39        [V50,T01] (  7, 22   )     int  ->  [sp+0x18]  "Inline stloc first use temp"
+;  V51 tmp40        [V51,T05] (  4, 12   )     int  ->  [sp+0x14]  "Inline stloc first use temp"
+;  V52 tmp41        [V52,T03] (  2, 16   )     int  ->   r3         "dup spill"
 ;* V53 tmp42        [V53    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V54 tmp43        [V54,T40] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
-;  V55 tmp44        [V55,T17] (  4,  3   )     int  ->   r3         "dup spill"
+;  V54 tmp43        [V54,T39] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
+;  V55 tmp44        [V55,T16] (  4,  3   )     int  ->   r3         "dup spill"
 ;* V56 tmp45        [V56    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V58 tmp47        [V58,T07] (  3, 10   )   ubyte  ->  [sp+0x14]  "Inline stloc first use temp"
-;  V59 tmp48        [V59,T00] (  8, 56   )     ref  ->  [sp+0x0C]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V58 tmp47        [V58,T07] (  3, 10   )   ubyte  ->  [sp+0x10]  "Inline stloc first use temp"
+;  V59 tmp48        [V59,T00] (  8, 56   )     ref  ->  [sp+0x08]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V60 tmp49        [V60,T06] (  3, 10   )     ref  ->   r1         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V61 tmp50        [V61,T03] (  5, 14   )     int  ->   r2         "Inline stloc first use temp"
-;  V62 tmp51        [V62,T30] (  2,  2   )     int  ->   r0         "Inlining Arg"
-;* V63 tmp52        [V63,T37] (  0,  0   )     ref  ->  zero-ref    single-def "field V39.Array (fldOffset=0x0)" P-INDEP
-;* V64 tmp53        [V64,T38] (  0,  0   )     int  ->  zero-ref    "field V39.MillisecondsTimeStamp (fldOffset=0x4)" P-INDEP
-;  V65 tmp54        [V65,T19] (  3,  3   )     ref  ->   r0         single-def "arr expr"
-;  V66 tmp55        [V66,T41] (  2,  0   )     ref  ->   r5         single-def "argument with side effect"
-;  V67 tmp56        [V67,T42] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
-;  V68 cse0         [V68,T35] (  3,  1.50)     int  ->   r0         "CSE - conservative"
-;  V69 cse1         [V69,T04] (  5, 12   )     int  ->  [sp+0x10]  spill-single-def "CSE - aggressive"
-;  V70 cse2         [V70,T13] (  6,  4   )     int  ->   r7         "CSE - moderate"
+;  V61 tmp50        [V61,T04] (  5, 14   )     int  ->  [sp+0x0C]  spill-single-def "Inline stloc first use temp"
+;  V62 tmp51        [V62,T29] (  2,  2   )     int  ->   r0         "Inlining Arg"
+;* V63 tmp52        [V63,T36] (  0,  0   )     ref  ->  zero-ref    single-def "field V39.Array (fldOffset=0x0)" P-INDEP
+;* V64 tmp53        [V64,T37] (  0,  0   )     int  ->  zero-ref    "field V39.MillisecondsTimeStamp (fldOffset=0x4)" P-INDEP
+;  V65 tmp54        [V65,T18] (  3,  3   )     ref  ->   r0         single-def "arr expr"
+;  V66 tmp55        [V66,T40] (  2,  0   )     ref  ->   r5         single-def "argument with side effect"
+;  V67 tmp56        [V67,T41] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
+;  V68 cse0         [V68,T34] (  3,  1.50)     int  ->   r0         "CSE - conservative"
+;  V69 cse1         [V69,T12] (  6,  4   )     int  ->   r7         "CSE - moderate"
 ;
-; Lcl frame size = 52
+; Lcl frame size = 44
 
 G_M43855_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 52
-            add     r11, sp, 80
+            sub     sp, 44
+            add     r11, sp, 72
             mov     r5, r0
             ; gcrRegs +[r5]
             mov     r4, r1
@@ -134,7 +133,7 @@ G_M43855_IG04:        ; bbWeight=1, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000 {}
             ; gcrRegs -[r0]
             mov     r10, 0
             movs    r3, 1
-            str     r3, [sp+0x28]  // [V06 loc3]
+            str     r3, [sp+0x24]  // [V06 loc3]
             ldr     r0, [r9+0x04]
             cmp     r0, r8
             bls     G_M43855_IG21
@@ -158,7 +157,7 @@ G_M43855_IG06:        ; bbWeight=0.50, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000
             and     r0, r8, 31
             movs    r1, 16
             lsl     r2, r1, r0
-            str     r2, [sp+0x20]  // [V45 tmp34]
+            str     r2, [sp+0x1C]  // [V45 tmp34]
             cmp     r2, 0
             bge     SHORT G_M43855_IG07
             movw    r0, 0xd1ff
@@ -172,7 +171,7 @@ G_M43855_IG06:        ; bbWeight=0.50, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000
             ; gcr arg pop 0
                        ;; size=48 bbWeight=0.50 PerfScore 7.50
 G_M43855_IG07:        ; bbWeight=0.50, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000 {}, byref, isz
-            ldr     r2, [sp+0x20]  // [V45 tmp34]
+            ldr     r2, [sp+0x1C]  // [V45 tmp34]
             cmp     r6, r2
             bne     G_M43855_IG30
             lsl     r1, r8, 3
@@ -259,55 +258,55 @@ G_M43855_IG11:        ; bbWeight=0, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000
             ; gcr arg pop 0
             mov     r3, r0
             movs    r2, 0
-            str     r2, [sp+0x18]  // [V51 tmp40]
-            ldr     r1, [r9+0x04]
-            str     r1, [sp+0x10]  // [V69 cse1]
-            cmp     r1, 0
-            str     r10, [sp+0x2C] // [V05 loc2]
+            str     r2, [sp+0x14]  // [V51 tmp40]
+            ldr     r0, [r9+0x04]
+            cmp     r0, 0
             ble     SHORT G_M43855_IG18
-                       ;; size=32 bbWeight=0 PerfScore 0.00
+                       ;; size=26 bbWeight=0 PerfScore 0.00
 G_M43855_IG12:        ; bbWeight=4, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
-            cmp     r3, r1
+            ldr     r0, [r9+0x04]
+            cmp     r3, r0
             bhs     G_M43855_IG28
             add     r0, r9, 8
             ; byrRegs +[r0]
-            str     r3, [sp+0x1C]  // [V50 tmp39]
-            lsl     lr, r3, 2
-            ldr     lr, [r0+lr]
-            ; gcrRegs +[lr]
-            str     lr, [sp+0x0C]  // [V59 tmp48]
-            ; GC ptr vars +{V59}
-            ldrsb   r0, [lr]
-            ; byrRegs -[r0]
-            mov     r12, 0
-            str     r12, [sp+0x14] // [V58 tmp47]
-            mov     r0, lr
-            ; gcrRegs +[r0]
-            movw    r10, 0xd1ff
-            movt    r10, 0xd1ff
-            blx     r10        // <unknown method>
-            ; gcrRegs -[r0 lr]
-            ; gcr arg pop 0
-            ldr     r10, [sp+0x0C] // [V59 tmp48]
-            ; gcrRegs +[r10]
-            ldr     r1, [r10+0x04]
+            str     r3, [sp+0x18]  // [V50 tmp39]
+            lsls    r1, r3, 2
+            ldr     r1, [r0+r1]
             ; gcrRegs +[r1]
-            ldr     r2, [r10+0x0C]
+            str     r1, [sp+0x08]  // [V59 tmp48]
+            ; GC ptr vars +{V59}
+            ldrsb   r0, [r1]
+            ; byrRegs -[r0]
+            mov     lr, 0
+            str     lr, [sp+0x10]  // [V58 tmp47]
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            movw    r12, 0xd1ff
+            movt    r12, 0xd1ff
+            blx     r12        // <unknown method>
+            ; gcrRegs -[r0-r1]
+            ; gcr arg pop 0
+            ldr     r2, [sp+0x08]  // [V59 tmp48]
+            ; gcrRegs +[r2]
+            ldr     r1, [r2+0x04]
+            ; gcrRegs +[r1]
+            ldr     r3, [r2+0x0C]
+            str     r3, [sp+0x0C]  // [V61 tmp50]
             ldr     r0, [r1+0x04]
-            cmp     r0, r2
+            cmp     r0, r3
             bls     SHORT G_M43855_IG15
-                       ;; size=66 bbWeight=4 PerfScore 80.00
-G_M43855_IG13:        ; bbWeight=2, gcrefRegs=0672 {r1 r4 r5 r6 r9 r10}, byrefRegs=0000 {}, byref, isz
-            cmp     r2, 0
+                       ;; size=60 bbWeight=4 PerfScore 88.00
+G_M43855_IG13:        ; bbWeight=2, gcrefRegs=0276 {r1 r2 r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
             bne     SHORT G_M43855_IG14
             movs    r0, 0
-            str     r0, [r10+0x10]
-                       ;; size=10 bbWeight=2 PerfScore 8.00
-G_M43855_IG14:        ; bbWeight=2, gcrefRegs=0672 {r1 r4 r5 r6 r9 r10}, byrefRegs=0000 {}, byref
+            str     r0, [r2+0x10]
+                       ;; size=8 bbWeight=2 PerfScore 8.00
+G_M43855_IG14:        ; bbWeight=2, gcrefRegs=0276 {r1 r2 r4 r5 r6 r9}, byrefRegs=0000 {}, byref
             adds    r1, 8
             ; gcrRegs -[r1]
             ; byrRegs +[r1]
-            lsls    r0, r2, 2
+            lsls    r0, r3, 2
             adds    r0, r1, r0
             ; byrRegs +[r0]
             mov     r1, r6
@@ -318,40 +317,42 @@ G_M43855_IG14:        ; bbWeight=2, gcrefRegs=0672 {r1 r4 r5 r6 r9 r10}, byrefRe
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            adds    r0, r2, 1
-            str     r0, [r10+0x0C]
-            mov     r12, 1
-            str     r12, [sp+0x14] // [V58 tmp47]
-                       ;; size=32 bbWeight=2 PerfScore 22.00
-G_M43855_IG15:        ; bbWeight=4, gcrefRegs=0670 {r4 r5 r6 r9 r10}, byrefRegs=0000 {}, byref, isz
...

-12 (-2.83%) : 143234.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c:<.ctor>b_171(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte:this (Tier1)

@@ -10,32 +10,32 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c>
-;  V01 arg1         [V01,T05] (  5,  4   )  struct (20) [sp+0x24]  do-not-enreg[S] ld-addr-op single-def <Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]>
+;  V01 arg1         [V01,T04] (  5,  4   )  struct (20) [sp+0x1C]  do-not-enreg[S] ld-addr-op single-def <Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T16] (  2,  0   )     ref  ->   r2         class-hnd single-def "dup spill" <<unknown class>>
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct ( 4) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]>
-;  V05 tmp3         [V05,T13] (  4,  0   )     ref  ->   r2        
-;  V06 tmp4         [V06,T14] (  4,  0   )     ref  ->   r5         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V07 tmp5         [V07,T10] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
+;  V05 tmp3         [V05,T12] (  4,  0   )     ref  ->   r2        
+;  V06 tmp4         [V06,T13] (  4,  0   )     ref  ->   r5         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V07 tmp5         [V07,T09] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
 ;* V08 tmp6         [V08    ] (  0,  0   )  struct ( 4) zero-ref    "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]>
-;  V09 tmp7         [V09,T06] (  3,  3   )   ubyte  ->   r0         "Inline return value spill temp"
+;  V09 tmp7         [V09,T05] (  3,  3   )   ubyte  ->   r0         "Inline return value spill temp"
 ;* V10 tmp8         [V10    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]>
 ;  V11 tmp9         [V11,T17] (  2,  0   )     ref  ->   r6         class-hnd single-def "dup spill" <<unknown class>>
 ;* V12 tmp10        [V12    ] (  0,  0   )  struct ( 4) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]>
 ;* V13 tmp11        [V13    ] (  0,  0   )  struct ( 4) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]>
 ;  V14 tmp12        [V14,T02] (  6, 16   )     ref  ->   r6        
-;  V15 tmp13        [V15,T12] (  5,  0   )     ref  ->   r6         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V16 tmp14        [V16,T11] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
+;  V15 tmp13        [V15,T11] (  5,  0   )     ref  ->   r6         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V16 tmp14        [V16,T10] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
 ;* V17 tmp15        [V17    ] (  0,  0   )  struct ( 4) zero-ref    "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]>
 ;  V18 tmp16        [V18,T15] (  3,  0   )     ref  ->   r1         class-hnd exact single-def "Inlining Arg" <<unknown class>>
-;  V19 tmp17        [V19,T07] (  3,  3   )   ubyte  ->   r0         "Inline return value spill temp"
+;  V19 tmp17        [V19,T06] (  3,  3   )   ubyte  ->   r0         "Inline return value spill temp"
 ;* V20 tmp18        [V20    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]>
-;  V21 tmp19        [V21,T04] (  2,  8   )     ref  ->   r4         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V22 tmp20        [V22,T01] (  5, 32   )     int  ->   r7         "Inline stloc first use temp"
+;  V21 tmp19        [V21,T03] (  4, 16   )     ref  ->   r4         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V22 tmp20        [V22,T01] (  5, 32   )     int  ->   r5         "Inline stloc first use temp"
 ;* V23 tmp21        [V23    ] (  0,  0   )  struct ( 8) zero-ref    "Inline stloc first use temp" <Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]>
 ;  V24 tmp22        [V24,T18] (  2,  0   )     ref  ->   r4         single-def "field V04.array (fldOffset=0x0)" P-INDEP
-;  V25 tmp23        [V25,T09] (  3,  2   )     ref  ->   r3         single-def "field V08.array (fldOffset=0x0)" P-INDEP
-;  V26 tmp24        [V26,T08] (  4,  2   )     ref  ->   r4         single-def "field V10.array (fldOffset=0x0)" P-INDEP
+;  V25 tmp23        [V25,T08] (  3,  2   )     ref  ->   r3         single-def "field V08.array (fldOffset=0x0)" P-INDEP
+;  V26 tmp24        [V26,T07] (  5,  2   )     ref  ->   r4         single-def "field V10.array (fldOffset=0x0)" P-INDEP
 ;* V27 tmp25        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V12.array (fldOffset=0x0)" P-INDEP
 ;* V28 tmp26        [V28    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V13.array (fldOffset=0x0)" P-INDEP
 ;* V29 tmp27        [V29    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V17.array (fldOffset=0x0)" P-INDEP
@@ -44,21 +44,20 @@
 ;* V32 tmp30        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "field V23.IsOptional (fldOffset=0x4)" P-INDEP
 ;  V33 tmp31        [V33,T00] (  3, 48   )  struct ( 8) [sp+0x00]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]>
 ;* V34 cse0         [V34,T19] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
-;  V35 cse1         [V35,T03] (  4,  8   )     int  ->   r5         "CSE - aggressive"
+;  V35 cse1         [V35,T14] (  4,  0   )     int  ->   r5         "CSE - aggressive"
 ;
-; Lcl frame size = 12
+; Lcl frame size = 8
 
 G_M10801_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r1,r2,r3}
-            push    {r4,r5,r6,r7,r11,lr}
-            sub     sp, 12
-            add     r11, sp, 28
+            push    {r2,r3,r4,r5,r6,r11,lr}
+            add     r11, sp, 20
             movs    r1, 0
             str     r1, [sp]
             str     r1, [sp+0x04]
-                       ;; size=18 bbWeight=1 PerfScore 7.00
+                       ;; size=16 bbWeight=1 PerfScore 6.00
 G_M10801_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ldr     r3, [sp+0x30]
+            ldr     r3, [sp+0x28]
             ; gcrRegs +[r3]
             cmp     r3, 0
             beq     SHORT G_M10801_IG06
@@ -78,14 +77,14 @@ G_M10801_IG05:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             b       SHORT G_M10801_IG18
                        ;; size=2 bbWeight=0 PerfScore 0.00
 G_M10801_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-            ldr     r4, [sp+0x34]
+            ldr     r4, [sp+0x2C]
             ; gcrRegs +[r4]
             cmp     r4, 0
             beq     SHORT G_M10801_IG10
                        ;; size=6 bbWeight=1 PerfScore 3.00
 G_M10801_IG07:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            ldr     r5, [r4+0x04]
-            cmp     r5, 0
+            ldr     r0, [r4+0x04]
+            cmp     r0, 0
             beq     SHORT G_M10801_IG08
             movs    r0, 0
             b       SHORT G_M10801_IG09
@@ -101,14 +100,13 @@ G_M10801_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movs    r0, 0
                        ;; size=2 bbWeight=1 PerfScore 1.00
 G_M10801_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            add     sp, 12
-            pop     {r4,r5,r6,r7,r11,lr}
+            pop     {r2,r3,r4,r5,r6,r11,lr}
             add     sp, 12
             bx      lr
-                       ;; size=10 bbWeight=1 PerfScore 4.00
+                       ;; size=8 bbWeight=1 PerfScore 3.00
 G_M10801_IG12:        ; bbWeight=8, gcVars=00000000 {}, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs +[r4 r6]
-            lsls    r1, r7, 3
+            lsls    r1, r5, 3
             adds    r1, 8
             adds    r1, r4, r1
             ; byrRegs +[r1]
@@ -131,10 +129,11 @@ G_M10801_IG14:        ; bbWeight=8, isz, extend
             ; gcrRegs -[r0-r1]
             cmp     r0, 0
             bne     SHORT G_M10801_IG16
-            adds    r7, r7, 1
-            cmp     r5, r7
+            adds    r5, r5, 1
+            ldr     r0, [r4+0x04]
+            cmp     r0, r5
             bgt     SHORT G_M10801_IG12
-                       ;; size=20 bbWeight=8 PerfScore 80.00
+                       ;; size=22 bbWeight=8 PerfScore 88.00
 G_M10801_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r4 r6]
             movs    r0, 0
@@ -153,7 +152,7 @@ G_M10801_IG18:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             movt    r0, 0xd1ff
             ldr     r2, [r0]
             ; gcrRegs +[r2]
-            ldr     r4, [sp+0x30]
+            ldr     r4, [sp+0x28]
             ; gcrRegs +[r4]
             cmp     r2, 0
             bne     SHORT G_M10801_IG19
@@ -213,9 +212,9 @@ G_M10801_IG20:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
-            ldr     r6, [r0]
+            movw    r5, 0xd1ff
+            movt    r5, 0xd1ff
+            ldr     r6, [r5]
             ; gcrRegs +[r6]
             cmp     r6, 0
             bne     SHORT G_M10801_IG22
@@ -227,9 +226,7 @@ G_M10801_IG20:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ; gcrRegs -[r6] +[r0]
             mov     r6, r0
             ; gcrRegs +[r6]
-            movw    r3, 0xd1ff
-            movt    r3, 0xd1ff
-            ldr     r1, [r3]
+            ldr     r1, [r5-0x04]
             ; gcrRegs +[r1]
             cmp     r1, 0
             bne     SHORT G_M10801_IG21
@@ -239,7 +236,7 @@ G_M10801_IG20:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             blx     r3     // System.MulticastDelegate:ThrowNullThisInDelegateToInstance()
             ; gcrRegs -[r0-r1 r4 r6]
             bkpt    
-                       ;; size=86 bbWeight=0 PerfScore 0.00
+                       ;; size=80 bbWeight=0 PerfScore 0.00
 G_M10801_IG21:        ; bbWeight=0, gcrefRegs=0052 {r1 r4 r6}, byrefRegs=0000 {}, byref
             ; gcrRegs +[r1 r4 r6]
             adds    r0, r6, 4
@@ -252,16 +249,16 @@ G_M10801_IG21:        ; bbWeight=0, gcrefRegs=0052 {r1 r4 r6}, byrefRegs=0000 {}
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
             str     r1, [r6+0x0C]
-            movw    r0, 0xd1ff
-            movt    r0, 0xd1ff
+            mov     r0, r5
             mov     r1, r6
             ; gcrRegs +[r1]
             movw    r12, 0xd1ff
             movt    r12, 0xd1ff
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
-                       ;; size=42 bbWeight=0 PerfScore 0.00
+                       ;; size=36 bbWeight=0 PerfScore 0.00
 G_M10801_IG22:        ; bbWeight=0, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r4+0x04]
             cmp     r6, 0
             bne     SHORT G_M10801_IG23
             movw    r0, 0xd1ff
@@ -277,26 +274,26 @@ G_M10801_IG22:        ; bbWeight=0, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, b
             blx     r3     // System.Collections.Immutable.Requires:FailArgumentNullException(System.String)
             ; gcrRegs -[r0]
             bkpt    
-                       ;; size=40 bbWeight=0 PerfScore 0.00
+                       ;; size=42 bbWeight=0 PerfScore 0.00
 G_M10801_IG23:        ; bbWeight=0, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[r4 r6]
-            movs    r7, 0
-            cmp     r5, 0
+            movs    r5, 0
+            ldr     r1, [r4+0x04]
+            cmp     r1, 0
             ble     G_M10801_IG15
             b       SHORT G_M10801_IG12
-                       ;; size=10 bbWeight=0 PerfScore 0.00
+                       ;; size=12 bbWeight=0 PerfScore 0.00
 G_M10801_IG24:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r4 r6]
             movs    r0, 1
                        ;; size=2 bbWeight=0 PerfScore 0.00
 G_M10801_IG25:        ; bbWeight=0, epilog, nogc, extend
-            add     sp, 12
-            pop     {r4,r5,r6,r7,r11,lr}
+            pop     {r2,r3,r4,r5,r6,r11,lr}
             add     sp, 12
             bx      lr
-                       ;; size=10 bbWeight=0 PerfScore 0.00
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 424, prolog size 18, PerfScore 158.00, instruction count 158, allocated bytes for code 424 (MethodHash=b48cd5ce) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c:<.ctor>b__17_1(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte:this (Tier1)
+Total bytes of code 412, prolog size 16, PerfScore 164.00, instruction count 155, allocated bytes for code 412 (MethodHash=b48cd5ce) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c:<.ctor>b__17_1(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -308,25 +305,25 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 212 (0x000d4) Actual length = 424 (0x0001a8)
+  Function Length   : 206 (0x000ce) Actual length = 412 (0x00019c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
   Condition                  : 14 (0xe) (always)
-  Epilog Start Index         : 6 (0x06)
+  Epilog Start Index         : 5 (0x05)
   ---- Scope 1
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
   Condition                  : 14 (0xe) (always)
-  Epilog Start Index         : 6 (0x06)
+  Epilog Start Index         : 5 (0x05)
   ---- Unwind codes ----
-    03          add sp, sp, #12                     ; opsize 16
-    A8 F0       pop {r4,r5,r6,r7,r11,lr}            ; opsize 32
+    A8 7C       pop {r2,r3,r4,r5,r6,r11,lr}         ; opsize 32
     EC 0E       pop {r1,r2,r3}                      ; opsize 16
     FF          end
-    ---- Epilog start at index 6 ----
-    03          add sp, sp, #12                     ; opsize 16
-    A8 F0       pop {r4,r5,r6,r7,r11,lr}            ; opsize 32
+    ---- Epilog start at index 5 ----
+    A8 7C       pop {r2,r3,r4,r5,r6,r11,lr}         ; opsize 32
     03          add sp, sp, #12                     ; opsize 16
...

-4 (-0.49%) : 178543.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this (Tier1)

@@ -14,28 +14,28 @@
 ;  V02 arg2         [V02,T12] (  3,  3   )   ubyte  ->   r6         single-def
 ;  V03 loc0         [V03,T11] (  8,  5   )     int  ->   r7        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V05 loc2         [V05,T23] (  4,  2   )   ubyte  ->   r9        
-;  V06 loc3         [V06,T27] (  3,  1.50)   ubyte  ->  r10        
-;  V07 loc4         [V07,T22] (  4,  2   )     ref  ->   r6         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V08 loc5         [V08,T15] (  4,  4   )   byref  ->   r2         single-def
-;  V09 loc6         [V09,T16] (  3,  4   )     ref  ->   r6         class-hnd single-def <System.Array>
+;  V05 loc2         [V05,T22] (  4,  2   )   ubyte  ->   r9        
+;  V06 loc3         [V06,T26] (  3,  1.50)   ubyte  ->  r10        
+;  V07 loc4         [V07,T21] (  4,  2   )     ref  ->   r6         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+;  V08 loc5         [V08,T14] (  4,  4   )   byref  ->   r2         single-def
+;  V09 loc6         [V09,T15] (  3,  4   )     ref  ->   r6         class-hnd single-def <System.Array>
 ;* V10 loc7         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Buffers.SharedArrayPoolPartitions>
 ;  V11 OutArgs      [V11    ] (  1,  1   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T17] (  2,  4   )     ref  ->   r8         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V12 tmp1         [V12,T16] (  2,  4   )     ref  ->   r8         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V13 tmp2         [V13,T13] (  5,  4.50)     ref  ->   r8        
-;  V14 tmp3         [V14,T38] (  2,  0   )     int  ->   r8         "impAppendStmt"
-;  V15 tmp4         [V15,T39] (  2,  0   )     int  ->  [sp+0x24]  spill-single-def "impAppendStmt"
-;  V16 tmp5         [V16,T40] (  2,  0   )     int  ->   r8         "impAppendStmt"
-;  V17 tmp6         [V17,T41] (  2,  0   )     int  ->   r4         "impAppendStmt"
+;  V14 tmp3         [V14,T37] (  2,  0   )     int  ->   r8         "impAppendStmt"
+;  V15 tmp4         [V15,T38] (  2,  0   )     int  ->  [sp+0x1C]  spill-single-def "impAppendStmt"
+;  V16 tmp5         [V16,T39] (  2,  0   )     int  ->   r8         "impAppendStmt"
+;  V17 tmp6         [V17,T40] (  2,  0   )     int  ->   r4         "impAppendStmt"
 ;* V18 tmp7         [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V19 tmp8         [V19    ] (  0,  0   )     int  ->  zero-ref   
 ;* V20 tmp9         [V20    ] (  0,  0   )     int  ->  zero-ref   
-;  V21 tmp10        [V21,T42] (  2,  0   )     int  ->   r3        
+;  V21 tmp10        [V21,T41] (  2,  0   )     int  ->   r3        
 ;* V22 tmp11        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp13        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp14        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp15        [V26,T33] (  3,  0   )     int  ->   r0        
+;  V26 tmp15        [V26,T32] (  3,  0   )     int  ->   r0        
 ;* V27 tmp16        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V28 tmp17        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp18        [V29    ] (  0,  0   )     int  ->  zero-ref   
@@ -46,56 +46,55 @@
 ;* V34 tmp23        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp24        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp25        [V36    ] (  0,  0   )     int  ->  zero-ref   
-;  V37 tmp26        [V37,T34] (  3,  0   )     int  ->   r1        
-;  V38 tmp27        [V38,T18] (  2,  4   )     int  ->   r6         "impAppendStmt"
+;  V37 tmp26        [V37,T33] (  3,  0   )     int  ->   r1        
+;  V38 tmp27        [V38,T17] (  2,  4   )     int  ->   r6         "impAppendStmt"
 ;* V39 tmp28        [V39    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V40 tmp29        [V40,T24] (  2,  2   )     ref  ->   r3         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V41 tmp30        [V41,T26] (  4,  1.50)     ref  ->   r3        
-;  V42 tmp31        [V42,T32] (  3,  0   )     ref  ->   r5         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V40 tmp29        [V40,T23] (  2,  2   )     ref  ->   r3         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V41 tmp30        [V41,T25] (  4,  1.50)     ref  ->   r3        
+;  V42 tmp31        [V42,T31] (  3,  0   )     ref  ->   r5         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V43 tmp32        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp33        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V45 tmp34        [V45,T01] ( 17, 34   )     int  ->   r0         "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V47 tmp36        [V47    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;  V49 tmp38        [V49,T21] (  3,  3   )     int  ->  [sp+0x20]  spill-single-def "Inline stloc first use temp"
+;  V49 tmp38        [V49,T20] (  3,  3   )     int  ->  [sp+0x18]  spill-single-def "Inline stloc first use temp"
 ;* V50 tmp39        [V50    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V52 tmp41        [V52,T28] (  3,  1.50)   ubyte  ->  r10         "Inline return value spill temp"
-;  V53 tmp42        [V53,T14] (  3,  4.50)     ref  ->   r8         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V52 tmp41        [V52,T27] (  3,  1.50)   ubyte  ->  r10         "Inline return value spill temp"
+;  V53 tmp42        [V53,T03] (  6, 16.50)     ref  ->   r8         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;  V54 tmp43        [V54,T02] (  7, 22   )     int  ->  r10         "Inline stloc first use temp"
-;  V55 tmp44        [V55,T06] (  4, 12   )     int  ->  [sp+0x1C]  "Inline stloc first use temp"
-;  V56 tmp45        [V56,T03] (  2, 16   )     int  ->  r10         "dup spill"
+;  V55 tmp44        [V55,T06] (  4, 12   )     int  ->  [sp+0x14]  "Inline stloc first use temp"
+;  V56 tmp45        [V56,T04] (  2, 16   )     int  ->  r10         "dup spill"
 ;* V57 tmp46        [V57    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V58 tmp47        [V58,T35] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
-;  V59 tmp48        [V59,T19] (  4,  3   )     int  ->   r3         "dup spill"
+;  V58 tmp47        [V58,T34] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
+;  V59 tmp48        [V59,T18] (  4,  3   )     int  ->   r3         "dup spill"
 ;* V60 tmp49        [V60    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V61 tmp50        [V61    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V62 tmp51        [V62,T08] (  3, 10   )   ubyte  ->  [sp+0x18]  "Inline stloc first use temp"
-;  V63 tmp52        [V63,T00] (  8, 56   )     ref  ->  [sp+0x0C]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V62 tmp51        [V62,T08] (  3, 10   )   ubyte  ->  [sp+0x10]  "Inline stloc first use temp"
+;  V63 tmp52        [V63,T00] (  8, 56   )     ref  ->  [sp+0x08]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V64 tmp53        [V64,T07] (  3, 10   )     ref  ->   r1         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V65 tmp54        [V65,T04] (  5, 14   )     int  ->  [sp+0x14]  spill-single-def "Inline stloc first use temp"
-;  V66 tmp55        [V66,T43] (  2,  0   )     int  ->   r0         "Inlining Arg"
-;* V67 tmp56        [V67,T30] (  0,  0   )     ref  ->  zero-ref    single-def "field V39.Array (fldOffset=0x0)" P-INDEP
-;* V68 tmp57        [V68,T31] (  0,  0   )     int  ->  zero-ref    "field V39.MillisecondsTimeStamp (fldOffset=0x4)" P-INDEP
+;  V65 tmp54        [V65,T05] (  5, 14   )     int  ->  [sp+0x0C]  spill-single-def "Inline stloc first use temp"
+;  V66 tmp55        [V66,T42] (  2,  0   )     int  ->   r0         "Inlining Arg"
+;* V67 tmp56        [V67,T29] (  0,  0   )     ref  ->  zero-ref    single-def "field V39.Array (fldOffset=0x0)" P-INDEP
+;* V68 tmp57        [V68,T30] (  0,  0   )     int  ->  zero-ref    "field V39.MillisecondsTimeStamp (fldOffset=0x4)" P-INDEP
 ;* V69 tmp58        [V69    ] (  0,  0   )   byref  ->  zero-ref    "field V46._reference (fldOffset=0x0)" P-INDEP
 ;* V70 tmp59        [V70    ] (  0,  0   )     int  ->  zero-ref    "field V46._length (fldOffset=0x4)" P-INDEP
-;  V71 tmp60        [V71,T25] (  2,  2   )   byref  ->   r1         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
+;  V71 tmp60        [V71,T24] (  2,  2   )   byref  ->   r1         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
 ;* V72 tmp61        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V47._length (fldOffset=0x4)" P-INDEP
 ;* V73 tmp62        [V73    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V48._reference (fldOffset=0x0)" P-INDEP
 ;* V74 tmp63        [V74    ] (  0,  0   )     int  ->  zero-ref    "field V48._length (fldOffset=0x4)" P-INDEP
-;  V75 tmp64        [V75,T20] (  3,  3   )     ref  ->   r0         single-def "arr expr"
-;  V76 tmp65        [V76,T36] (  2,  0   )     ref  ->   r7         single-def "argument with side effect"
-;  V77 tmp66        [V77,T37] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
-;  V78 cse0         [V78,T29] (  3,  1.50)     int  ->   r0         "CSE - moderate"
-;  V79 cse1         [V79,T05] (  5, 12   )     int  ->  [sp+0x10]  spill-single-def "CSE - aggressive"
+;  V75 tmp64        [V75,T19] (  3,  3   )     ref  ->   r0         single-def "arr expr"
+;  V76 tmp65        [V76,T35] (  2,  0   )     ref  ->   r7         single-def "argument with side effect"
+;  V77 tmp66        [V77,T36] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
+;  V78 cse0         [V78,T28] (  3,  1.50)     int  ->   r0         "CSE - moderate"
 ;
-; Lcl frame size = 44
+; Lcl frame size = 36
 
 G_M60175_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 44
-            add     r11, sp, 72
+            sub     sp, 36
+            add     r11, sp, 64
             mov     r5, r0
             ; gcrRegs +[r5]
             mov     r4, r1
@@ -169,7 +168,7 @@ G_M60175_IG05:        ; bbWeight=1, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {}
             and     r0, r7, 31
             movs    r1, 16
             lsl     r3, r1, r0
-            str     r3, [sp+0x20]
+            str     r3, [sp+0x18]
             cmp     r3, 0
             bge     SHORT G_M60175_IG06
             movw    r0, 0xd1ff
@@ -183,7 +182,7 @@ G_M60175_IG05:        ; bbWeight=1, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {}
             ; gcr arg pop 0
                        ;; size=46 bbWeight=1 PerfScore 15.00
 G_M60175_IG06:        ; bbWeight=1, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {}, byref, isz
-            ldr     r3, [sp+0x20]  // [V49 tmp38]
+            ldr     r3, [sp+0x18]  // [V49 tmp38]
             cmp     r6, r3
             bne     G_M60175_IG25
             lsls    r1, r7, 3
@@ -204,8 +203,8 @@ G_M60175_IG06:        ; bbWeight=1, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {}
             movs    r0, 0
             str     r0, [r2+0x04]
             cmp     r6, 0
-            beq     G_M60175_IG20
-                       ;; size=42 bbWeight=1 PerfScore 16.00
+            beq     SHORT G_M60175_IG20
+                       ;; size=40 bbWeight=1 PerfScore 16.00
 G_M60175_IG07:        ; bbWeight=0.50, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r2]
             ldr     r0, [r5+0x08]
@@ -260,43 +259,43 @@ G_M60175_IG11:        ; bbWeight=0, gcrefRegs=0170 {r4 r5 r6 r8}, byrefRegs=0000
             ; gcr arg pop 0
             mov     r10, r0
             movs    r3, 0
-            str     r3, [sp+0x1C]  // [V55 tmp44]
-            ldr     r2, [r8+0x04]
-            str     r2, [sp+0x10]  // [V79 cse1]
-            cmp     r2, 0
+            str     r3, [sp+0x14]  // [V55 tmp44]
+            ldr     r0, [r8+0x04]
+            cmp     r0, 0
             ble     SHORT G_M60175_IG18
-                       ;; size=28 bbWeight=0 PerfScore 0.00
+                       ;; size=26 bbWeight=0 PerfScore 0.00
 G_M60175_IG12:        ; bbWeight=4, gcrefRegs=0170 {r4 r5 r6 r8}, byrefRegs=0000 {}, byref, isz
-            cmp     r10, r2
+            ldr     r0, [r8+0x04]
+            cmp     r10, r0
             bhs     SHORT G_M60175_IG22
             add     r0, r8, 8
             ; byrRegs +[r0]
-            lsl     r1, r10, 2
-            ldr     r1, [r0+r1]
-            ; gcrRegs +[r1]
-            str     r1, [sp+0x0C]  // [V63 tmp52]
+            lsl     r2, r10, 2
+            ldr     r2, [r0+r2]
+            ; gcrRegs +[r2]
+            str     r2, [sp+0x08]  // [V63 tmp52]
             ; GC ptr vars +{V63}
-            ldrsb   r0, [r1]
+            ldrsb   r0, [r2]
             ; byrRegs -[r0]
-            mov     lr, 0
-            str     lr, [sp+0x18]  // [V62 tmp51]
-            mov     r0, r1
+            movs    r1, 0
+            str     r1, [sp+0x10]  // [V62 tmp51]
+            mov     r0, r2
             ; gcrRegs +[r0]
-            movw    r12, 0xd1ff
-            movt    r12, 0xd1ff
-            blx     r12        // <unknown method>
-            ; gcrRegs -[r0-r1]
+            movw    lr, 0xd1ff
+            movt    lr, 0xd1ff
+            blx     lr     // <unknown method>
+            ; gcrRegs -[r0 r2]
             ; gcr arg pop 0
-            ldr     r2, [sp+0x0C]  // [V63 tmp52]
+            ldr     r2, [sp+0x08]  // [V63 tmp52]
             ; gcrRegs +[r2]
             ldr     r1, [r2+0x04]
             ; gcrRegs +[r1]
             ldr     r3, [r2+0x0C]
-            str     r3, [sp+0x14]  // [V65 tmp54]
+            str     r3, [sp+0x0C]  // [V65 tmp54]
             ldr     r0, [r1+0x04]
             cmp     r0, r3
             bls     SHORT G_M60175_IG15
-                       ;; size=54 bbWeight=4 PerfScore 80.00
+                       ;; size=54 bbWeight=4 PerfScore 84.00
 G_M60175_IG13:        ; bbWeight=2, gcrefRegs=0176 {r1 r2 r4 r5 r6 r8}, byrefRegs=0000 {}, byref, isz
             cmp     r3, 0
             bne     SHORT G_M60175_IG14
@@ -318,12 +317,12 @@ G_M60175_IG14:        ; bbWeight=2, gcrefRegs=0176 {r1 r2 r4 r5 r6 r8}, byrefReg
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            ldr     r1, [sp+0x14]  // [V65 tmp54]
+            ldr     r1, [sp+0x0C]  // [V65 tmp54]
             adds    r0, r1, 1
             str     r0, [r2+0x0C]
-            mov     lr, 1
-            str     lr, [sp+0x18]  // [V62 tmp51]
-                       ;; size=32 bbWeight=2 PerfScore 24.00
+            movs    r1, 1
+            str     r1, [sp+0x10]  // [V62 tmp51]
+                       ;; size=28 bbWeight=2 PerfScore 24.00
 G_M60175_IG15:        ; bbWeight=4, gcrefRegs=0174 {r2 r4 r5 r6 r8}, byrefRegs=0000 {}, byref, isz
             mov     r0, r2
             ; gcrRegs +[r0]
@@ -334,25 +333,25 @@ G_M60175_IG15:        ; bbWeight=4, gcrefRegs=0174 {r2 r4 r5 r6 r8}, byrefRegs=0
             blx     r2     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            ldr     r0, [sp+0x18]  // [V62 tmp51]
+            ldr     r0, [sp+0x10]  // [V62 tmp51]
             cmp     r0, 0
             bne     SHORT G_M60175_IG19
             add     r10, r10, 1
-            ldr     r0, [sp+0x10]  // [V79 cse1]
+            ldr     r0, [r8+0x04]
             cmp     r0, r10
             bne     SHORT G_M60175_IG17
-                       ;; size=28 bbWeight=4 PerfScore 44.00
+                       ;; size=30 bbWeight=4 PerfScore 44.00
...

+24 (+2.24%) : 381963.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->   r9        
 ;  V10 loc7         [V10,T08] (  3, 12   )     ref  ->   r2         class-hnd <System.Xml.XmlDictionaryString>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T25] (  3,  0   )     ref  ->   r4         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T26] (  3,  0   )     ref  ->  r10         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T24] (  3,  0   )     ref  ->   r4         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T25] (  3,  0   )     ref  ->  r10         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T21] (  4,  0   )     int  ->   r0         "Inlining Arg"
+;  V17 tmp6         [V17,T20] (  4,  0   )     int  ->   r0         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T27] (  3,  0   )     int  ->   r5         "Inlining Arg"
-;  V20 tmp9         [V20,T31] (  2,  0   )   byref  ->   r4         "Inlining Arg"
+;  V19 tmp8         [V19,T26] (  3,  0   )     int  ->   r5         "Inlining Arg"
+;  V20 tmp9         [V20,T30] (  2,  0   )   byref  ->   r4         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T32] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V26 tmp15        [V26,T31] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T22] (  4,  0   )     int  ->   r0         "Inlining Arg"
+;  V28 tmp17        [V28,T21] (  4,  0   )     int  ->   r0         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T28] (  3,  0   )     int  ->   r8         "Inlining Arg"
-;  V31 tmp20        [V31,T33] (  2,  0   )   byref  ->   r7         "Inlining Arg"
+;  V30 tmp19        [V30,T27] (  3,  0   )     int  ->   r8         "Inlining Arg"
+;  V31 tmp20        [V31,T32] (  2,  0   )   byref  ->   r7         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T34] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V37 tmp26        [V37,T33] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T23] (  4,  0   )     int  ->   r0         "Inlining Arg"
+;  V41 tmp30        [V41,T22] (  4,  0   )     int  ->   r0         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T29] (  3,  0   )     int  ->   r5         "Inlining Arg"
-;  V44 tmp33        [V44,T35] (  2,  0   )   byref  ->   r4         "Inlining Arg"
+;  V43 tmp32        [V43,T28] (  3,  0   )     int  ->   r5         "Inlining Arg"
+;  V44 tmp33        [V44,T34] (  2,  0   )   byref  ->   r4         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T36] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V50 tmp39        [V50,T35] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T24] (  4,  0   )     int  ->   r4         "Inlining Arg"
+;  V52 tmp41        [V52,T23] (  4,  0   )     int  ->   r4         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T30] (  3,  0   )     int  ->   r4         "Inlining Arg"
-;  V55 tmp44        [V55,T37] (  2,  0   )   byref  ->   r5         "Inlining Arg"
+;  V54 tmp43        [V54,T29] (  3,  0   )     int  ->   r4         "Inlining Arg"
+;  V55 tmp44        [V55,T36] (  2,  0   )   byref  ->   r5         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T44] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T38] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V61 tmp50        [V61,T37] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;  V62 tmp51        [V62,T12] (  3,  8   )   ubyte  ->   r6         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T06] (  4, 12   )     int  ->  r10         "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 25.46)     ref  ->   r8         class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x4)" P-INDEP
 ;  V97 tmp86        [V97,T09] (  3, 12   )     ref  ->   r2         "arr expr"
-;  V98 tmp87        [V98,T39] (  2,  0   )     ref  ->   r1         "argument with side effect"
-;  V99 tmp88        [V99,T40] (  2,  0   )     ref  ->   r1         "argument with side effect"
+;  V98 tmp87        [V98,T38] (  2,  0   )     ref  ->   r1         "argument with side effect"
+;  V99 tmp88        [V99,T39] (  2,  0   )     ref  ->   r1         "argument with side effect"
 ;  V100 cse0        [V100,T18] (  3,  3   )     ref  ->   r0         "CSE - moderate"
 ;  V101 cse1        [V101,T11] (  6, 10   )     int  ->   r7         multi-def "CSE - aggressive"
 ;  V102 cse2        [V102,T05] (  4, 12.50)   byref  ->   r8         hoist multi-def "CSE - aggressive"
-;  V103 cse3        [V103,T20] ( 12,  0   )     ref  ->   r1         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 28
 
@@ -406,17 +405,16 @@ G_M45430_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             subs    r5, r1, r0
             cmp     r5, 0
             bge     SHORT G_M45430_IG30
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=64 bbWeight=0 PerfScore 0.00
+                       ;; size=70 bbWeight=0 PerfScore 0.00
 G_M45430_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             cmp     r5, 11
             blo     SHORT G_M45430_IG31
@@ -468,17 +466,16 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             sub     r8, r1, r0
             cmp     r8, 0
             bge     SHORT G_M45430_IG33
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=66 bbWeight=0 PerfScore 0.00
+                       ;; size=72 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
             cmp     r8, 0
             beq     SHORT G_M45430_IG34
@@ -578,17 +575,16 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             subs    r5, r1, r0
             cmp     r5, 0
             bge     SHORT G_M45430_IG38
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=62 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             cmp     r5, 11
             blo     SHORT G_M45430_IG39
@@ -650,17 +646,16 @@ G_M45430_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             subs    r4, r0, r4
             cmp     r4, 0
             bge     SHORT G_M45430_IG43
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=42 bbWeight=0 PerfScore 0.00
 G_M45430_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref, isz
             cmp     r4, 0
             beq     SHORT G_M45430_IG44
@@ -727,7 +722,7 @@ G_M45430_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=64 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1070, prolog size 28, PerfScore 243.10, instruction count 391, allocated bytes for code 1070 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1094, prolog size 28, PerfScore 243.10, instruction count 395, allocated bytes for code 1094 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -739,7 +734,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 535 (0x00217) Actual length = 1070 (0x00042e)
+  Function Length   : 547 (0x00223) Actual length = 1094 (0x000446)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+6 (+2.27%) : 295575.dasm - System.Runtime.CompilerServices.ConditionalWeakTable2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable2[System.Canon,System.Canon]):this (Tier0-FullOpts)

@@ -18,9 +18,8 @@
 ;* V07 tmp4         [V07,T08] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V08 tmp5         [V08,T00] (  3, 24   )     ref  ->   r3         "arr expr"
 ;  V09 cse0         [V09,T02] (  4, 10   )     ref  ->   r1         "CSE - aggressive"
-;  V10 cse1         [V10,T09] (  3,  0   )     ref  ->   r1         "CSE - moderate"
-;  V11 rat0         [V11,T06] (  3,  4.40)     int  ->   r0         "Spilling to split statement for tree"
-;  V12 rat1         [V12,T05] (  3,  5.60)     int  ->   r1         "fgMakeTemp is creating a new local variable"
+;  V10 rat0         [V10,T06] (  3,  4.40)     int  ->   r0         "Spilling to split statement for tree"
+;  V11 rat1         [V11,T05] (  3,  5.60)     int  ->   r1         "fgMakeTemp is creating a new local variable"
 ;  TEMP_01                                     ref  ->  [r11-0x10]
 ;
 ; Lcl frame size = 8
@@ -48,17 +47,16 @@ G_M9941_IG02:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, by
             bne     SHORT G_M9941_IG04
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M9941_IG03:        ; bbWeight=0, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=22 bbWeight=0 PerfScore 0.00
+                       ;; size=28 bbWeight=0 PerfScore 0.00
 G_M9941_IG04:        ; bbWeight=1, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -172,7 +170,7 @@ G_M9941_IG11:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0010 {r4}, byre
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 264, prolog size 44, PerfScore 113.00, instruction count 93, allocated bytes for code 264 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier0-FullOpts)
+Total bytes of code 270, prolog size 44, PerfScore 113.00, instruction count 94, allocated bytes for code 270 (MethodHash=9205d92a) for method System.Runtime.CompilerServices.ConditionalWeakTable`2+Container[System.__Canon,System.__Canon]:.ctor(System.Runtime.CompilerServices.ConditionalWeakTable`2[System.__Canon,System.__Canon]):this (Tier0-FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -184,7 +182,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 132 (0x00084) Actual length = 264 (0x000108)
+  Function Length   : 135 (0x00087) Actual length = 270 (0x00010e)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+4.35%) : 201968.dasm - JIT.HardwareIntrinsics.General.Vector128.VectorBooleanBinaryOpTestLessThanOrEqualAnySingle:RunBasicScenarioUnsafeRead():this (FullOpts)

@@ -29,17 +29,17 @@
 ;* V18 tmp16        [V18    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp17        [V19    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp18        [V20    ] (  0,   0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V21 tmp19        [V21,T23] (  3,   0   )   ubyte  ->   r1         "Inline return value spill temp"
+;  V21 tmp19        [V21,T22] (  3,   0   )   ubyte  ->   r1         "Inline return value spill temp"
 ;  V22 tmp20        [V22,T19] (  9,   9   )     int  ->   r5         "Inline stloc first use temp"
 ;  V23 tmp21        [V23    ] (  2,   9   )  struct ( 8) [sp+0x08]  do-not-enreg[XS] addr-exposed ld-addr-op double-align "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
 ;  V24 tmp22        [V24    ] (  2,   9   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] addr-exposed ld-addr-op double-align "Inlining Arg" <System.Runtime.Intrinsics.Vector64`1[float]>
-;  V25 tmp23        [V25,T26] (  2,   0   )   float  ->  f16         "impAppendStmt"
-;  V26 tmp24        [V26,T24] (  3,   0   )     int  ->   r0        
+;  V25 tmp23        [V25,T25] (  2,   0   )   float  ->  f16         "impAppendStmt"
+;  V26 tmp24        [V26,T23] (  3,   0   )     int  ->   r0        
 ;* V27 tmp25        [V27    ] (  0,   0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp26        [V28    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp27        [V29    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp28        [V30    ] (  0,   0   )   float  ->  zero-ref    "Inline return value spill temp"
-;  V31 tmp29        [V31,T25] (  3,   0   )     int  ->   r0        
+;  V31 tmp29        [V31,T24] (  3,   0   )     int  ->   r0        
 ;* V32 tmp30        [V32    ] (  0,   0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V33 tmp31        [V33    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp32        [V34    ] (  0,   0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -54,19 +54,18 @@
 ;* V43 tmp41        [V43    ] (  0,   0   )    long  ->  zero-ref    single-def "V05.[008..016)"
 ;  V44 tmp42        [V44,T01] (  3,1944   )     int  ->   r0         "Spilling address for field-by-field copy"
 ;  V45 tmp43        [V45,T02] (  3,1944   )     int  ->   r0         "Spilling address for field-by-field copy"
-;  V46 cse0         [V46,T22] (  6,   0   )     ref  ->   r1         multi-def "CSE - moderate"
-;  V47 rat0         [V47,T10] (  2, 648   )     int  ->   r5         "field V40.lo (fldOffset=0x0)" P-INDEP
-;  V48 rat1         [V48,T11] (  2, 648   )     int  ->   r6         "field V40.hi (fldOffset=0x4)" P-INDEP
-;  V49 rat2         [V49,T14] (  2, 328.50)     int  ->   r7         "field V41.lo (fldOffset=0x0)" P-INDEP
-;  V50 rat3         [V50,T15] (  2, 328.50)     int  ->   r8         "field V41.hi (fldOffset=0x4)" P-INDEP
-;  V51 rat4         [V51,T12] (  2, 648   )     int  ->   r3         "field V42.lo (fldOffset=0x0)" P-INDEP
-;  V52 rat5         [V52,T13] (  2, 648   )     int  ->   r1         "field V42.hi (fldOffset=0x4)" P-INDEP
-;  V53 rat6         [V53,T16] (  2, 328.50)     int  ->   r2         "field V43.lo (fldOffset=0x0)" P-INDEP
-;  V54 rat7         [V54,T17] (  2, 328.50)     int  ->   r0         "field V43.hi (fldOffset=0x4)" P-INDEP
-;  V55 rat8         [V55,T03] (  3,1944   )     int  ->   r3         "ReplaceWithLclVar is creating a new local variable"
-;  V56 rat9         [V56,T04] (  3,1944   )     int  ->   r0         "ReplaceWithLclVar is creating a new local variable"
-;  V57 rat10        [V57,T05] (  3,1944   )     int  ->   r1         "ReplaceWithLclVar is creating a new local variable"
-;  V58 rat11        [V58,T06] (  3,1944   )     int  ->   r0         "ReplaceWithLclVar is creating a new local variable"
+;  V46 rat0         [V46,T10] (  2, 648   )     int  ->   r5         "field V40.lo (fldOffset=0x0)" P-INDEP
+;  V47 rat1         [V47,T11] (  2, 648   )     int  ->   r6         "field V40.hi (fldOffset=0x4)" P-INDEP
+;  V48 rat2         [V48,T14] (  2, 328.50)     int  ->   r7         "field V41.lo (fldOffset=0x0)" P-INDEP
+;  V49 rat3         [V49,T15] (  2, 328.50)     int  ->   r8         "field V41.hi (fldOffset=0x4)" P-INDEP
+;  V50 rat4         [V50,T12] (  2, 648   )     int  ->   r3         "field V42.lo (fldOffset=0x0)" P-INDEP
+;  V51 rat5         [V51,T13] (  2, 648   )     int  ->   r1         "field V42.hi (fldOffset=0x4)" P-INDEP
+;  V52 rat6         [V52,T16] (  2, 328.50)     int  ->   r2         "field V43.lo (fldOffset=0x0)" P-INDEP
+;  V53 rat7         [V53,T17] (  2, 328.50)     int  ->   r0         "field V43.hi (fldOffset=0x4)" P-INDEP
+;  V54 rat8         [V54,T03] (  3,1944   )     int  ->   r3         "ReplaceWithLclVar is creating a new local variable"
+;  V55 rat9         [V55,T04] (  3,1944   )     int  ->   r0         "ReplaceWithLclVar is creating a new local variable"
+;  V56 rat10        [V56,T05] (  3,1944   )     int  ->   r1         "ReplaceWithLclVar is creating a new local variable"
+;  V57 rat11        [V57,T06] (  3,1944   )     int  ->   r0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 32
 
@@ -144,17 +143,16 @@ G_M21877_IG06:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             uxtb    r0, r0
             cmp     r0, 0
             bne     SHORT G_M21877_IG07
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=28 bbWeight=0 PerfScore 0.00
+                       ;; size=34 bbWeight=0 PerfScore 0.00
 G_M21877_IG07:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             add     r0, sp, 8
             ; byrRegs +[r0]
@@ -174,17 +172,16 @@ G_M21877_IG09:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             uxtb    r0, r0
             cmp     r0, 0
             bne     SHORT G_M21877_IG10
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=28 bbWeight=0 PerfScore 0.00
+                       ;; size=34 bbWeight=0 PerfScore 0.00
 G_M21877_IG10:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             add     r0, sp, 0
             ; byrRegs +[r0]
@@ -228,7 +225,7 @@ G_M21877_IG16:        ; bbWeight=0, epilog, nogc, extend
             pop     {r4,r5,r6,r7,r8,r9,r11,pc}
                        ;; size=10 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 276, prolog size 16, PerfScore 13320.00, instruction count 105, allocated bytes for code 276 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
+Total bytes of code 288, prolog size 16, PerfScore 13320.00, instruction count 107, allocated bytes for code 288 (MethodHash=3f44aa8a) for method JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -240,7 +237,7 @@ Unwind Info:
   E bit             : 1
   X bit             : 0
   Vers              : 0
-  Function Length   : 138 (0x0008a) Actual length = 276 (0x000114)
+  Function Length   : 144 (0x00090) Actual length = 288 (0x000120)
   --- One epilog, unwind codes at 0
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----

libraries.pmi.linux.arm.checked.mch

-24 (-2.87%) : 4785.dasm - System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)

@@ -10,31 +10,31 @@
 ;
 ;  V00 this         [V00,T09] (  8,  5   )     ref  ->   r5         this class-hnd single-def <System.Buffers.SharedArrayPool`1[short]>
 ;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->   r4         class-hnd single-def <short[]>
-;  V02 arg2         [V02,T12] (  3,  2.50)   ubyte  ->   r6         single-def
+;  V02 arg2         [V02,T11] (  3,  2.50)   ubyte  ->   r6         single-def
 ;  V03 loc0         [V03,T10] (  8,  5   )     int  ->   r8        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V05 loc2         [V05,T20] (  4,  2.50)   ubyte  ->  [sp+0x2C] 
-;  V06 loc3         [V06,T23] (  3,  2   )   ubyte  ->  [sp+0x28] 
-;  V07 loc4         [V07,T16] (  4,  3   )     ref  ->   r9         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V08 loc5         [V08,T21] (  4,  2   )   byref  ->   r2         single-def
-;  V09 loc6         [V09,T18] (  3,  3   )     ref  ->   r6         class-hnd single-def <System.Array>
+;  V05 loc2         [V05,T19] (  4,  2.50)   ubyte  ->  r10        
+;  V06 loc3         [V06,T22] (  3,  2   )   ubyte  ->  [sp+0x2C] 
+;  V07 loc4         [V07,T15] (  4,  3   )     ref  ->   r9         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+;  V08 loc5         [V08,T20] (  4,  2   )   byref  ->   r2         single-def
+;  V09 loc6         [V09,T17] (  3,  3   )     ref  ->   r6         class-hnd single-def <System.Array>
 ;* V10 loc7         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Buffers.SharedArrayPoolPartitions>
 ;  V11 OutArgs      [V11    ] (  1,  1   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T15] (  2,  4   )     ref  ->   r9         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V13 tmp2         [V13,T14] (  5,  4   )     ref  ->   r9        
-;  V14 tmp3         [V14,T25] (  2,  2   )     int  ->   r6         "impAppendStmt"
-;  V15 tmp4         [V15,T26] (  2,  2   )     int  ->  [sp+0x24]  spill-single-def "impAppendStmt"
-;  V16 tmp5         [V16,T27] (  2,  2   )     int  ->   r6         "impAppendStmt"
-;  V17 tmp6         [V17,T28] (  2,  2   )     int  ->   r7         "impAppendStmt"
+;  V12 tmp1         [V12,T14] (  2,  4   )     ref  ->   r9         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V13 tmp2         [V13,T13] (  5,  4   )     ref  ->   r9        
+;  V14 tmp3         [V14,T24] (  2,  2   )     int  ->   r6         "impAppendStmt"
+;  V15 tmp4         [V15,T25] (  2,  2   )     int  ->  [sp+0x28]  spill-single-def "impAppendStmt"
+;  V16 tmp5         [V16,T26] (  2,  2   )     int  ->   r6         "impAppendStmt"
+;  V17 tmp6         [V17,T27] (  2,  2   )     int  ->   r7         "impAppendStmt"
 ;* V18 tmp7         [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V19 tmp8         [V19    ] (  0,  0   )     int  ->  zero-ref   
 ;* V20 tmp9         [V20    ] (  0,  0   )     int  ->  zero-ref   
-;  V21 tmp10        [V21,T36] (  2,  1   )     int  ->   r3        
+;  V21 tmp10        [V21,T35] (  2,  1   )     int  ->   r3        
 ;* V22 tmp11        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp13        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp14        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp15        [V26,T31] (  3,  1.50)     int  ->   r0        
+;  V26 tmp15        [V26,T30] (  3,  1.50)     int  ->   r0        
 ;* V27 tmp16        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V28 tmp17        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp18        [V29    ] (  0,  0   )     int  ->  zero-ref   
@@ -45,39 +45,38 @@
 ;* V34 tmp23        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp24        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp25        [V36    ] (  0,  0   )     int  ->  zero-ref   
-;  V37 tmp26        [V37,T32] (  3,  1.50)     int  ->   r1        
-;  V38 tmp27        [V38,T29] (  2,  2   )     int  ->   r6         "impAppendStmt"
+;  V37 tmp26        [V37,T31] (  3,  1.50)     int  ->   r1        
+;  V38 tmp27        [V38,T28] (  2,  2   )     int  ->   r6         "impAppendStmt"
 ;* V39 tmp28        [V39    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V40 tmp29        [V40,T24] (  2,  2   )     ref  ->   r3         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V41 tmp30        [V41,T22] (  4,  2   )     ref  ->   r3        
-;  V42 tmp31        [V42,T39] (  3,  0   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V40 tmp29        [V40,T23] (  2,  2   )     ref  ->   r3         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V41 tmp30        [V41,T21] (  4,  2   )     ref  ->   r3        
+;  V42 tmp31        [V42,T38] (  3,  0   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V43 tmp32        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp33        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V45 tmp34        [V45,T33] (  3,  1.50)     int  ->  [sp+0x20]  spill-single-def "Inline stloc first use temp"
-;  V46 tmp35        [V46,T34] (  3,  1.50)   ubyte  ->   r6         "Inline return value spill temp"
-;  V47 tmp36        [V47,T11] (  3,  4.50)     ref  ->   r9         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V48 tmp37        [V48,T01] (  7, 22   )     int  ->  [sp+0x1C]  "Inline stloc first use temp"
-;  V49 tmp38        [V49,T05] (  4, 12   )     int  ->  [sp+0x18]  "Inline stloc first use temp"
-;  V50 tmp39        [V50,T02] (  2, 16   )     int  ->  r10         "dup spill"
+;  V45 tmp34        [V45,T32] (  3,  1.50)     int  ->  [sp+0x24]  spill-single-def "Inline stloc first use temp"
+;  V46 tmp35        [V46,T33] (  3,  1.50)   ubyte  ->   r6         "Inline return value spill temp"
+;  V47 tmp36        [V47,T02] (  6, 16.50)     ref  ->   r9         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V48 tmp37        [V48,T01] (  7, 22   )     int  ->  [sp+0x20]  "Inline stloc first use temp"
+;  V49 tmp38        [V49,T05] (  4, 12   )     int  ->  [sp+0x1C]  "Inline stloc first use temp"
+;  V50 tmp39        [V50,T03] (  2, 16   )     int  ->   r3         "dup spill"
 ;* V51 tmp40        [V51    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V52 tmp41        [V52,T40] (  3,  0   )     int  ->  [sp+0x14]  "Inline return value spill temp"
-;  V53 tmp42        [V53,T17] (  4,  3   )     int  ->   r3         "dup spill"
+;  V52 tmp41        [V52,T39] (  3,  0   )     int  ->  [sp+0x18]  "Inline return value spill temp"
+;  V53 tmp42        [V53,T16] (  4,  3   )     int  ->   r3         "dup spill"
 ;* V54 tmp43        [V54    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V55 tmp44        [V55    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V56 tmp45        [V56,T07] (  3, 10   )   ubyte  ->  [sp+0x10]  "Inline stloc first use temp"
-;  V57 tmp46        [V57,T00] (  8, 56   )     ref  ->  [sp+0x08]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V56 tmp45        [V56,T07] (  3, 10   )   ubyte  ->  [sp+0x14]  "Inline stloc first use temp"
+;  V57 tmp46        [V57,T00] (  8, 56   )     ref  ->  [sp+0x0C]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V58 tmp47        [V58,T06] (  3, 10   )     ref  ->   r1         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V59 tmp48        [V59,T03] (  5, 14   )     int  ->   r2         "Inline stloc first use temp"
-;  V60 tmp49        [V60,T30] (  2,  2   )     int  ->   r0         "Inlining Arg"
-;* V61 tmp50        [V61,T37] (  0,  0   )     ref  ->  zero-ref    single-def "field V39.Array (fldOffset=0x0)" P-INDEP
-;* V62 tmp51        [V62,T38] (  0,  0   )     int  ->  zero-ref    "field V39.MillisecondsTimeStamp (fldOffset=0x4)" P-INDEP
-;  V63 tmp52        [V63,T19] (  3,  3   )     ref  ->   r0         single-def "arr expr"
-;  V64 tmp53        [V64,T43] (  2,  0   )     int  ->   r1         "argument with side effect"
-;  V65 tmp54        [V65,T41] (  2,  0   )     ref  ->   r5         single-def "argument with side effect"
-;  V66 tmp55        [V66,T42] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
-;  V67 cse0         [V67,T35] (  3,  1.50)     int  ->   r0         "CSE - conservative"
-;  V68 cse1         [V68,T04] (  5, 12   )     int  ->  [sp+0x0C]  spill-single-def "CSE - aggressive"
-;  V69 cse2         [V69,T13] (  6,  4   )     int  ->   r7         "CSE - moderate"
+;  V59 tmp48        [V59,T04] (  5, 14   )     int  ->  [sp+0x10]  spill-single-def "Inline stloc first use temp"
+;  V60 tmp49        [V60,T29] (  2,  2   )     int  ->   r0         "Inlining Arg"
+;* V61 tmp50        [V61,T36] (  0,  0   )     ref  ->  zero-ref    single-def "field V39.Array (fldOffset=0x0)" P-INDEP
+;* V62 tmp51        [V62,T37] (  0,  0   )     int  ->  zero-ref    "field V39.MillisecondsTimeStamp (fldOffset=0x4)" P-INDEP
+;  V63 tmp52        [V63,T18] (  3,  3   )     ref  ->   r0         single-def "arr expr"
+;  V64 tmp53        [V64,T42] (  2,  0   )     int  ->   r1         "argument with side effect"
+;  V65 tmp54        [V65,T40] (  2,  0   )     ref  ->   r5         single-def "argument with side effect"
+;  V66 tmp55        [V66,T41] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
+;  V67 cse0         [V67,T34] (  3,  1.50)     int  ->   r0         "CSE - conservative"
+;  V68 cse1         [V68,T12] (  6,  4   )     int  ->   r7         "CSE - moderate"
 ;
 ; Lcl frame size = 52
 
@@ -133,7 +132,7 @@ G_M62415_IG04:        ; bbWeight=1, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000 {}
             ; gcrRegs -[r0]
             mov     r10, 0
             movs    r3, 1
-            str     r3, [sp+0x28]  // [V06 loc3]
+            str     r3, [sp+0x2C]  // [V06 loc3]
             ldr     r0, [r9+0x04]
             cmp     r0, r8
             bls     G_M62415_IG22
@@ -157,7 +156,7 @@ G_M62415_IG06:        ; bbWeight=0.50, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000
             and     r0, r8, 31
             movs    r2, 16
             lsls    r2, r0
-            str     r2, [sp+0x20]  // [V45 tmp34]
+            str     r2, [sp+0x24]  // [V45 tmp34]
             cmp     r2, 0
             bge     SHORT G_M62415_IG07
             movs    r0, 0
@@ -172,7 +171,7 @@ G_M62415_IG08:        ; bbWeight=0.50, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000
             ldr     r1, [r1]
             blx     r1     // <unknown method>
             ; gcr arg pop 0
-            ldr     r1, [sp+0x20]  // [V45 tmp34]
+            ldr     r1, [sp+0x24]  // [V45 tmp34]
             cmp     r6, r1
             bne     G_M62415_IG31
             lsl     r1, r8, 3
@@ -247,12 +246,12 @@ G_M62415_IG10:        ; bbWeight=0, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000
             blx     r3     // System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int
             ; gcr arg pop 0
             mov     r3, r0
-            str     r3, [sp+0x14]  // [V52 tmp41]
+            str     r3, [sp+0x18]  // [V52 tmp41]
             b       SHORT G_M62415_IG12
                        ;; size=18 bbWeight=0 PerfScore 0.00
 G_M62415_IG11:        ; bbWeight=0, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref
             asrs    r3, r3, 16
-            str     r3, [sp+0x14]  // [V52 tmp41]
+            str     r3, [sp+0x18]  // [V52 tmp41]
                        ;; size=4 bbWeight=0 PerfScore 0.00
 G_M62415_IG12:        ; bbWeight=0, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
             movw    r0, 0xd1ff
@@ -265,62 +264,62 @@ G_M62415_IG12:        ; bbWeight=0, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
             ldr     r1, [r1]
-            ldr     r0, [sp+0x14]  // [V52 tmp41]
+            ldr     r0, [sp+0x18]  // [V52 tmp41]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_UMOD
             ; gcr arg pop 0
             mov     r3, r0
             movs    r2, 0
-            str     r2, [sp+0x18]  // [V49 tmp38]
-            ldr     r1, [r9+0x04]
-            str     r1, [sp+0x0C]  // [V68 cse1]
-            cmp     r1, 0
-            str     r10, [sp+0x2C] // [V05 loc2]
+            str     r2, [sp+0x1C]  // [V49 tmp38]
+            ldr     r0, [r9+0x04]
+            cmp     r0, 0
             ble     SHORT G_M62415_IG19
-                       ;; size=64 bbWeight=0 PerfScore 0.00
+                       ;; size=58 bbWeight=0 PerfScore 0.00
 G_M62415_IG13:        ; bbWeight=4, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
-            cmp     r3, r1
+            ldr     r0, [r9+0x04]
+            cmp     r3, r0
             bhs     G_M62415_IG29
             add     r0, r9, 8
             ; byrRegs +[r0]
-            str     r3, [sp+0x1C]  // [V48 tmp37]
-            lsl     lr, r3, 2
-            ldr     lr, [r0+lr]
-            ; gcrRegs +[lr]
-            str     lr, [sp+0x08]  // [V57 tmp46]
-            ; GC ptr vars +{V57}
-            ldrsb   r0, [lr]
-            ; byrRegs -[r0]
-            mov     r12, 0
-            str     r12, [sp+0x10] // [V56 tmp45]
-            mov     r0, lr
-            ; gcrRegs +[r0]
-            movw    r10, 0xd1ff
-            movt    r10, 0xd1ff
-            blx     r10        // <unknown method>
-            ; gcrRegs -[r0 lr]
-            ; gcr arg pop 0
-            ldr     r10, [sp+0x08] // [V57 tmp46]
-            ; gcrRegs +[r10]
-            ldr     r1, [r10+0x04]
+            str     r3, [sp+0x20]  // [V48 tmp37]
+            lsls    r1, r3, 2
+            ldr     r1, [r0+r1]
             ; gcrRegs +[r1]
-            ldr     r2, [r10+0x0C]
+            str     r1, [sp+0x0C]  // [V57 tmp46]
+            ; GC ptr vars +{V57}
+            ldrsb   r0, [r1]
+            ; byrRegs -[r0]
+            mov     lr, 0
+            str     lr, [sp+0x14]  // [V56 tmp45]
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            movw    r12, 0xd1ff
+            movt    r12, 0xd1ff
+            blx     r12        // <unknown method>
+            ; gcrRegs -[r0-r1]
+            ; gcr arg pop 0
+            ldr     r2, [sp+0x0C]  // [V57 tmp46]
+            ; gcrRegs +[r2]
+            ldr     r1, [r2+0x04]
+            ; gcrRegs +[r1]
+            ldr     r3, [r2+0x0C]
+            str     r3, [sp+0x10]  // [V59 tmp48]
             ldr     r0, [r1+0x04]
-            cmp     r0, r2
+            cmp     r0, r3
             bls     SHORT G_M62415_IG16
-                       ;; size=66 bbWeight=4 PerfScore 80.00
-G_M62415_IG14:        ; bbWeight=2, gcrefRegs=0672 {r1 r4 r5 r6 r9 r10}, byrefRegs=0000 {}, byref, isz
-            cmp     r2, 0
+                       ;; size=60 bbWeight=4 PerfScore 88.00
+G_M62415_IG14:        ; bbWeight=2, gcrefRegs=0276 {r1 r2 r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
             bne     SHORT G_M62415_IG15
             movs    r0, 0
-            str     r0, [r10+0x10]
-                       ;; size=10 bbWeight=2 PerfScore 8.00
-G_M62415_IG15:        ; bbWeight=2, gcrefRegs=0672 {r1 r4 r5 r6 r9 r10}, byrefRegs=0000 {}, byref
+            str     r0, [r2+0x10]
+                       ;; size=8 bbWeight=2 PerfScore 8.00
+G_M62415_IG15:        ; bbWeight=2, gcrefRegs=0276 {r1 r2 r4 r5 r6 r9}, byrefRegs=0000 {}, byref
             adds    r1, 8
             ; gcrRegs -[r1]
             ; byrRegs +[r1]
-            lsls    r0, r2, 2
+            lsls    r0, r3, 2
...

-2 (-0.83%) : 4792.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)

@@ -10,32 +10,31 @@
 ;
 ;  V00 this         [V00,T12] (  3,  3   )     ref  ->   r0         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Array>
-;  V02 loc1         [V02,T13] (  3,  5   )     ref  ->   r4         class-hnd exact single-def <<unknown class>>
+;  V02 loc1         [V02,T02] (  6, 17   )     ref  ->   r4         class-hnd exact single-def <<unknown class>>
 ;  V03 loc2         [V03,T01] (  7, 22   )     int  ->   r5        
 ;  V04 loc3         [V04,T04] (  4, 12   )     int  ->   r6        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
-;  V07 tmp2         [V07,T02] (  2, 16   )     int  ->   r5         "dup spill"
+;  V07 tmp2         [V07,T03] (  2, 16   )     int  ->   r5         "dup spill"
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V09 tmp4         [V09,T15] (  3,  0   )     int  ->   r6         "Inline return value spill temp"
+;  V09 tmp4         [V09,T14] (  3,  0   )     int  ->   r6         "Inline return value spill temp"
 ;  V10 tmp5         [V10,T09] (  4,  6   )     int  ->   r5         "dup spill"
 ;* V11 tmp6         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V13 tmp8         [V13,T06] (  4, 10.50)     ref  ->   r9         class-hnd "Inline stloc first use temp" <System.Array>
-;  V14 tmp9         [V14,T00] (  7, 52   )     ref  ->   r8         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V13 tmp8         [V13,T06] (  4, 10.50)     ref  ->   r8         class-hnd "Inline stloc first use temp" <System.Array>
+;  V14 tmp9         [V14,T00] (  7, 52   )     ref  ->   r7         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V15 tmp10        [V15,T07] (  3, 10   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V16 tmp11        [V16,T05] (  4, 12   )     int  ->   r3         "Inline stloc first use temp"
-;  V17 tmp12        [V17,T16] (  2,  0   )     int  ->   r1         "argument with side effect"
-;  V18 cse0         [V18,T14] (  3,  3   )     int  ->   r0         "CSE - moderate"
-;  V19 cse1         [V19,T03] (  5, 12   )     int  ->   r7         "CSE - aggressive"
-;  V20 cse2         [V20,T08] (  2,  8   )     int  ->   r2         "CSE - aggressive"
-;  V21 cse3         [V21,T10] (  3,  6   )   byref  ->   r0         "CSE - aggressive"
-;  V22 cse4         [V22,T11] (  3,  6   )     int  ->   r2         "CSE - aggressive"
+;  V17 tmp12        [V17,T15] (  2,  0   )     int  ->   r1         "argument with side effect"
+;  V18 cse0         [V18,T13] (  3,  3   )     int  ->   r0         "CSE - moderate"
+;  V19 cse1         [V19,T08] (  2,  8   )     int  ->   r2         "CSE - aggressive"
+;  V20 cse2         [V20,T10] (  3,  6   )   byref  ->   r0         "CSE - aggressive"
+;  V21 cse3         [V21,T11] (  3,  6   )     int  ->   r2         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
 G_M10734_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r4,r5,r6,r7,r8,r9,r11,lr}
+            push    {r3,r4,r5,r6,r7,r8,r11,lr}
             add     r11, sp, 24
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M10734_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
@@ -87,89 +86,92 @@ G_M10734_IG05:        ; bbWeight=0, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byre
             ; gcr arg pop 0
             mov     r5, r0
             movs    r6, 0
-            ldr     r7, [r4+0x04]
-            cmp     r7, 0
+            ldr     r0, [r4+0x04]
+            cmp     r0, 0
             ble     SHORT G_M10734_IG11
                        ;; size=54 bbWeight=0 PerfScore 0.00
 G_M10734_IG06:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
-            cmp     r5, r7
+            ldr     r0, [r4+0x04]
+            cmp     r5, r0
             bhs     SHORT G_M10734_IG15
             add     r0, r4, 8
             ; byrRegs +[r0]
             lsls    r3, r5, 2
-            ldr     r8, [r0+r3]
-            ; gcrRegs +[r8]
-            ldrsb   r0, [r8]
+            ldr     r7, [r0+r3]
+            ; gcrRegs +[r7]
+            ldrsb   r0, [r7]
             ; byrRegs -[r0]
-            mov     r9, 0
-            mov     r0, r8
+            mov     r8, 0
+            mov     r0, r7
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0] +[r9]
+            ; gcrRegs -[r0] +[r8]
             ; gcr arg pop 0
-            ldr     r0, [r8+0x04]
+            ldr     r0, [r7+0x04]
             ; gcrRegs +[r0]
-            ldr     r3, [r8+0x0C]
+            ldr     r3, [r7+0x0C]
             subs    r3, r3, 1
             ldr     r2, [r0+0x04]
             cmp     r2, r3
             bls     SHORT G_M10734_IG08
-                       ;; size=50 bbWeight=4 PerfScore 68.00
-G_M10734_IG07:        ; bbWeight=2, gcrefRegs=0111 {r0 r4 r8}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r9]
+                       ;; size=46 bbWeight=4 PerfScore 72.00
+G_M10734_IG07:        ; bbWeight=2, gcrefRegs=0091 {r0 r4 r7}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[r8]
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
             lsls    r2, r3, 2
-            ldr     r9, [r0+r2]
-            ; gcrRegs +[r9]
+            ldr     r8, [r0+r2]
+            ; gcrRegs +[r8]
             movs    r1, 0
             str     r1, [r0+r2]
-            str     r3, [r8+0x0C]
-                       ;; size=16 bbWeight=2 PerfScore 12.00
-G_M10734_IG08:        ; bbWeight=4, gcrefRegs=0310 {r4 r8 r9}, byrefRegs=0000 {}, byref, isz
+            str     r3, [r7+0x0C]
+                       ;; size=14 bbWeight=2 PerfScore 12.00
+G_M10734_IG08:        ; bbWeight=4, gcrefRegs=0190 {r4 r7 r8}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[r0]
-            mov     r0, r8
+            mov     r0, r7
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0 r8]
+            ; gcrRegs -[r0 r7]
             ; gcr arg pop 0
-            cmp     r9, 0
+            cmp     r8, 0
             bne     SHORT G_M10734_IG13
             adds    r5, r5, 1
-            cmp     r7, r5
+            ldr     r0, [r4+0x04]
+            cmp     r0, r5
             bne     SHORT G_M10734_IG10
-                       ;; size=24 bbWeight=4 PerfScore 36.00
+                       ;; size=26 bbWeight=4 PerfScore 40.00
 G_M10734_IG09:        ; bbWeight=2, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[r9]
+            ; gcrRegs -[r8]
             movs    r5, 0
                        ;; size=2 bbWeight=2 PerfScore 2.00
 G_M10734_IG10:        ; bbWeight=4, gcrefRegs=0010 {r4}, byrefRegs=0000 {}, byref, isz
             adds    r6, r6, 1
-            cmp     r7, r6
+            ldr     r0, [r4+0x04]
+            cmp     r0, r6
             bgt     SHORT G_M10734_IG06
-                       ;; size=6 bbWeight=4 PerfScore 12.00
+                       ;; size=8 bbWeight=4 PerfScore 16.00
 G_M10734_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r4]
             movs    r0, 0
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M10734_IG12:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r4,r5,r6,r7,r8,r9,r11,pc}
+            pop     {r3,r4,r5,r6,r7,r8,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M10734_IG13:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[r9]
-            mov     r0, r9
+G_M10734_IG13:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, gcvars, byref
+            ; gcrRegs +[r8]
+            mov     r0, r8
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M10734_IG14:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r4,r5,r6,r7,r8,r9,r11,pc}
+            pop     {r3,r4,r5,r6,r7,r8,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M10734_IG15:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r0 r9]
+            ; gcrRegs -[r0 r8]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // CORINFO_HELP_RNGCHKFAIL
@@ -177,7 +179,7 @@ G_M10734_IG15:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 242, prolog size 8, PerfScore 147.00, instruction count 84, allocated bytes for code 242 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)
+Total bytes of code 240, prolog size 8, PerfScore 159.00, instruction count 87, allocated bytes for code 240 (MethodHash=16ebd611) for method System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -189,7 +191,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 121 (0x00079) Actual length = 242 (0x0000f2)
+  Function Length   : 120 (0x00078) Actual length = 240 (0x0000f0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -201,7 +203,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    AB F0       pop {r4,r5,r6,r7,r8,r9,r11,lr}      ; opsize 32
+    A9 F8       pop {r3,r4,r5,r6,r7,r8,r11,lr}      ; opsize 32
     FF          end
     FF          end
 

+2 (+0.75%) : 4791.dasm - System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (FullOpts)

@@ -10,29 +10,28 @@
 ;
 ;  V00 this         [V00,T10] (  3,  3   )     ref  ->   r0         this class-hnd single-def <System.Buffers.SharedArrayPoolPartitions>
 ;  V01 arg1         [V01,T09] (  3,  4   )     ref  ->   r4         class-hnd single-def <System.Array>
-;  V02 loc0         [V02,T11] (  3,  5   )     ref  ->   r5         class-hnd exact single-def <<unknown class>>
+;  V02 loc0         [V02,T02] (  6, 17   )     ref  ->   r5         class-hnd exact single-def <<unknown class>>
 ;  V03 loc1         [V03,T01] (  7, 22   )     int  ->   r6        
 ;  V04 loc2         [V04,T05] (  4, 12   )     int  ->   r7        
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T02] (  2, 16   )     int  ->   r6         "dup spill"
+;  V06 tmp1         [V06,T03] (  2, 16   )     int  ->   r6         "dup spill"
 ;* V07 tmp2         [V07    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V08 tmp3         [V08,T13] (  3,  0   )     int  ->   r7         "Inline return value spill temp"
+;  V08 tmp3         [V08,T12] (  3,  0   )     int  ->   r7         "Inline return value spill temp"
 ;  V09 tmp4         [V09,T08] (  4,  6   )     int  ->   r6         "dup spill"
 ;* V10 tmp5         [V10    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V11 tmp6         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V12 tmp7         [V12,T07] (  3, 10   )   ubyte  ->  r10         "Inline stloc first use temp"
-;  V13 tmp8         [V13,T00] (  8, 56   )     ref  ->   r9         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V12 tmp7         [V12,T07] (  3, 10   )   ubyte  ->   r9         "Inline stloc first use temp"
+;  V13 tmp8         [V13,T00] (  8, 56   )     ref  ->   r8         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V14 tmp9         [V14,T06] (  3, 10   )     ref  ->   r1         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V15 tmp10        [V15,T03] (  5, 14   )     int  ->   r2         "Inline stloc first use temp"
-;  V16 tmp11        [V16,T14] (  2,  0   )     int  ->   r1         "argument with side effect"
-;  V17 cse0         [V17,T12] (  3,  3   )     int  ->   r0         "CSE - moderate"
-;  V18 cse1         [V18,T04] (  5, 12   )     int  ->   r8         "CSE - aggressive"
+;  V15 tmp10        [V15,T04] (  5, 14   )     int  ->   r2         "Inline stloc first use temp"
+;  V16 tmp11        [V16,T13] (  2,  0   )     int  ->   r1         "argument with side effect"
+;  V17 cse0         [V17,T11] (  3,  3   )     int  ->   r0         "CSE - moderate"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M28192_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            push    {r3,r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            add     r11, sp, 32
+            push    {r4,r5,r6,r7,r8,r9,r11,lr}
+            add     r11, sp, 24
             mov     r4, r1
             ; gcrRegs +[r4]
                        ;; size=10 bbWeight=1 PerfScore 3.00
@@ -85,42 +84,43 @@ G_M28192_IG05:        ; bbWeight=0, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, b
             ; gcr arg pop 0
             mov     r6, r0
             movs    r7, 0
-            ldr     r8, [r5+0x04]
-            cmp     r8, 0
+            ldr     r0, [r5+0x04]
+            cmp     r0, 0
             ble     SHORT G_M28192_IG12
-                       ;; size=58 bbWeight=0 PerfScore 0.00
+                       ;; size=54 bbWeight=0 PerfScore 0.00
 G_M28192_IG06:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
-            cmp     r6, r8
+            ldr     r0, [r5+0x04]
+            cmp     r6, r0
             bhs     SHORT G_M28192_IG16
             add     r0, r5, 8
             ; byrRegs +[r0]
             lsls    r3, r6, 2
-            ldr     r9, [r0+r3]
-            ; gcrRegs +[r9]
-            ldrsb   r0, [r9]
+            ldr     r8, [r0+r3]
+            ; gcrRegs +[r8]
+            ldrsb   r0, [r8]
             ; byrRegs -[r0]
-            mov     r10, 0
-            mov     r0, r9
+            mov     r9, 0
+            mov     r0, r8
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // <unknown method>
             ; gcrRegs -[r0]
             ; gcr arg pop 0
-            ldr     r1, [r9+0x04]
+            ldr     r1, [r8+0x04]
             ; gcrRegs +[r1]
-            ldr     r2, [r9+0x0C]
+            ldr     r2, [r8+0x0C]
             ldr     r0, [r1+0x04]
             cmp     r0, r2
             bls     SHORT G_M28192_IG09
-                       ;; size=48 bbWeight=4 PerfScore 64.00
-G_M28192_IG07:        ; bbWeight=2, gcrefRegs=0232 {r1 r4 r5 r9}, byrefRegs=0000 {}, byref, isz
+                       ;; size=50 bbWeight=4 PerfScore 68.00
+G_M28192_IG07:        ; bbWeight=2, gcrefRegs=0132 {r1 r4 r5 r8}, byrefRegs=0000 {}, byref, isz
             cmp     r2, 0
             bne     SHORT G_M28192_IG08
             movs    r0, 0
-            str     r0, [r9+0x10]
+            str     r0, [r8+0x10]
                        ;; size=10 bbWeight=2 PerfScore 8.00
-G_M28192_IG08:        ; bbWeight=2, gcrefRegs=0232 {r1 r4 r5 r9}, byrefRegs=0000 {}, byref
+G_M28192_IG08:        ; bbWeight=2, gcrefRegs=0132 {r1 r4 r5 r8}, byrefRegs=0000 {}, byref
             adds    r1, 8
             ; gcrRegs -[r1]
             ; byrRegs +[r1]
@@ -136,43 +136,45 @@ G_M28192_IG08:        ; bbWeight=2, gcrefRegs=0232 {r1 r4 r5 r9}, byrefRegs=0000
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
             adds    r0, r2, 1
-            str     r0, [r9+0x0C]
-            mov     r10, 1
+            str     r0, [r8+0x0C]
+            mov     r9, 1
                        ;; size=28 bbWeight=2 PerfScore 20.00
-G_M28192_IG09:        ; bbWeight=4, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000 {}, byref, isz
-            mov     r0, r9
+G_M28192_IG09:        ; bbWeight=4, gcrefRegs=0130 {r4 r5 r8}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r8
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0 r9]
+            ; gcrRegs -[r0 r8]
             ; gcr arg pop 0
-            cmp     r10, 0
+            cmp     r9, 0
             bne     SHORT G_M28192_IG14
             adds    r6, r6, 1
-            cmp     r8, r6
+            ldr     r0, [r5+0x04]
+            cmp     r0, r6
             bne     SHORT G_M28192_IG11
-                       ;; size=24 bbWeight=4 PerfScore 36.00
+                       ;; size=26 bbWeight=4 PerfScore 40.00
 G_M28192_IG10:        ; bbWeight=2, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref
             movs    r6, 0
                        ;; size=2 bbWeight=2 PerfScore 2.00
 G_M28192_IG11:        ; bbWeight=4, gcrefRegs=0030 {r4 r5}, byrefRegs=0000 {}, byref, isz
             adds    r7, r7, 1
-            cmp     r8, r7
+            ldr     r0, [r5+0x04]
+            cmp     r0, r7
             bgt     SHORT G_M28192_IG06
-                       ;; size=6 bbWeight=4 PerfScore 12.00
+                       ;; size=8 bbWeight=4 PerfScore 16.00
 G_M28192_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[r4-r5]
             movs    r0, 0
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M28192_IG13:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r5,r6,r7,r8,r9,r10,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M28192_IG14:        ; bbWeight=0.50, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             movs    r0, 1
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M28192_IG15:        ; bbWeight=0.50, epilog, nogc, extend
-            pop     {r3,r4,r5,r6,r7,r8,r9,r10,r11,pc}
+            pop     {r4,r5,r6,r7,r8,r9,r11,pc}
                        ;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M28192_IG16:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             movw    r3, 0xd1ff
@@ -182,7 +184,7 @@ G_M28192_IG16:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             bkpt    
                        ;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 268, prolog size 10, PerfScore 160.00, instruction count 92, allocated bytes for code 268 (MethodHash=5f5691df) for method System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (FullOpts)
+Total bytes of code 270, prolog size 10, PerfScore 172.00, instruction count 95, allocated bytes for code 270 (MethodHash=5f5691df) for method System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -194,7 +196,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 134 (0x00086) Actual length = 268 (0x00010c)
+  Function Length   : 135 (0x00087) Actual length = 270 (0x00010e)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -206,7 +208,7 @@ Unwind Info:
   Epilog Start Index         : 0 (0x00)
   ---- Unwind codes ----
     ---- Epilog start at index 0 ----
-    AF F8       pop {r3,r4,r5,r6,r7,r8,r9,r10,r11,lr}    ; opsize 32
+    AB F0       pop {r4,r5,r6,r7,r8,r9,r11,lr}      ; opsize 32
     FF          end
     FF          end
 

+24 (+2.24%) : 161632.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->   r9        
 ;  V10 loc7         [V10,T08] (  3, 12   )     ref  ->   r2         class-hnd <System.Xml.XmlDictionaryString>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T25] (  3,  0   )     ref  ->   r4         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T26] (  3,  0   )     ref  ->  r10         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T24] (  3,  0   )     ref  ->   r4         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T25] (  3,  0   )     ref  ->  r10         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T21] (  4,  0   )     int  ->   r0         "Inlining Arg"
+;  V17 tmp6         [V17,T20] (  4,  0   )     int  ->   r0         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T27] (  3,  0   )     int  ->   r5         "Inlining Arg"
-;  V20 tmp9         [V20,T31] (  2,  0   )   byref  ->   r4         "Inlining Arg"
+;  V19 tmp8         [V19,T26] (  3,  0   )     int  ->   r5         "Inlining Arg"
+;  V20 tmp9         [V20,T30] (  2,  0   )   byref  ->   r4         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T32] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V26 tmp15        [V26,T31] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T22] (  4,  0   )     int  ->   r0         "Inlining Arg"
+;  V28 tmp17        [V28,T21] (  4,  0   )     int  ->   r0         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T28] (  3,  0   )     int  ->   r8         "Inlining Arg"
-;  V31 tmp20        [V31,T33] (  2,  0   )   byref  ->   r7         "Inlining Arg"
+;  V30 tmp19        [V30,T27] (  3,  0   )     int  ->   r8         "Inlining Arg"
+;  V31 tmp20        [V31,T32] (  2,  0   )   byref  ->   r7         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T34] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V37 tmp26        [V37,T33] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T23] (  4,  0   )     int  ->   r0         "Inlining Arg"
+;  V41 tmp30        [V41,T22] (  4,  0   )     int  ->   r0         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T29] (  3,  0   )     int  ->   r5         "Inlining Arg"
-;  V44 tmp33        [V44,T35] (  2,  0   )   byref  ->   r4         "Inlining Arg"
+;  V43 tmp32        [V43,T28] (  3,  0   )     int  ->   r5         "Inlining Arg"
+;  V44 tmp33        [V44,T34] (  2,  0   )   byref  ->   r4         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T36] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V50 tmp39        [V50,T35] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T24] (  4,  0   )     int  ->   r4         "Inlining Arg"
+;  V52 tmp41        [V52,T23] (  4,  0   )     int  ->   r4         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T30] (  3,  0   )     int  ->   r4         "Inlining Arg"
-;  V55 tmp44        [V55,T37] (  2,  0   )   byref  ->   r5         "Inlining Arg"
+;  V54 tmp43        [V54,T29] (  3,  0   )     int  ->   r4         "Inlining Arg"
+;  V55 tmp44        [V55,T36] (  2,  0   )   byref  ->   r5         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T44] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T38] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V61 tmp50        [V61,T37] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;  V62 tmp51        [V62,T12] (  3,  8   )   ubyte  ->   r6         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T06] (  4, 12   )     int  ->  r10         "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 25.46)     ref  ->   r8         class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x4)" P-INDEP
 ;  V97 tmp86        [V97,T09] (  3, 12   )     ref  ->   r2         "arr expr"
-;  V98 tmp87        [V98,T39] (  2,  0   )     ref  ->   r1         "argument with side effect"
-;  V99 tmp88        [V99,T40] (  2,  0   )     ref  ->   r1         "argument with side effect"
+;  V98 tmp87        [V98,T38] (  2,  0   )     ref  ->   r1         "argument with side effect"
+;  V99 tmp88        [V99,T39] (  2,  0   )     ref  ->   r1         "argument with side effect"
 ;  V100 cse0        [V100,T18] (  3,  3   )     ref  ->   r0         "CSE - moderate"
 ;  V101 cse1        [V101,T11] (  6, 10   )     int  ->   r7         multi-def "CSE - aggressive"
 ;  V102 cse2        [V102,T05] (  4, 12.50)   byref  ->   r8         hoist multi-def "CSE - aggressive"
-;  V103 cse3        [V103,T20] ( 12,  0   )     ref  ->   r1         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 28
 
@@ -406,17 +405,16 @@ G_M45430_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             subs    r5, r1, r0
             cmp     r5, 0
             bge     SHORT G_M45430_IG30
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=64 bbWeight=0 PerfScore 0.00
+                       ;; size=70 bbWeight=0 PerfScore 0.00
 G_M45430_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             cmp     r5, 11
             blo     SHORT G_M45430_IG31
@@ -468,17 +466,16 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             sub     r8, r1, r0
             cmp     r8, 0
             bge     SHORT G_M45430_IG33
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=66 bbWeight=0 PerfScore 0.00
+                       ;; size=72 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
             cmp     r8, 0
             beq     SHORT G_M45430_IG34
@@ -578,17 +575,16 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             subs    r5, r1, r0
             cmp     r5, 0
             bge     SHORT G_M45430_IG38
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=62 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             cmp     r5, 11
             blo     SHORT G_M45430_IG39
@@ -650,17 +646,16 @@ G_M45430_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             subs    r4, r0, r4
             cmp     r4, 0
             bge     SHORT G_M45430_IG43
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=42 bbWeight=0 PerfScore 0.00
 G_M45430_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref, isz
             cmp     r4, 0
             beq     SHORT G_M45430_IG44
@@ -727,7 +722,7 @@ G_M45430_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=64 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1070, prolog size 28, PerfScore 243.10, instruction count 391, allocated bytes for code 1070 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1094, prolog size 28, PerfScore 243.10, instruction count 395, allocated bytes for code 1094 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -739,7 +734,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 535 (0x00217) Actual length = 1070 (0x00042e)
+  Function Length   : 547 (0x00223) Actual length = 1094 (0x000446)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+2.39%) : 162350.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)

@@ -16,29 +16,29 @@
 ;  V05 loc2         [V05,T02] (  4, 12.50)     ref  ->   r9         class-hnd <System.Xml.XmlDictionaryString>
 ;  V06 loc3         [V06    ] ( 17,  0   )  struct (24) [sp+0x00]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T15] (  3,  0   )     ref  ->   r4         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V08 tmp1         [V08,T14] (  3,  0   )     ref  ->   r4         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V10 tmp3         [V10,T13] (  4,  0   )     int  ->   r0         "Inlining Arg"
+;  V10 tmp3         [V10,T12] (  4,  0   )     int  ->   r0         "Inlining Arg"
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V12 tmp5         [V12,T16] (  3,  0   )     int  ->   r5         "Inlining Arg"
-;  V13 tmp6         [V13,T18] (  2,  0   )   byref  ->   r4         "Inlining Arg"
+;  V12 tmp5         [V12,T15] (  3,  0   )     int  ->   r5         "Inlining Arg"
+;  V13 tmp6         [V13,T17] (  2,  0   )   byref  ->   r4         "Inlining Arg"
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V16 tmp9         [V16,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V16 tmp9         [V16,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V18 tmp11        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V19 tmp12        [V19,T19] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V19 tmp12        [V19,T18] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V21 tmp14        [V21,T14] (  4,  0   )     int  ->   r4         "Inlining Arg"
+;  V21 tmp14        [V21,T13] (  4,  0   )     int  ->   r4         "Inlining Arg"
 ;* V22 tmp15        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V23 tmp16        [V23,T17] (  3,  0   )     int  ->   r4         "Inlining Arg"
-;  V24 tmp17        [V24,T20] (  2,  0   )   byref  ->   r5         "Inlining Arg"
+;  V23 tmp16        [V23,T16] (  3,  0   )     int  ->   r4         "Inlining Arg"
+;  V24 tmp17        [V24,T19] (  2,  0   )   byref  ->   r5         "Inlining Arg"
 ;* V25 tmp18        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp19        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V27 tmp20        [V27,T24] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V27 tmp20        [V27,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V29 tmp22        [V29    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V30 tmp23        [V30,T21] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V30 tmp23        [V30,T20] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;  V31 tmp24        [V31,T00] (  5, 27.00)     ref  ->   r2         class-hnd exact "Inlining Arg" <System.String>
 ;  V32 tmp25        [V32,T11] (  2,  4   )   ubyte  ->   r0         "Inline return value spill temp"
 ;  V33 tmp26        [V33,T04] (  2,  8   )   byref  ->   r0         "impAppendStmt"
@@ -59,11 +59,10 @@
 ;* V48 tmp41        [V48    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x4)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )   byref  ->  zero-ref    "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V50 tmp43        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x4)" P-INDEP
-;  V51 tmp44        [V51,T22] (  2,  0   )     ref  ->   r1         "argument with side effect"
+;  V51 tmp44        [V51,T21] (  2,  0   )     ref  ->   r1         "argument with side effect"
 ;  V52 cse0         [V52,T10] (  2,  5   )   byref  ->   r4         hoist "CSE - aggressive"
 ;  V53 cse1         [V53,T07] (  3,  6   )     int  ->   r8         "CSE - aggressive"
 ;  V54 cse2         [V54,T08] (  3,  5.50)     int  ->   r1         "CSE - aggressive"
-;  V55 cse3         [V55,T12] (  6,  0   )     ref  ->   r1         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 24
 
@@ -219,17 +218,16 @@ G_M28309_IG15:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             subs    r5, r1, r0
             cmp     r5, 0
             bge     SHORT G_M28309_IG16
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=62 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M28309_IG16:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             cmp     r5, 8
             blo     SHORT G_M28309_IG17
@@ -291,17 +289,16 @@ G_M28309_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             subs    r4, r0, r4
             cmp     r4, 0
             bge     SHORT G_M28309_IG21
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=42 bbWeight=0 PerfScore 0.00
 G_M28309_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref, isz
             cmp     r4, 0
             beq     SHORT G_M28309_IG22
@@ -368,7 +365,7 @@ G_M28309_IG23:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=64 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 502, prolog size 28, PerfScore 100.51, instruction count 188, allocated bytes for code 502 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
+Total bytes of code 514, prolog size 28, PerfScore 100.51, instruction count 190, allocated bytes for code 514 (MethodHash=e43c916a) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -380,7 +377,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 251 (0x000fb) Actual length = 502 (0x0001f6)
+  Function Length   : 257 (0x00101) Actual length = 514 (0x000202)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+2.43%) : 162349.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)

@@ -16,29 +16,29 @@
 ;  V05 loc2         [V05,T01] (  6, 16.25)     ref  ->   r9         class-hnd exact <System.String>
 ;  V06 loc3         [V06    ] ( 17,  0   )  struct (24) [sp+0x00]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T14] (  3,  0   )     ref  ->   r4         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V08 tmp1         [V08,T13] (  3,  0   )     ref  ->   r4         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V10 tmp3         [V10,T12] (  4,  0   )     int  ->   r0         "Inlining Arg"
+;  V10 tmp3         [V10,T11] (  4,  0   )     int  ->   r0         "Inlining Arg"
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V12 tmp5         [V12,T15] (  3,  0   )     int  ->   r5         "Inlining Arg"
-;  V13 tmp6         [V13,T17] (  2,  0   )   byref  ->   r4         "Inlining Arg"
+;  V12 tmp5         [V12,T14] (  3,  0   )     int  ->   r5         "Inlining Arg"
+;  V13 tmp6         [V13,T16] (  2,  0   )   byref  ->   r4         "Inlining Arg"
 ;* V14 tmp7         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp8         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V16 tmp9         [V16,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V16 tmp9         [V16,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V18 tmp11        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V19 tmp12        [V19,T18] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V19 tmp12        [V19,T17] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;* V20 tmp13        [V20    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V21 tmp14        [V21,T13] (  4,  0   )     int  ->   r4         "Inlining Arg"
+;  V21 tmp14        [V21,T12] (  4,  0   )     int  ->   r4         "Inlining Arg"
 ;* V22 tmp15        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V23 tmp16        [V23,T16] (  3,  0   )     int  ->   r4         "Inlining Arg"
-;  V24 tmp17        [V24,T19] (  2,  0   )   byref  ->   r5         "Inlining Arg"
+;  V23 tmp16        [V23,T15] (  3,  0   )     int  ->   r4         "Inlining Arg"
+;  V24 tmp17        [V24,T18] (  2,  0   )   byref  ->   r5         "Inlining Arg"
 ;* V25 tmp18        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp19        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V27 tmp20        [V27,T23] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V27 tmp20        [V27,T22] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V29 tmp22        [V29    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V30 tmp23        [V30,T20] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V30 tmp23        [V30,T19] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;  V31 tmp24        [V31,T10] (  2,  4   )   ubyte  ->   r0         "Inline return value spill temp"
 ;  V32 tmp25        [V32,T03] (  2,  8   )   byref  ->   r0         "impAppendStmt"
 ;* V33 tmp26        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -58,11 +58,10 @@
 ;* V47 tmp40        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x4)" P-INDEP
 ;* V48 tmp41        [V48    ] (  0,  0   )   byref  ->  zero-ref    "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x4)" P-INDEP
-;  V50 tmp43        [V50,T21] (  2,  0   )     ref  ->   r1         "argument with side effect"
+;  V50 tmp43        [V50,T20] (  2,  0   )     ref  ->   r1         "argument with side effect"
 ;  V51 cse0         [V51,T09] (  2,  5   )   byref  ->   r4         hoist "CSE - aggressive"
 ;  V52 cse1         [V52,T06] (  3,  6   )     int  ->   r8         "CSE - aggressive"
 ;  V53 cse2         [V53,T07] (  3,  5.50)     int  ->   r2         "CSE - aggressive"
-;  V54 cse3         [V54,T11] (  6,  0   )     ref  ->   r1         multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 24
 
@@ -211,17 +210,16 @@ G_M58179_IG14:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             subs    r5, r1, r0
             cmp     r5, 0
             bge     SHORT G_M58179_IG15
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=62 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M58179_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             cmp     r5, 8
             blo     SHORT G_M58179_IG16
@@ -283,17 +281,16 @@ G_M58179_IG19:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             subs    r4, r0, r4
             cmp     r4, 0
             bge     SHORT G_M58179_IG20
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=42 bbWeight=0 PerfScore 0.00
 G_M58179_IG20:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref, isz
             cmp     r4, 0
             beq     SHORT G_M58179_IG21
@@ -360,7 +357,7 @@ G_M58179_IG22:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=64 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 494, prolog size 28, PerfScore 93.00, instruction count 185, allocated bytes for code 494 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
+Total bytes of code 506, prolog size 28, PerfScore 93.00, instruction count 187, allocated bytes for code 506 (MethodHash=40bb1cbc) for method System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -372,7 +369,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 247 (0x000f7) Actual length = 494 (0x0001ee)
+  Function Length   : 253 (0x000fd) Actual length = 506 (0x0001fa)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries_tests.run.linux.arm.Release.mch

-18 (-3.21%) : 185864.dasm - System.String:Concat(System.String,System.String,System.String,System.String):System.String (Tier1)

@@ -9,74 +9,71 @@
 ; 8 inlinees with PGO data; 20 single block inlinees; 16 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  8,  3   )     ref  ->   r4         class-hnd single-def <System.String>
-;  V01 arg1         [V01,T01] (  8,  2   )     ref  ->   r5         class-hnd single-def <System.String>
-;  V02 arg2         [V02,T02] (  8,  2   )     ref  ->   r6         class-hnd single-def <System.String>
-;  V03 arg3         [V03,T03] (  8,  2   )     ref  ->   r7         class-hnd single-def <System.String>
+;  V00 arg0         [V00,T00] ( 13,  3   )     ref  ->   r4         class-hnd single-def <System.String>
+;  V01 arg1         [V01,T01] ( 12,  2   )     ref  ->   r5         class-hnd single-def <System.String>
+;  V02 arg2         [V02,T02] ( 12,  2   )     ref  ->   r6         class-hnd single-def <System.String>
+;  V03 arg3         [V03,T03] ( 11,  2   )     ref  ->   r7         class-hnd single-def <System.String>
 ;* V04 loc0         [V04    ] (  0,  0   )    long  ->  zero-ref   
-;  V05 loc1         [V05,T06] (  8,  0   )     ref  ->  [sp+0x04]  class-hnd exact spill-single-def <System.String>
+;  V05 loc1         [V05,T06] (  5,  0   )     ref  ->   r8         class-hnd exact single-def <System.String>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T04] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
-;  V08 tmp2         [V08,T12] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
-;  V09 tmp3         [V09,T13] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
-;  V10 tmp4         [V10,T14] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
+;  V08 tmp2         [V08,T09] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
+;  V09 tmp3         [V09,T10] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
+;  V10 tmp4         [V10,T11] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
 ;* V11 tmp5         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V12 tmp6         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp7         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V14 tmp8         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp9         [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V16 tmp10        [V16,T20] (  2,  0   )   byref  ->   r1         single-def "Inlining Arg"
-;  V17 tmp11        [V17,T21] (  2,  0   )   byref  ->   lr         single-def "Inlining Arg"
-;  V18 tmp12        [V18,T29] (  2,  0   )     int  ->   r2         "Inlining Arg"
+;  V16 tmp10        [V16,T17] (  2,  0   )   byref  ->   r0         single-def "Inlining Arg"
+;  V17 tmp11        [V17,T18] (  2,  0   )   byref  ->   r1         single-def "Inlining Arg"
+;  V18 tmp12        [V18,T26] (  2,  0   )     int  ->   r2         "Inlining Arg"
 ;* V19 tmp13        [V19    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V20 tmp14        [V20,T30] (  2,  0   )     int  ->   r0         "Inlining Arg"
+;  V20 tmp14        [V20,T27] (  2,  0   )     int  ->   r0         "Inlining Arg"
 ;* V21 tmp15        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp16        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp17        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp18        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp19        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V26 tmp20        [V26,T22] (  2,  0   )   byref  ->   r1         single-def "Inlining Arg"
-;  V27 tmp21        [V27,T23] (  2,  0   )   byref  ->   lr         single-def "Inlining Arg"
-;  V28 tmp22        [V28,T31] (  2,  0   )     int  ->   r2         "Inlining Arg"
+;  V26 tmp20        [V26,T19] (  2,  0   )   byref  ->   r0         single-def "Inlining Arg"
+;  V27 tmp21        [V27,T20] (  2,  0   )   byref  ->   r1         single-def "Inlining Arg"
+;  V28 tmp22        [V28,T28] (  2,  0   )     int  ->   r2         "Inlining Arg"
 ;* V29 tmp23        [V29    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V30 tmp24        [V30,T15] (  3,  0   )     int  ->   r5         "Inlining Arg"
+;  V30 tmp24        [V30,T12] (  3,  0   )     int  ->   r5         "Inlining Arg"
 ;* V31 tmp25        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V32 tmp26        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp27        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp28        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp29        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V36 tmp30        [V36,T24] (  2,  0   )   byref  ->   r0         single-def "Inlining Arg"
-;  V37 tmp31        [V37,T25] (  2,  0   )   byref  ->   r1         single-def "Inlining Arg"
-;  V38 tmp32        [V38,T32] (  2,  0   )     int  ->   r2         "Inlining Arg"
+;  V36 tmp30        [V36,T21] (  2,  0   )   byref  ->   r0         single-def "Inlining Arg"
+;  V37 tmp31        [V37,T22] (  2,  0   )   byref  ->   r1         single-def "Inlining Arg"
+;  V38 tmp32        [V38,T29] (  2,  0   )     int  ->   r2         "Inlining Arg"
 ;* V39 tmp33        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V40 tmp34        [V40,T16] (  3,  0   )     int  ->   r4         "Inlining Arg"
+;  V40 tmp34        [V40,T13] (  3,  0   )     int  ->   r4         "Inlining Arg"
 ;* V41 tmp35        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V42 tmp36        [V42    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp37        [V43    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp38        [V44    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V45 tmp39        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V46 tmp40        [V46,T26] (  2,  0   )   byref  ->   r0         single-def "Inlining Arg"
-;  V47 tmp41        [V47,T27] (  2,  0   )   byref  ->   r1         single-def "Inlining Arg"
-;  V48 tmp42        [V48,T33] (  2,  0   )     int  ->   r5         "Inlining Arg"
+;  V46 tmp40        [V46,T23] (  2,  0   )   byref  ->   r0         single-def "Inlining Arg"
+;  V47 tmp41        [V47,T24] (  2,  0   )   byref  ->   r1         single-def "Inlining Arg"
+;  V48 tmp42        [V48,T30] (  2,  0   )     int  ->   r2         "Inlining Arg"
 ;* V49 tmp43        [V49    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V50 tmp44        [V50,T28] (  2,  0   )     ref  ->   r0         single-def "Single return block return value"
-;  V51 cse0         [V51,T17] (  3,  0   )     int  ->   r4         "CSE - moderate"
-;  V52 cse1         [V52,T18] (  3,  0   )     int  ->   r4         "CSE - moderate"
-;  V53 cse2         [V53,T07] (  7,  0   )     int  ->   r8         "CSE - moderate"
-;  V54 cse3         [V54,T08] (  6,  0   )     int  ->   r9         "CSE - moderate"
-;  V55 cse4         [V55,T09] (  6,  0   )     int  ->  r10         "CSE - conservative"
-;  V56 cse5         [V56,T10] (  5,  0   )     int  ->  [sp+0x0C]  "CSE - conservative"
-;  V57 cse6         [V57,T11] (  5,  0   )     int  ->  [sp+0x08]  spill-single-def "CSE - moderate"
-;  V58 cse7         [V58,T05] ( 15,  0   )     ref  ->   r1         multi-def "CSE - aggressive"
-;  V59 rat0         [V59,T19] (  3,  0   )     int  ->   r0         "field V04.lo (fldOffset=0x0)" P-INDEP
-;  V60 rat1         [V60,T34] (  2,  0   )     int  ->   r2         "field V04.hi (fldOffset=0x4)" P-INDEP
+;  V50 tmp44        [V50,T25] (  2,  0   )     ref  ->   r0         single-def "Single return block return value"
+;  V51 cse0         [V51,T14] (  3,  0   )     int  ->   r4         "CSE - moderate"
+;  V52 cse1         [V52,T15] (  3,  0   )     int  ->  [sp+0x04]  spill-single-def "CSE - moderate"
+;  V53 cse2         [V53,T08] (  5,  0   )     int  ->   r9         "CSE - moderate"
+;  V54 cse3         [V54,T07] (  5,  0   )   byref  ->  r10         "CSE - moderate"
+;  V55 cse4         [V55,T05] ( 15,  0   )     ref  ->   r1         multi-def "CSE - aggressive"
+;  V56 rat0         [V56,T16] (  3,  0   )     int  ->   r3         "field V04.lo (fldOffset=0x0)" P-INDEP
+;  V57 rat1         [V57,T31] (  2,  0   )     int  ->   r2         "field V04.hi (fldOffset=0x4)" P-INDEP
 ;
-; Lcl frame size = 20
+; Lcl frame size = 12
 
 G_M26691_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 20
-            add     r11, sp, 48
+            sub     sp, 12
+            add     r11, sp, 40
             mov     r4, r0
             ; gcrRegs +[r4]
             mov     r5, r1
@@ -91,12 +88,12 @@ G_M26691_IG02:        ; bbWeight=1, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000
             beq     SHORT G_M26691_IG06
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M26691_IG03:        ; bbWeight=0, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
-            ldr     r8, [r4+0x04]
-            cmp     r8, 0
+            ldr     r0, [r4+0x04]
+            cmp     r0, 0
             beq     SHORT G_M26691_IG04
             movs    r0, 0
             b       SHORT G_M26691_IG05
-                       ;; size=14 bbWeight=0 PerfScore 0.00
+                       ;; size=10 bbWeight=0 PerfScore 0.00
 G_M26691_IG04:        ; bbWeight=0, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref
             movs    r0, 1
                        ;; size=2 bbWeight=0 PerfScore 0.00
@@ -117,21 +114,21 @@ G_M26691_IG06:        ; bbWeight=0, gcrefRegs=00E0 {r5 r6 r7}, byrefRegs=0000 {}
             ldr     r3, [r3]
                        ;; size=16 bbWeight=0 PerfScore 0.00
 G_M26691_IG07:        ; bbWeight=0, epilog, nogc, extend
-            add     sp, 20
+            add     sp, 12
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             bx      r3     // <unknown method>
             ; gcr arg pop 0
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M26691_IG08:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M26691_IG08:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0-r2] +[r4]
             cmp     r5, 0
             beq     SHORT G_M26691_IG11
-            ldr     r9, [r5+0x04]
-            cmp     r9, 0
+            ldr     r0, [r5+0x04]
+            cmp     r0, 0
             beq     SHORT G_M26691_IG09
             movs    r0, 0
             b       SHORT G_M26691_IG10
-                       ;; size=18 bbWeight=0 PerfScore 0.00
+                       ;; size=14 bbWeight=0 PerfScore 0.00
 G_M26691_IG09:        ; bbWeight=0, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref
             movs    r0, 1
                        ;; size=2 bbWeight=0 PerfScore 0.00
@@ -152,21 +149,21 @@ G_M26691_IG11:        ; bbWeight=0, gcrefRegs=00D0 {r4 r6 r7}, byrefRegs=0000 {}
             ldr     r3, [r3]
                        ;; size=16 bbWeight=0 PerfScore 0.00
 G_M26691_IG12:        ; bbWeight=0, epilog, nogc, extend
-            add     sp, 20
+            add     sp, 12
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             bx      r3     // <unknown method>
             ; gcr arg pop 0
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M26691_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M26691_IG13:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0-r2] +[r5]
             cmp     r6, 0
             beq     SHORT G_M26691_IG16
-            ldr     r10, [r6+0x04]
-            cmp     r10, 0
+            ldr     r0, [r6+0x04]
+            cmp     r0, 0
             beq     SHORT G_M26691_IG14
             movs    r0, 0
             b       SHORT G_M26691_IG15
-                       ;; size=18 bbWeight=0 PerfScore 0.00
+                       ;; size=14 bbWeight=0 PerfScore 0.00
 G_M26691_IG14:        ; bbWeight=0, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref
             movs    r0, 1
                        ;; size=2 bbWeight=0 PerfScore 0.00
@@ -187,17 +184,17 @@ G_M26691_IG16:        ; bbWeight=0, gcrefRegs=00B0 {r4 r5 r7}, byrefRegs=0000 {}
             ldr     r3, [r3]
                        ;; size=16 bbWeight=0 PerfScore 0.00
 G_M26691_IG17:        ; bbWeight=0, epilog, nogc, extend
-            add     sp, 20
+            add     sp, 12
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             bx      r3     // <unknown method>
             ; gcr arg pop 0
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M26691_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M26691_IG18:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[r0-r2] +[r6]
             cmp     r7, 0
             beq     SHORT G_M26691_IG21
-            ldr     r3, [r7+0x04]
-            cmp     r3, 0
+            ldr     r0, [r7+0x04]
+            cmp     r0, 0
             beq     SHORT G_M26691_IG19
             movs    r0, 0
             b       SHORT G_M26691_IG20
@@ -222,30 +219,33 @@ G_M26691_IG21:        ; bbWeight=0, gcrefRegs=0070 {r4 r5 r6}, byrefRegs=0000 {}
             ldr     r3, [r3]
                        ;; size=16 bbWeight=0 PerfScore 0.00
 G_M26691_IG22:        ; bbWeight=0, epilog, nogc, extend
-            add     sp, 20
+            add     sp, 12
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,lr}
             bx      r3     // <unknown method>
             ; gcr arg pop 0
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M26691_IG23:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, gcvars, byref
+G_M26691_IG23:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[r0-r2] +[r7]
+            ldr     r3, [r4+0x04]
             movs    r2, 0
-            movs    r1, 0
-            adds    r0, r9, r8
-            adcs    r2, r1
-                       ;; size=10 bbWeight=0 PerfScore 0.00
+            ldr     r1, [r5+0x04]
+            movs    r0, 0
+            adds    r3, r3, r1
+            adcs    r2, r0
+            ldr     r1, [r6+0x04]
+                       ;; size=14 bbWeight=0 PerfScore 0.00
 G_M26691_IG24:        ; bbWeight=0, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref
-            adds    r0, r0, r10
-            adcs    r2, r1
+            adds    r3, r3, r1
+            adcs    r2, r0
+            ldr     r1, [r7+0x04]
                        ;; size=6 bbWeight=0 PerfScore 0.00
 G_M26691_IG25:        ; bbWeight=0, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref
-            str     r3, [sp+0x0C]
-            adds    r0, r0, r3
-            adcs    r2, r1
-                       ;; size=6 bbWeight=0 PerfScore 0.00
+            adds    r3, r3, r1
+            adcs    r2, r0
+                       ;; size=4 bbWeight=0 PerfScore 0.00
 G_M26691_IG26:        ; bbWeight=0, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000 {}, byref, isz
-            cmp     r0, 0x80000000
-            sbcs    r2, r1
+            cmp     r3, 0x80000000
+            sbcs    r2, r0
             blt     SHORT G_M26691_IG27
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -257,14 +257,15 @@ G_M26691_IG26:        ; bbWeight=0, gcrefRegs=00F0 {r4 r5 r6 r7}, byrefRegs=0000
...

-26 (-3.10%) : 600771.dasm - System.Text.Json.JsonDocument+MetadataDb:Dispose():this (Tier1)

@@ -13,29 +13,29 @@
 ;  V01 loc0         [V01,T03] ( 10,  5   )     ref  ->   r5         class-hnd single-def <ubyte[]>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T07] (  2,  4   )     ref  ->   r6         class-hnd exact single-def "spilling ret_expr" <System.Buffers.SharedArrayPool`1[ubyte]>
-;  V04 tmp2         [V04,T14] (  7,  2.08)     ref  ->   r6         class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[ubyte]>
+;  V04 tmp2         [V04,T15] (  7,  2.08)     ref  ->   r6         class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[ubyte]>
 ;* V05 tmp3         [V05    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V06 tmp4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
 ;  V07 tmp5         [V07,T04] (  8,  4.15)     int  ->   r7         "Inline stloc first use temp"
 ;  V08 tmp6         [V08,T08] (  2,  4   )     ref  ->   r8         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
 ;  V09 tmp7         [V09,T05] (  5,  4.00)     ref  ->   r8        
 ;* V10 tmp8         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V11 tmp9         [V11,T17] (  4,  2   )   ubyte  ->   r9         "Inline stloc first use temp"
+;  V11 tmp9         [V11,T18] (  4,  2   )   ubyte  ->   r9         "Inline stloc first use temp"
 ;  V12 tmp10        [V12,T23] (  3,  1.07)   ubyte  ->  r10         "Inline stloc first use temp"
-;  V13 tmp11        [V13,T16] (  4,  2   )     ref  ->   r8         class-hnd exact single-def "Inline stloc first use temp" <System.Buffers.ArrayPoolEventSource>
-;  V14 tmp12        [V14,T39] (  2,  0   )     int  ->  [sp+0x2C]  spill-single-def "impAppendStmt"
-;  V15 tmp13        [V15,T40] (  2,  0   )     int  ->  [sp+0x28]  spill-single-def "impAppendStmt"
-;  V16 tmp14        [V16,T41] (  2,  0   )     int  ->  r10         "impAppendStmt"
-;  V17 tmp15        [V17,T42] (  2,  0   )     int  ->   r5         "impAppendStmt"
+;  V13 tmp11        [V13,T17] (  4,  2   )     ref  ->   r8         class-hnd exact single-def "Inline stloc first use temp" <System.Buffers.ArrayPoolEventSource>
+;  V14 tmp12        [V14,T38] (  2,  0   )     int  ->  [sp+0x2C]  spill-single-def "impAppendStmt"
+;  V15 tmp13        [V15,T39] (  2,  0   )     int  ->  [sp+0x28]  spill-single-def "impAppendStmt"
+;  V16 tmp14        [V16,T40] (  2,  0   )     int  ->  r10         "impAppendStmt"
+;  V17 tmp15        [V17,T41] (  2,  0   )     int  ->   r5         "impAppendStmt"
 ;* V18 tmp16        [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V19 tmp17        [V19    ] (  0,  0   )     int  ->  zero-ref   
 ;* V20 tmp18        [V20    ] (  0,  0   )     int  ->  zero-ref   
-;  V21 tmp19        [V21,T43] (  2,  0   )     int  ->   r3        
+;  V21 tmp19        [V21,T42] (  2,  0   )     int  ->   r3        
 ;* V22 tmp20        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V23 tmp21        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp22        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp23        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp24        [V26,T34] (  3,  0   )     int  ->   r0        
+;  V26 tmp24        [V26,T33] (  3,  0   )     int  ->   r0        
 ;* V27 tmp25        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V28 tmp26        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp27        [V29    ] (  0,  0   )     int  ->  zero-ref   
@@ -46,15 +46,15 @@
 ;* V34 tmp32        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp33        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp34        [V36    ] (  0,  0   )     int  ->  zero-ref   
-;  V37 tmp35        [V37,T35] (  3,  0   )     int  ->   r1        
+;  V37 tmp35        [V37,T34] (  3,  0   )     int  ->   r1        
 ;  V38 tmp36        [V38,T09] (  2,  4   )     int  ->  [sp+0x24]  spill-single-def "impAppendStmt"
 ;  V39 tmp37        [V39,T06] (  4,  4   )   byref  ->   r2         single-def "Inline stloc first use temp"
-;  V40 tmp38        [V40,T13] (  3,  2.29)     ref  ->   r8         class-hnd single-def "Inline stloc first use temp" <System.Array>
+;  V40 tmp38        [V40,T14] (  3,  2.29)     ref  ->   r8         class-hnd single-def "Inline stloc first use temp" <System.Array>
 ;* V41 tmp39        [V41    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V42 tmp40        [V42,T29] (  2,  0.29)     ref  ->   r3         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V43 tmp41        [V43,T30] (  4,  0.22)     ref  ->   r3        
+;  V42 tmp40        [V42,T28] (  2,  0.29)     ref  ->   r3         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V43 tmp41        [V43,T29] (  4,  0.22)     ref  ->   r3        
 ;* V44 tmp42        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions>
-;  V45 tmp43        [V45,T33] (  3,  0   )     ref  ->  r10         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V45 tmp43        [V45,T32] (  3,  0   )     ref  ->  r10         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V46 tmp44        [V46    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp45        [V47    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V48 tmp46        [V48,T00] ( 17, 34   )     int  ->   r0         "Inlining Arg"
@@ -62,34 +62,33 @@
 ;* V50 tmp48        [V50    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V51 tmp49        [V51    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;  V52 tmp50        [V52,T11] (  3,  3   )     int  ->  [sp+0x20]  spill-single-def "Inline stloc first use temp"
-;  V53 tmp51        [V53,T31] (  3,  0.22)   ubyte  ->  r10         "Inline return value spill temp"
-;  V54 tmp52        [V54,T26] (  3,  0.66)     ref  ->  [sp+0x0C]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V53 tmp51        [V53,T30] (  3,  0.22)   ubyte  ->  r10         "Inline return value spill temp"
+;  V54 tmp52        [V54,T12] (  6,  2.41)     ref  ->  r10         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;  V55 tmp53        [V55,T10] (  7,  3.21)     int  ->  [sp+0x1C]  "Inline stloc first use temp"
 ;  V56 tmp54        [V56,T20] (  4,  1.75)     int  ->  [sp+0x18]  "Inline stloc first use temp"
-;  V57 tmp55        [V57,T12] (  2,  2.34)     int  ->  r10         "dup spill"
+;  V57 tmp55        [V57,T13] (  2,  2.34)     int  ->   r0         "dup spill"
 ;* V58 tmp56        [V58    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V59 tmp57        [V59,T36] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
-;  V60 tmp58        [V60,T27] (  4,  0.44)     int  ->   r3         "dup spill"
+;  V59 tmp57        [V59,T35] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
+;  V60 tmp58        [V60,T26] (  4,  0.44)     int  ->   r3         "dup spill"
 ;* V61 tmp59        [V61    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp60        [V62    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V63 tmp61        [V63,T22] (  3,  1.46)   ubyte  ->  [sp+0x14]  "Inline stloc first use temp"
-;  V64 tmp62        [V64,T01] (  8,  8.18)     ref  ->  [sp+0x08]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V64 tmp62        [V64,T01] (  8,  8.18)     ref  ->  [sp+0x0C]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V65 tmp63        [V65,T21] (  3,  1.46)     ref  ->   r1         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V66 tmp64        [V66,T15] (  5,  2.04)     int  ->   r2         "Inline stloc first use temp"
-;  V67 tmp65        [V67,T44] (  2,  0   )     int  ->   r0         "Inlining Arg"
+;  V66 tmp64        [V66,T16] (  5,  2.04)     int  ->  [sp+0x10]  spill-single-def "Inline stloc first use temp"
+;  V67 tmp65        [V67,T43] (  2,  0   )     int  ->   r0         "Inlining Arg"
 ;* V68 tmp66        [V68,T24] (  0,  0   )     ref  ->  zero-ref    single-def "field V41.Array (fldOffset=0x0)" P-INDEP
 ;* V69 tmp67        [V69,T25] (  0,  0   )     int  ->  zero-ref    "field V41.MillisecondsTimeStamp (fldOffset=0x4)" P-INDEP
 ;* V70 tmp68        [V70    ] (  0,  0   )   byref  ->  zero-ref    "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V71 tmp69        [V71    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x4)" P-INDEP
-;  V72 tmp70        [V72,T18] (  2,  2   )   byref  ->   r1         single-def "field V50._reference (fldOffset=0x0)" P-INDEP
+;  V72 tmp70        [V72,T19] (  2,  2   )   byref  ->   r1         single-def "field V50._reference (fldOffset=0x0)" P-INDEP
 ;* V73 tmp71        [V73    ] (  0,  0   )     int  ->  zero-ref    "field V50._length (fldOffset=0x4)" P-INDEP
 ;* V74 tmp72        [V74    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V51._reference (fldOffset=0x0)" P-INDEP
 ;* V75 tmp73        [V75    ] (  0,  0   )     int  ->  zero-ref    "field V51._length (fldOffset=0x4)" P-INDEP
-;  V76 tmp74        [V76,T28] (  3,  0.44)     ref  ->   r0         single-def "arr expr"
-;  V77 tmp75        [V77,T37] (  2,  0   )     ref  ->   r5         single-def "argument with side effect"
-;  V78 tmp76        [V78,T38] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
-;  V79 cse0         [V79,T32] (  3,  0.22)     int  ->   r0         "CSE - conservative"
-;  V80 cse1         [V80,T19] (  5,  1.75)     int  ->  [sp+0x10]  spill-single-def "CSE - moderate"
+;  V76 tmp74        [V76,T27] (  3,  0.44)     ref  ->   r0         single-def "arr expr"
+;  V77 tmp75        [V77,T36] (  2,  0   )     ref  ->   r5         single-def "argument with side effect"
+;  V78 tmp76        [V78,T37] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
+;  V79 cse0         [V79,T31] (  3,  0.22)     int  ->   r0         "CSE - conservative"
 ;
 ; Lcl frame size = 52
 
@@ -183,7 +182,7 @@ G_M61043_IG06:        ; bbWeight=1, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0010 {r
             mov     r10, 1
             ldr     r0, [r8+0x04]
             cmp     r0, r7
-            bls     G_M61043_IG26
+            bls     G_M61043_IG25
             mov     r9, 1
             ldr     r3, [r5+0x04]
             str     r3, [sp+0x24]  // [V38 tmp36]
@@ -277,7 +276,7 @@ G_M61043_IG10:        ; bbWeight=1, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0010 {r
             movs    r0, 0
             str     r0, [r2+0x04]
             cmp     r8, 0
-            beq     G_M61043_IG26
+            beq     G_M61043_IG25
                        ;; size=38 bbWeight=1 PerfScore 13.00
 G_M61043_IG11:        ; bbWeight=0.07, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0010 {r4}, byref, isz
             ; byrRegs -[r2]
@@ -285,7 +284,7 @@ G_M61043_IG11:        ; bbWeight=0.07, gcrefRegs=0160 {r5 r6 r8}, byrefRegs=0010
             ; gcrRegs +[r0]
             ldr     r1, [r0+0x04]
             cmp     r7, r1
-            bhs     G_M61043_IG34
+            bhs     G_M61043_IG33
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
@@ -313,8 +312,6 @@ G_M61043_IG13:        ; bbWeight=0.07, gcrefRegs=0168 {r3 r5 r6 r8}, byrefRegs=0
             ; gcrRegs -[r0]
             ldr     r10, [r3+0x04]
             ; gcrRegs +[r10]
-            str     r10, [sp+0x0C] // [V54 tmp52]
-            ; GC ptr vars +{V54}
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
             movw    r1, 0xd1ff
@@ -329,7 +326,7 @@ G_M61043_IG13:        ; bbWeight=0.07, gcrefRegs=0168 {r3 r5 r6 r8}, byrefRegs=0
             uxth    r0, r3
             cmp     r0, 0
             bne     SHORT G_M61043_IG15
-                       ;; size=46 bbWeight=0.07 PerfScore 1.02
+                       ;; size=42 bbWeight=0.07 PerfScore 0.95
 G_M61043_IG14:        ; bbWeight=0, gcrefRegs=0560 {r5 r6 r8 r10}, byrefRegs=0010 {r4}, byref, isz
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
@@ -350,54 +347,54 @@ G_M61043_IG16:        ; bbWeight=0, gcrefRegs=0560 {r5 r6 r8 r10}, byrefRegs=001
             mov     r3, r0
             movs    r2, 0
             str     r2, [sp+0x18]  // [V56 tmp54]
-            ldr     r1, [r10+0x04]
-            str     r1, [sp+0x10]  // [V80 cse1]
-            cmp     r1, 0
+            ldr     r0, [r10+0x04]
+            cmp     r0, 0
             ble     SHORT G_M61043_IG23
-                       ;; size=28 bbWeight=0 PerfScore 0.00
+                       ;; size=26 bbWeight=0 PerfScore 0.00
 G_M61043_IG17:        ; bbWeight=0.58, gcrefRegs=0560 {r5 r6 r8 r10}, byrefRegs=0010 {r4}, byref, isz
-            cmp     r3, r1
-            bhs     G_M61043_IG34
+            ldr     r0, [r10+0x04]
+            cmp     r3, r0
+            bhs     G_M61043_IG33
             add     r0, r10, 8
             ; byrRegs +[r0]
             str     r3, [sp+0x1C]  // [V55 tmp53]
-            lsl     lr, r3, 2
-            ldr     lr, [r0+lr]
-            ; gcrRegs +[lr]
-            str     lr, [sp+0x08]  // [V64 tmp62]
-            ; GC ptr vars +{V64}
-            ldrsb   r0, [lr]
-            ; byrRegs -[r0]
-            mov     r12, 0
-            str     r12, [sp+0x14] // [V63 tmp61]
-            mov     r0, lr
-            ; gcrRegs +[r0]
-            movw    r10, 0xd1ff
-            ; gcrRegs -[r10]
-            movt    r10, 0xd1ff
-            blx     r10        // <unknown method>
-            ; gcrRegs -[r0 lr]
-            ; gcr arg pop 0
-            ldr     r10, [sp+0x08] // [V64 tmp62]
-            ; gcrRegs +[r10]
-            ldr     r1, [r10+0x04]
+            lsls    r1, r3, 2
+            ldr     r1, [r0+r1]
             ; gcrRegs +[r1]
-            ldr     r2, [r10+0x0C]
+            str     r1, [sp+0x0C]  // [V64 tmp62]
+            ; GC ptr vars +{V64}
+            ldrsb   r0, [r1]
+            ; byrRegs -[r0]
+            mov     lr, 0
+            str     lr, [sp+0x14]  // [V63 tmp61]
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            movw    r12, 0xd1ff
+            movt    r12, 0xd1ff
+            blx     r12        // <unknown method>
+            ; gcrRegs -[r0-r1]
+            ; gcr arg pop 0
+            ldr     r2, [sp+0x0C]  // [V64 tmp62]
+            ; gcrRegs +[r2]
+            ldr     r1, [r2+0x04]
+            ; gcrRegs +[r1]
+            ldr     r3, [r2+0x0C]
+            str     r3, [sp+0x10]  // [V66 tmp64]
             ldr     r0, [r1+0x04]
-            cmp     r0, r2
+            cmp     r0, r3
             bls     SHORT G_M61043_IG20
-                       ;; size=66 bbWeight=0.58 PerfScore 11.68
-G_M61043_IG18:        ; bbWeight=0.29, gcrefRegs=0562 {r1 r5 r6 r8 r10}, byrefRegs=0010 {r4}, byref, isz
-            cmp     r2, 0
+                       ;; size=60 bbWeight=0.58 PerfScore 12.85
+G_M61043_IG18:        ; bbWeight=0.29, gcrefRegs=0566 {r1 r2 r5 r6 r8 r10}, byrefRegs=0010 {r4}, byref, isz
+            cmp     r3, 0
             bne     SHORT G_M61043_IG19
             movs    r0, 0
-            str     r0, [r10+0x10]
-                       ;; size=10 bbWeight=0.29 PerfScore 1.17
-G_M61043_IG19:        ; bbWeight=0.29, gcrefRegs=0562 {r1 r5 r6 r8 r10}, byrefRegs=0010 {r4}, byref
+            str     r0, [r2+0x10]
+                       ;; size=8 bbWeight=0.29 PerfScore 1.17
+G_M61043_IG19:        ; bbWeight=0.29, gcrefRegs=0566 {r1 r2 r5 r6 r8 r10}, byrefRegs=0010 {r4}, byref
             adds    r1, 8
             ; gcrRegs -[r1]
             ; byrRegs +[r1]
-            lsls    r0, r2, 2
+            lsls    r0, r3, 2
             adds    r0, r1, r0
             ; byrRegs +[r0]
             mov     r1, r8
@@ -408,72 +405,64 @@ G_M61043_IG19:        ; bbWeight=0.29, gcrefRegs=0562 {r1 r5 r6 r8 r10}, byrefRe
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            adds    r0, r2, 1
-            str     r0, [r10+0x0C]
-            mov     r12, 1
...

-42 (-3.01%) : 400668.dasm - Interop+OpenSsl:Encrypt(Microsoft.Win32.SafeHandles.SafeSslHandle,System.ReadOnlySpan`1[ubyte],byref):int (Tier1)

@@ -10,41 +10,41 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T07] (  5,  5   )     ref  ->   r5         class-hnd single-def <Microsoft.Win32.SafeHandles.SafeSslHandle>
-;  V01 arg1         [V01,T10] (  4,  4   )  struct ( 8) [sp+0x68]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
+;  V01 arg1         [V01,T09] (  4,  4   )  struct ( 8) [sp+0x60]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
 ;  V02 arg2         [V02,T02] ( 15,  9.50)   byref  ->   r4         single-def
-;  V03 loc0         [V03,T40] (  3,  2   )     int  ->   r7        
-;  V04 loc1         [V04    ] (  6,  2   )     int  ->  [sp+0x3C]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V05 loc2         [V05,T09] (  7,  6   )     int  ->   r6        
+;  V03 loc0         [V03,T42] (  3,  2   )     int  ->   r7        
+;  V04 loc1         [V04    ] (  6,  2   )     int  ->  [sp+0x34]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V05 loc2         [V05,T08] (  7,  6   )     int  ->   r6        
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T21] (  2,  4   )     ref  ->   r0         class-hnd exact single-def "impAppendStmt" <Microsoft.Win32.SafeHandles.SafeBioHandle>
 ;* V08 tmp2         [V08    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
-;  V09 tmp3         [V09,T60] (  3,  0   )     ref  ->   r4         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V10 tmp4         [V10,T68] (  2,  0   )     ref  ->   r0         class-hnd exact single-def "impImportAndPushBox" <System.String>
-;  V11 tmp5         [V11,T69] (  2,  0   )     ref  ->   r6         class-hnd exact single-def "non-inline candidate call" <System.String>
-;  V12 tmp6         [V12,T61] (  3,  0   )     ref  ->  r10         class-hnd exact single-def "NewObj constructor temp" <Interop+OpenSsl+SslException>
+;  V09 tmp3         [V09,T62] (  3,  0   )     ref  ->   r4         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+;  V10 tmp4         [V10,T70] (  2,  0   )     ref  ->   r0         class-hnd exact single-def "impImportAndPushBox" <System.String>
+;  V11 tmp5         [V11,T71] (  2,  0   )     ref  ->   r6         class-hnd exact single-def "non-inline candidate call" <System.String>
+;  V12 tmp6         [V12,T63] (  3,  0   )     ref  ->  r10         class-hnd exact single-def "NewObj constructor temp" <Interop+OpenSsl+SslException>
 ;* V13 tmp7         [V13    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V14 tmp8         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Exception>
-;  V15 tmp9         [V15,T36] (  5,  2   )     ref  ->  [sp+0x18]  class-hnd single-def "Inline stloc first use temp" <ubyte[]>
+;  V15 tmp9         [V15,T38] (  5,  2   )     ref  ->   r8         class-hnd single-def "Inline stloc first use temp" <ubyte[]>
 ;  V16 tmp10        [V16,T26] (  3,  3   )   byref  ->   r0         single-def
-;  V17 tmp11        [V17,T15] (  3,  5.21)     ref  ->   r7         class-hnd exact single-def "spilling ret_expr" <System.Buffers.SharedArrayPool`1[ubyte]>
-;  V18 tmp12        [V18,T51] (  2,  0   )   byref  ->   r1        
-;  V19 tmp13        [V19,T37] (  3,  2   )     ref  ->   r1        
+;  V17 tmp11        [V17,T14] (  3,  5.21)     ref  ->   r7         class-hnd exact single-def "spilling ret_expr" <System.Buffers.SharedArrayPool`1[ubyte]>
+;  V18 tmp12        [V18,T53] (  2,  0   )   byref  ->   r1        
+;  V19 tmp13        [V19,T39] (  3,  2   )     ref  ->   r1        
 ;* V20 tmp14        [V20    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
 ;* V21 tmp15        [V21    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
-;  V22 tmp16        [V22,T38] (  3,  2   )     ref  ->   r1         "guarded devirt return temp"
+;  V22 tmp16        [V22,T40] (  3,  2   )     ref  ->   r1         "guarded devirt return temp"
 ;  V23 tmp17        [V23,T22] (  2,  4   )     int  ->   r9         "guarded devirt arg temp"
-;  V24 tmp18        [V24,T30] (  7,  2.63)     ref  ->  r10         class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[ubyte]>
-;  V25 tmp19        [V25,T41] (  3,  2   )     int  ->   r0         "Inline return value spill temp"
-;  V26 tmp20        [V26,T29] (  8,  2.84)     ref  ->  [sp+0x14]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V24 tmp18        [V24,T33] (  7,  2.63)     ref  ->  r10         class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[ubyte]>
+;  V25 tmp19        [V25,T43] (  3,  2   )     int  ->   r0         "Inline return value spill temp"
+;  V26 tmp20        [V26,T32] (  8,  2.84)     ref  ->  [sp+0x14]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
 ;  V27 tmp21        [V27,T18] (  6,  4.65)     int  ->   r9         "Inlining Arg"
-;  V28 tmp22        [V28,T17] (  9,  4.73)     int  ->  [sp+0x38]  spill-single-def "Inline stloc first use temp"
+;  V28 tmp22        [V28,T17] (  9,  4.73)     int  ->  [sp+0x30]  spill-single-def "Inline stloc first use temp"
 ;  V29 tmp23        [V29,T19] (  5,  4.55)     ref  ->   r0         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V30 tmp24        [V30,T49] (  3,  1.19)     ref  ->   r0         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V31 tmp25        [V31,T14] ( 14,  5.27)     ref  ->  [sp+0x10]  class-hnd "Inline stloc first use temp" <ubyte[]>
-;  V32 tmp26        [V32,T63] (  3,  0   )     int  ->   r7         "Inline stloc first use temp"
-;  V33 tmp27        [V33,T72] (  2,  0   )     int  ->  [sp+0x34]  spill-single-def "impAppendStmt"
-;  V34 tmp28        [V34,T73] (  2,  0   )     int  ->  [sp+0x30]  spill-single-def "impAppendStmt"
-;  V35 tmp29        [V35,T74] (  2,  0   )     int  ->   r3         "impAppendStmt"
+;  V30 tmp24        [V30,T51] (  3,  1.19)     ref  ->   r0         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V31 tmp25        [V31,T13] ( 14,  5.27)     ref  ->  [sp+0x10]  class-hnd "Inline stloc first use temp" <ubyte[]>
+;  V32 tmp26        [V32,T65] (  3,  0   )     int  ->   r7         "Inline stloc first use temp"
+;  V33 tmp27        [V33,T74] (  2,  0   )     int  ->  [sp+0x2C]  spill-single-def "impAppendStmt"
+;  V34 tmp28        [V34,T75] (  2,  0   )     int  ->  [sp+0x28]  spill-single-def "impAppendStmt"
+;  V35 tmp29        [V35,T76] (  2,  0   )     int  ->   r3         "impAppendStmt"
 ;* V36 tmp30        [V36    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V37 tmp31        [V37    ] (  0,  0   )     int  ->  zero-ref   
 ;* V38 tmp32        [V38    ] (  0,  0   )     int  ->  zero-ref   
@@ -55,57 +55,57 @@
 ;* V43 tmp37        [V43    ] (  0,  0   )     int  ->  zero-ref   
 ;* V44 tmp38        [V44    ] (  0,  0   )     int  ->  zero-ref   
 ;* V45 tmp39        [V45    ] (  0,  0   )     int  ->  zero-ref   
-;  V46 tmp40        [V46,T64] (  3,  0   )     int  ->   r0        
-;  V47 tmp41        [V47,T50] (  3,  1.03)     ref  ->   r0         class-hnd exact single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions>
+;  V46 tmp40        [V46,T66] (  3,  0   )     int  ->   r0        
+;  V47 tmp41        [V47,T52] (  3,  1.03)     ref  ->   r0         class-hnd exact single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions>
 ;* V48 tmp42        [V48    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
-;  V49 tmp43        [V49,T52] (  2,  0.93)     int  ->   r7         "impAppendStmt"
-;  V50 tmp44        [V50,T53] (  2,  0.93)     int  ->  [sp+0x2C]  spill-single-def "impAppendStmt"
+;  V49 tmp43        [V49,T54] (  2,  0.93)     int  ->   r7         "impAppendStmt"
+;  V50 tmp44        [V50,T55] (  2,  0.93)     int  ->  [sp+0x24]  spill-single-def "impAppendStmt"
 ;* V51 tmp45        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
-;  V52 tmp46        [V52,T32] (  2,  2.42)     int  ->  r10         "impAppendStmt"
-;  V53 tmp47        [V53,T33] (  2,  2.42)     int  ->  [sp+0x28]  spill-single-def "impAppendStmt"
+;  V52 tmp46        [V52,T35] (  2,  2.42)     int  ->  r10         "impAppendStmt"
+;  V53 tmp47        [V53,T36] (  2,  2.42)     int  ->  [sp+0x20]  spill-single-def "impAppendStmt"
 ;* V54 tmp48        [V54    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V55 tmp49        [V55,T00] ( 17, 34   )     int  ->   r0         "Inlining Arg"
 ;* V56 tmp50        [V56    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V57 tmp51        [V57    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V58 tmp52        [V58    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;  V59 tmp53        [V59,T56] (  3,  0.73)     ref  ->   r1         class-hnd "Inline return value spill temp" <System.Array>
-;  V60 tmp54        [V60,T35] (  3,  2.20)     ref  ->   r9         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V61 tmp55        [V61,T03] (  7, 10.74)     int  ->  [sp+0x24]  "Inline stloc first use temp"
-;  V62 tmp56        [V62,T13] (  4,  5.86)     int  ->  [sp+0x20]  "Inline stloc first use temp"
+;  V59 tmp53        [V59,T58] (  3,  0.73)     ref  ->   r1         class-hnd "Inline return value spill temp" <System.Array>
+;  V60 tmp54        [V60,T04] (  6,  8.06)     ref  ->   r9         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V61 tmp55        [V61,T03] (  7, 10.74)     int  ->  [sp+0x1C]  "Inline stloc first use temp"
+;  V62 tmp56        [V62,T11] (  4,  5.86)     int  ->  [sp+0x18]  "Inline stloc first use temp"
 ;* V63 tmp57        [V63    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
 ;* V64 tmp58        [V64    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Array>
-;  V65 tmp59        [V65,T06] (  2,  7.81)     int  ->   r8         "dup spill"
+;  V65 tmp59        [V65,T06] (  2,  7.81)     int  ->   r0         "dup spill"
 ;* V66 tmp60        [V66    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V67 tmp61        [V67,T65] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
-;  V68 tmp62        [V68,T48] (  4,  1.47)     int  ->   r3         "dup spill"
+;  V67 tmp61        [V67,T67] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
+;  V68 tmp62        [V68,T50] (  4,  1.47)     int  ->   r3         "dup spill"
 ;* V69 tmp63        [V69    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V70 tmp64        [V70    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V71 tmp65        [V71,T16] (  4,  5.13)     ref  ->  [sp+0x0C]  class-hnd "Inline stloc first use temp" <System.Array>
+;  V71 tmp65        [V71,T15] (  4,  5.13)     ref  ->  [sp+0x0C]  class-hnd "Inline stloc first use temp" <System.Array>
 ;  V72 tmp66        [V72,T01] (  7, 25.40)     ref  ->  [sp+0x08]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V73 tmp67        [V73,T12] (  4,  5.86)     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V74 tmp68        [V74,T08] (  5,  6.84)     int  ->   r3         "Inline stloc first use temp"
-;  V75 tmp69        [V75,T58] (  3,  0.49)     int  ->   r9         "Inline stloc first use temp"
+;  V73 tmp67        [V73,T16] (  3,  4.88)     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V74 tmp68        [V74,T12] (  4,  5.86)     int  ->   r3         "Inline stloc first use temp"
+;  V75 tmp69        [V75,T60] (  3,  0.49)     int  ->   r9         "Inline stloc first use temp"
 ;* V76 tmp70        [V76    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <ubyte[]>
 ;* V77 tmp71        [V77    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V78 tmp72        [V78    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
 ;* V79 tmp73        [V79    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;  V80 tmp74        [V80,T59] (  4,  0   )     ref  ->   r0         class-hnd single-def "Inlining Arg" <ubyte[]>
+;  V80 tmp74        [V80,T61] (  4,  0   )     ref  ->   r0         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V81 tmp75        [V81    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V82 tmp76        [V82    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V83 tmp77        [V83    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V84 tmp78        [V84    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V85 tmp79        [V85    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V86 tmp80        [V86    ] (  0,  0   )  struct ( 8) zero-ref    multireg-arg "Inline return value spill temp" <System.Span`1[ubyte]>
-;  V87 tmp81        [V87,T04] (  4,  8   )     ref  ->   r2         class-hnd single-def "impAppendStmt" <ubyte[]>
+;  V87 tmp81        [V87,T10] (  3,  6   )     ref  ->   r2         class-hnd single-def "impAppendStmt" <ubyte[]>
 ;  V88 tmp82        [V88,T05] (  4,  8   )     int  ->   r3         "impAppendStmt"
 ;* V89 tmp83        [V89    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;  V90 tmp84        [V90,T27] (  3,  3   )     int  ->   lr         "Inline return value spill temp"
 ;* V91 tmp85        [V91    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V92 tmp86        [V92,T45] (  2,  2   )     int  ->   r0         "Inline stloc first use temp"
+;  V92 tmp86        [V92,T47] (  2,  2   )     int  ->   r0         "Inline stloc first use temp"
 ;* V93 tmp87        [V93    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V94 tmp88        [V94    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V95 tmp89        [V95    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x4)" P-INDEP
-;  V96 tmp90        [V96,T42] (  2,  2   )   byref  ->   r1         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V96 tmp90        [V96,T44] (  2,  2   )   byref  ->   r1         single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V97 tmp91        [V97    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x4)" P-INDEP
 ;* V98 tmp92        [V98    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V20._reference (fldOffset=0x0)" P-INDEP
 ;* V99 tmp93        [V99    ] (  0,  0   )     int  ->  zero-ref    "field V20._length (fldOffset=0x4)" P-INDEP
@@ -113,55 +113,57 @@
 ;* V101 tmp95       [V101    ] (  0,  0   )     int  ->  zero-ref    "field V21._length (fldOffset=0x4)" P-INDEP
 ;* V102 tmp96       [V102    ] (  0,  0   )   byref  ->  zero-ref    "field V56._reference (fldOffset=0x0)" P-INDEP
 ;* V103 tmp97       [V103    ] (  0,  0   )     int  ->  zero-ref    "field V56._length (fldOffset=0x4)" P-INDEP
-;  V104 tmp98       [V104,T43] (  2,  2   )   byref  ->   r1         single-def "field V57._reference (fldOffset=0x0)" P-INDEP
+;  V104 tmp98       [V104,T45] (  2,  2   )   byref  ->   r1         single-def "field V57._reference (fldOffset=0x0)" P-INDEP
 ;* V105 tmp99       [V105    ] (  0,  0   )     int  ->  zero-ref    "field V57._length (fldOffset=0x4)" P-INDEP
 ;* V106 tmp100      [V106    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V107 tmp101      [V107    ] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x4)" P-INDEP
-;  V108 tmp102      [V108,T70] (  2,  0   )   byref  ->   r1         single-def "field V79._reference (fldOffset=0x0)" P-INDEP
-;  V109 tmp103      [V109,T66] (  3,  0   )     int  ->   r2         "field V79._length (fldOffset=0x4)" P-INDEP
-;  V110 tmp104      [V110,T62] (  3,  0   )   byref  ->  registers   "field V81._reference (fldOffset=0x0)" P-INDEP
-;  V111 tmp105      [V111,T67] (  3,  0   )     int  ->  registers   "field V81._length (fldOffset=0x4)" P-INDEP
+;  V108 tmp102      [V108,T72] (  2,  0   )   byref  ->   r1         single-def "field V79._reference (fldOffset=0x0)" P-INDEP
+;  V109 tmp103      [V109,T68] (  3,  0   )     int  ->   r2         "field V79._length (fldOffset=0x4)" P-INDEP
+;  V110 tmp104      [V110,T64] (  3,  0   )   byref  ->  registers   "field V81._reference (fldOffset=0x0)" P-INDEP
+;  V111 tmp105      [V111,T69] (  3,  0   )     int  ->  registers   "field V81._length (fldOffset=0x4)" P-INDEP
 ;* V112 tmp106      [V112    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V82._reference (fldOffset=0x0)" P-INDEP
 ;* V113 tmp107      [V113    ] (  0,  0   )     int  ->  zero-ref    "field V82._length (fldOffset=0x4)" P-INDEP
-;  V114 tmp108      [V114,T39] (  3,  2   )   byref  ->   r1         "field V86._reference (fldOffset=0x0)" P-INDEP
+;  V114 tmp108      [V114,T41] (  3,  2   )   byref  ->   r1         "field V86._reference (fldOffset=0x0)" P-INDEP
 ;  V115 tmp109      [V115,T25] (  4,  3   )     int  ->   r3         "field V86._length (fldOffset=0x4)" P-INDEP
-;  V116 tmp110      [V116,T44] (  2,  2   )   byref  ->   r1         "field V89._reference (fldOffset=0x0)" P-INDEP
-;  V117 tmp111      [V117,T46] (  2,  2   )     int  ->   r3         "field V89._length (fldOffset=0x4)" P-INDEP
+;  V116 tmp110      [V116,T46] (  2,  2   )   byref  ->   r1         "field V89._reference (fldOffset=0x0)" P-INDEP
+;  V117 tmp111      [V117,T48] (  2,  2   )     int  ->   r3         "field V89._length (fldOffset=0x4)" P-INDEP
 ;* V118 tmp112      [V118    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V91._reference (fldOffset=0x0)" P-INDEP
 ;* V119 tmp113      [V119    ] (  0,  0   )     int  ->  zero-ref    "field V91._length (fldOffset=0x4)" P-INDEP
 ;* V120 tmp114      [V120    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V93._reference (fldOffset=0x0)" P-INDEP
 ;* V121 tmp115      [V121    ] (  0,  0   )     int  ->  zero-ref    "field V93._length (fldOffset=0x4)" P-INDEP
 ;  V122 tmp116      [V122,T28] (  3,  3   )     int  ->   r6         "V01.[004..008)"
-;  V123 tmp117      [V123,T75] (  2,  0   )     int  ->   r3         "argument with side effect"
-;  V124 tmp118      [V124,T54] (  2,  0.93)     int  ->   r3         "argument with side effect"
-;  V125 tmp119      [V125,T34] (  2,  2.42)     int  ->   r3         "argument with side effect"
-;  V126 tmp120      [V126,T71] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
-;  V127 cse0        [V127,T57] (  3,  0.73)     int  ->   r0         "CSE - conservative"
-;  V128 cse1        [V128,T31] (  3,  2.55)     int  ->   r3         "CSE - moderate"
-;  V129 cse2        [V129,T55] (  2,  0.79)     int  ->   r1         "CSE - conservative"
-;  V130 cse3        [V130,T11] (  5,  5.86)     int  ->  [sp+0x1C]  spill-single-def "CSE - moderate"
-;  V131 cse4        [V131,T23] (  2,  3.91)     int  ->   r2         "CSE - moderate"
-;  V132 cse5        [V132,T47] (  2,  1.94)     int  ->   r3         "CSE - moderate"
-;  V133 cse6        [V133,T24] (  4,  3.50)     ref  ->   r8         "CSE - moderate"
-;  V134 cse7        [V134,T20] (  4,  4   )     ref  ->   r1         "CSE - moderate"
+;  V123 tmp117      [V123,T77] (  2,  0   )     int  ->   r3         "argument with side effect"
+;  V124 tmp118      [V124,T56] (  2,  0.93)     int  ->   r3         "argument with side effect"
+;  V125 tmp119      [V125,T37] (  2,  2.42)     int  ->   r3         "argument with side effect"
+;  V126 tmp120      [V126,T73] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
+;  V127 cse0        [V127,T59] (  3,  0.73)     int  ->   r0         "CSE - conservative"
+;  V128 cse1        [V128,T34] (  3,  2.55)     int  ->   r3         "CSE - moderate"
+;  V129 cse2        [V129,T57] (  2,  0.79)     int  ->   r1         "CSE - conservative"
+;  V130 cse3        [V130,T23] (  2,  3.91)     int  ->   r2         "CSE - moderate"
+;  V131 cse4        [V131,T49] (  2,  1.94)     int  ->   r3         "CSE - moderate"
+;  V132 cse5        [V132,T24] (  4,  3.50)     ref  ->   r8         "CSE - moderate"
+;  V133 cse6        [V133,T20] (  4,  4   )     ref  ->   r1         "CSE - moderate"
+;  V134 cse7        [V134,T29] (  3,  3   )     int  ->   r1         "CSE - moderate"
+;  V135 cse8        [V135,T30] (  3,  2.93)   byref  ->   r0         "CSE - moderate"
+;  V136 cse9        [V136,T31] (  3,  2.93)     int  ->   r2         "CSE - moderate"
 ;
-; Lcl frame size = 68
+; Lcl frame size = 60
 
 G_M50992_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r1,r2}
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 68
-            add     r11, sp, 96
+            sub     sp, 60
+            add     r11, sp, 88
             mov     r5, r0
             ; gcrRegs +[r5]
             mov     r4, r3
             ; byrRegs +[r4]
                        ;; size=16 bbWeight=1 PerfScore 6.00
 G_M50992_IG02:        ; bbWeight=1, gcrefRegs=0020 {r5}, byrefRegs=0010 {r4}, byref, isz
-            ldr     r6, [sp+0x6C]
-            ldr     r1, [sp+0x68]
+            ldr     r6, [sp+0x64]
+            ldr     r1, [sp+0x60]
             ; byrRegs +[r1]
-            add     r3, sp, 60
+            add     r3, sp, 52
             mov     r0, r5
             ; gcrRegs +[r0]
             mov     r2, r6
@@ -180,10 +182,10 @@ G_M50992_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
             ; gcrRegs -[r5]
             movs    r0, 0
             str     r0, [r4+0x04]
-            ldr     r0, [sp+0x3C]
+            ldr     r0, [sp+0x34]
             cmp     r0, 2
             beq     G_M50992_IG50
-            ldr     r0, [sp+0x3C]
+            ldr     r0, [sp+0x34]
             cmp     r0, 6
             beq     G_M50992_IG50
             movw    r0, 0xd1ff
@@ -201,7 +203,7 @@ G_M50992_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byre
             ldr     r3, [r3]
             blx     r3     // <unknown method>
             ; gcr arg pop 0
-            ldr     r1, [sp+0x3C]
+            ldr     r1, [sp+0x34]
             str     r1, [r4+0x04]
             mov     r1, r4
             ; gcrRegs +[r1]
...

+6 (+4.17%) : 186626.dasm - Microsoft.CodeAnalysis.MetadataHelpers:IsValidMetadataIdentifier(System.String):ubyte (Tier1)

@@ -9,88 +9,93 @@
 ; 2 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T05] (  6,  4   )     ref  ->   r0         class-hnd single-def <System.String>
+;  V00 arg0         [V00,T03] ( 11, 17   )     ref  ->   r3         class-hnd single-def <System.String>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T06] (  2,  0   )   ubyte  ->   r1         "Inline return value spill temp"
-;* V03 tmp2         [V03,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V02 tmp1         [V02,T05] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
+;* V03 tmp2         [V03,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V04 tmp3         [V04,T01] (  8, 40   )     int  ->  registers   "Inline stloc first use temp"
 ;  V05 tmp4         [V05,T00] (  3, 48   )     int  ->   r4         "impSpillLclRefs"
-;  V06 tmp5         [V06,T02] (  3, 20   )  ushort  ->   lr         "Inline stloc first use temp"
+;  V06 tmp5         [V06,T02] (  3, 20   )  ushort  ->   r1         "Inline stloc first use temp"
 ;* V07 tmp6         [V07    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V08 tmp7         [V08    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp8         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V10 cse0         [V10,T04] (  6, 13   )     int  ->   r2         "CSE - aggressive"
-;  V11 cse1         [V11,T03] (  5, 14   )   byref  ->  registers   hoist multi-def "CSE - aggressive"
+;  V10 cse0         [V10,T04] (  5, 14   )   byref  ->   r0         hoist multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 4
 
 G_M17259_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             push    {r3,r4,r11,lr}
             add     r11, sp, 8
-                       ;; size=8 bbWeight=1 PerfScore 2.00
-G_M17259_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r0]
-            cmp     r0, 0
+            mov     r3, r0
+            ; gcrRegs +[r3]
+                       ;; size=10 bbWeight=1 PerfScore 3.00
+G_M17259_IG02:        ; bbWeight=1, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
             beq     SHORT G_M17259_IG13
                        ;; size=4 bbWeight=1 PerfScore 2.00
-G_M17259_IG03:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            ldr     r2, [r0+0x04]
-            cmp     r2, 0
+G_M17259_IG03:        ; bbWeight=0, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r3+0x04]
+            cmp     r0, 0
             beq     SHORT G_M17259_IG04
-            movs    r1, 0
+            movs    r0, 0
             b       SHORT G_M17259_IG05
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M17259_IG04:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
-            movs    r1, 1
+G_M17259_IG04:        ; bbWeight=0, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref
+            movs    r0, 1
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M17259_IG05:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            cmp     r1, 0
+G_M17259_IG05:        ; bbWeight=0, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
+            cmp     r0, 0
             bne     SHORT G_M17259_IG13
             movs    r4, 0
-            cmp     r2, 0
+            ldr     r0, [r3+0x04]
+            cmp     r0, 0
             ble     SHORT G_M17259_IG10
-            add     r3, r0, 8
-            ; byrRegs +[r3]
-                       ;; size=14 bbWeight=0 PerfScore 0.00
-G_M17259_IG06:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0008 {r3}, byref, isz
-            adds    r1, r4, 1
-            lsl     lr, r4, 1
-            ldrh    lr, [r3+lr]
-            sub     r12, lr, 0xd800
-            movw    r4, 0xd1ff
-            cmp     r12, r4
+            ldr     r0, [r3+0x04]
+            add     r0, r3, 8
+            ; byrRegs +[r0]
+                       ;; size=18 bbWeight=0 PerfScore 0.00
+G_M17259_IG06:        ; bbWeight=8, gcrefRegs=0008 {r3}, byrefRegs=0001 {r0}, byref, isz
+            adds    r2, r4, 1
+            lsls    r1, r4, 1
+            ldrh    r1, [r0+r1]
+            sub     lr, r1, 0xd800
+            movw    r12, 0xd1ff
+            cmp     lr, r12
             bhi     SHORT G_M17259_IG08
-                       ;; size=22 bbWeight=8 PerfScore 56.00
-G_M17259_IG07:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0008 {r3}, byref, isz
-            cmp     r2, r1
+                       ;; size=18 bbWeight=8 PerfScore 56.00
+G_M17259_IG07:        ; bbWeight=4, gcrefRegs=0008 {r3}, byrefRegs=0001 {r0}, byref, isz
+            ldr     r1, [r3+0x04]
+            cmp     r1, r2
             ble     SHORT G_M17259_IG13
-            lsl     lr, r1, 1
-            ldrh    lr, [r3+lr]
-            sub     lr, lr, 0xdc00
-            movw    r12, 0xd1ff
-            cmp     lr, r12
+            lsls    r1, r2, 1
+            ldrh    r1, [r0+r1]
+            sub     r1, r1, 0xdc00
+            movw    lr, 0xd1ff
+            cmp     r1, lr
             bhi     SHORT G_M17259_IG13
-            adds    r1, r1, 1
+            adds    r2, r2, 1
             b       SHORT G_M17259_IG09
-                       ;; size=28 bbWeight=4 PerfScore 40.00
-G_M17259_IG08:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0008 {r3}, byref, isz
-            sub     lr, lr, 0xdc00
-            movw    r12, 0xd1ff
-            cmp     lr, r12
+                       ;; size=26 bbWeight=4 PerfScore 44.00
+G_M17259_IG08:        ; bbWeight=4, gcrefRegs=0008 {r3}, byrefRegs=0001 {r0}, byref, isz
+            sub     r1, r1, 0xdc00
+            movw    lr, 0xd1ff
+            cmp     r1, lr
             bls     SHORT G_M17259_IG13
                        ;; size=12 bbWeight=4 PerfScore 16.00
-G_M17259_IG09:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0008 {r3}, byref, isz
-            cmp     r2, r1
-            mov     r4, r1
+G_M17259_IG09:        ; bbWeight=8, gcrefRegs=0008 {r3}, byrefRegs=0001 {r0}, byref, isz
+            ldr     r1, [r3+0x04]
+            cmp     r1, r2
+            mov     r4, r2
             bgt     SHORT G_M17259_IG06
-                       ;; size=6 bbWeight=8 PerfScore 24.00
-G_M17259_IG10:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r3]
-            adds    r0, 8
-            ; gcrRegs -[r0]
+                       ;; size=8 bbWeight=8 PerfScore 32.00
+G_M17259_IG10:        ; bbWeight=1, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs -[r0]
+            add     r0, r3, 8
             ; byrRegs +[r0]
+            ldr     r2, [r3+0x04]
             movs    r1, 0
             movw    r3, 0xd1ff
+            ; gcrRegs -[r3]
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
@@ -100,7 +105,7 @@ G_M17259_IG10:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
             beq     SHORT G_M17259_IG11
             movs    r0, 0
             b       SHORT G_M17259_IG12
-                       ;; size=26 bbWeight=1 PerfScore 10.00
+                       ;; size=30 bbWeight=1 PerfScore 11.00
 G_M17259_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movs    r0, 1
                        ;; size=2 bbWeight=1 PerfScore 1.00
@@ -114,7 +119,7 @@ G_M17259_IG14:        ; bbWeight=0, epilog, nogc, extend
             pop     {r3,r4,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 144, prolog size 8, PerfScore 152.00, instruction count 54, allocated bytes for code 144 (MethodHash=a5b6bc94) for method Microsoft.CodeAnalysis.MetadataHelpers:IsValidMetadataIdentifier(System.String):ubyte (Tier1)
+Total bytes of code 150, prolog size 10, PerfScore 166.00, instruction count 60, allocated bytes for code 150 (MethodHash=a5b6bc94) for method Microsoft.CodeAnalysis.MetadataHelpers:IsValidMetadataIdentifier(System.String):ubyte (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -126,7 +131,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 72 (0x00048) Actual length = 144 (0x000090)
+  Function Length   : 75 (0x0004b) Actual length = 150 (0x000096)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+6 (+4.17%) : 185663.dasm - Microsoft.CodeAnalysis.MetadataHelpers:IsValidMetadataIdentifier(System.String):ubyte (Tier1)

@@ -9,88 +9,93 @@
 ; 2 inlinees with PGO data; 9 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T05] (  6,  4   )     ref  ->   r0         class-hnd single-def <System.String>
+;  V00 arg0         [V00,T03] ( 11, 17   )     ref  ->   r3         class-hnd single-def <System.String>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T06] (  2,  0   )   ubyte  ->   r1         "Inline return value spill temp"
-;* V03 tmp2         [V03,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V02 tmp1         [V02,T05] (  2,  0   )   ubyte  ->   r0         "Inline return value spill temp"
+;* V03 tmp2         [V03,T06] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V04 tmp3         [V04,T01] (  8, 40   )     int  ->  registers   "Inline stloc first use temp"
 ;  V05 tmp4         [V05,T00] (  3, 48   )     int  ->   r4         "impSpillLclRefs"
-;  V06 tmp5         [V06,T02] (  3, 20   )  ushort  ->   lr         "Inline stloc first use temp"
+;  V06 tmp5         [V06,T02] (  3, 20   )  ushort  ->   r1         "Inline stloc first use temp"
 ;* V07 tmp6         [V07    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V08 tmp7         [V08    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp8         [V09    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V10 cse0         [V10,T04] (  6, 13   )     int  ->   r2         "CSE - aggressive"
-;  V11 cse1         [V11,T03] (  5, 14   )   byref  ->  registers   hoist multi-def "CSE - aggressive"
+;  V10 cse0         [V10,T04] (  5, 14   )   byref  ->   r0         hoist multi-def "CSE - aggressive"
 ;
 ; Lcl frame size = 4
 
 G_M17259_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             push    {r3,r4,r11,lr}
             add     r11, sp, 8
-                       ;; size=8 bbWeight=1 PerfScore 2.00
-G_M17259_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[r0]
-            cmp     r0, 0
+            mov     r3, r0
+            ; gcrRegs +[r3]
+                       ;; size=10 bbWeight=1 PerfScore 3.00
+G_M17259_IG02:        ; bbWeight=1, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
             beq     SHORT G_M17259_IG13
                        ;; size=4 bbWeight=1 PerfScore 2.00
-G_M17259_IG03:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            ldr     r2, [r0+0x04]
-            cmp     r2, 0
+G_M17259_IG03:        ; bbWeight=0, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
+            ldr     r0, [r3+0x04]
+            cmp     r0, 0
             beq     SHORT G_M17259_IG04
-            movs    r1, 0
+            movs    r0, 0
             b       SHORT G_M17259_IG05
                        ;; size=10 bbWeight=0 PerfScore 0.00
-G_M17259_IG04:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref
-            movs    r1, 1
+G_M17259_IG04:        ; bbWeight=0, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref
+            movs    r0, 1
                        ;; size=2 bbWeight=0 PerfScore 0.00
-G_M17259_IG05:        ; bbWeight=0, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            cmp     r1, 0
+G_M17259_IG05:        ; bbWeight=0, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
+            cmp     r0, 0
             bne     SHORT G_M17259_IG13
             movs    r4, 0
-            cmp     r2, 0
+            ldr     r0, [r3+0x04]
+            cmp     r0, 0
             ble     SHORT G_M17259_IG10
-            add     r3, r0, 8
-            ; byrRegs +[r3]
-                       ;; size=14 bbWeight=0 PerfScore 0.00
-G_M17259_IG06:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0008 {r3}, byref, isz
-            adds    r1, r4, 1
-            lsl     lr, r4, 1
-            ldrh    lr, [r3+lr]
-            sub     r12, lr, 0xd800
-            movw    r4, 0xd1ff
-            cmp     r12, r4
+            ldr     r0, [r3+0x04]
+            add     r0, r3, 8
+            ; byrRegs +[r0]
+                       ;; size=18 bbWeight=0 PerfScore 0.00
+G_M17259_IG06:        ; bbWeight=8, gcrefRegs=0008 {r3}, byrefRegs=0001 {r0}, byref, isz
+            adds    r2, r4, 1
+            lsls    r1, r4, 1
+            ldrh    r1, [r0+r1]
+            sub     lr, r1, 0xd800
+            movw    r12, 0xd1ff
+            cmp     lr, r12
             bhi     SHORT G_M17259_IG08
-                       ;; size=22 bbWeight=8 PerfScore 56.00
-G_M17259_IG07:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0008 {r3}, byref, isz
-            cmp     r2, r1
+                       ;; size=18 bbWeight=8 PerfScore 56.00
+G_M17259_IG07:        ; bbWeight=4, gcrefRegs=0008 {r3}, byrefRegs=0001 {r0}, byref, isz
+            ldr     r1, [r3+0x04]
+            cmp     r1, r2
             ble     SHORT G_M17259_IG13
-            lsl     lr, r1, 1
-            ldrh    lr, [r3+lr]
-            sub     lr, lr, 0xdc00
-            movw    r12, 0xd1ff
-            cmp     lr, r12
+            lsls    r1, r2, 1
+            ldrh    r1, [r0+r1]
+            sub     r1, r1, 0xdc00
+            movw    lr, 0xd1ff
+            cmp     r1, lr
             bhi     SHORT G_M17259_IG13
-            adds    r1, r1, 1
+            adds    r2, r2, 1
             b       SHORT G_M17259_IG09
-                       ;; size=28 bbWeight=4 PerfScore 40.00
-G_M17259_IG08:        ; bbWeight=4, gcrefRegs=0001 {r0}, byrefRegs=0008 {r3}, byref, isz
-            sub     lr, lr, 0xdc00
-            movw    r12, 0xd1ff
-            cmp     lr, r12
+                       ;; size=26 bbWeight=4 PerfScore 44.00
+G_M17259_IG08:        ; bbWeight=4, gcrefRegs=0008 {r3}, byrefRegs=0001 {r0}, byref, isz
+            sub     r1, r1, 0xdc00
+            movw    lr, 0xd1ff
+            cmp     r1, lr
             bls     SHORT G_M17259_IG13
                        ;; size=12 bbWeight=4 PerfScore 16.00
-G_M17259_IG09:        ; bbWeight=8, gcrefRegs=0001 {r0}, byrefRegs=0008 {r3}, byref, isz
-            cmp     r2, r1
-            mov     r4, r1
+G_M17259_IG09:        ; bbWeight=8, gcrefRegs=0008 {r3}, byrefRegs=0001 {r0}, byref, isz
+            ldr     r1, [r3+0x04]
+            cmp     r1, r2
+            mov     r4, r2
             bgt     SHORT G_M17259_IG06
-                       ;; size=6 bbWeight=8 PerfScore 24.00
-G_M17259_IG10:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byref, isz
-            ; byrRegs -[r3]
-            adds    r0, 8
-            ; gcrRegs -[r0]
+                       ;; size=8 bbWeight=8 PerfScore 32.00
+G_M17259_IG10:        ; bbWeight=1, gcrefRegs=0008 {r3}, byrefRegs=0000 {}, byref, isz
+            ; byrRegs -[r0]
+            add     r0, r3, 8
             ; byrRegs +[r0]
+            ldr     r2, [r3+0x04]
             movs    r1, 0
             movw    r3, 0xd1ff
+            ; gcrRegs -[r3]
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
@@ -100,7 +105,7 @@ G_M17259_IG10:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
             beq     SHORT G_M17259_IG11
             movs    r0, 0
             b       SHORT G_M17259_IG12
-                       ;; size=26 bbWeight=1 PerfScore 10.00
+                       ;; size=30 bbWeight=1 PerfScore 11.00
 G_M17259_IG11:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movs    r0, 1
                        ;; size=2 bbWeight=1 PerfScore 1.00
@@ -114,7 +119,7 @@ G_M17259_IG14:        ; bbWeight=0, epilog, nogc, extend
             pop     {r3,r4,r11,pc}
                        ;; size=4 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 144, prolog size 8, PerfScore 152.00, instruction count 54, allocated bytes for code 144 (MethodHash=a5b6bc94) for method Microsoft.CodeAnalysis.MetadataHelpers:IsValidMetadataIdentifier(System.String):ubyte (Tier1)
+Total bytes of code 150, prolog size 10, PerfScore 166.00, instruction count 60, allocated bytes for code 150 (MethodHash=a5b6bc94) for method Microsoft.CodeAnalysis.MetadataHelpers:IsValidMetadataIdentifier(System.String):ubyte (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -126,7 +131,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 72 (0x00048) Actual length = 144 (0x000090)
+  Function Length   : 75 (0x0004b) Actual length = 150 (0x000096)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+7.55%) : 180482.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsPreprocessorContextualKeyword(ushort):ubyte (Tier1)

@@ -12,8 +12,7 @@
 ;  V00 arg0         [V00,T01] (  3,  3   )  ushort  ->   r0         single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T02] (  3,  1.50)   ubyte  ->   r0         "Inline return value spill temp"
-;  V03 cse0         [V03,T03] (  3,  0   )     int  ->   r2         "CSE - conservative"
-;  V04 cse1         [V04,T00] (  8,  5   )     int  ->   r3         "CSE - aggressive"
+;  V03 cse0         [V03,T00] (  9,  5   )     int  ->   r3         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -71,15 +70,18 @@ G_M59682_IG09:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=0000 {}, byref
             adds    r2, r3, r2
             cmp     r2, 1
             bls     SHORT G_M59682_IG03
-            movw    r1, 0xd1ff
-            cmp     r3, r1
+            movw    r2, 0xd1ff
+            cmp     r3, r2
             beq     SHORT G_M59682_IG03
-            cmp     r2, 3
+            movw    r2, 0xd1ff
+            sxth    r2, r2
+            adds    r3, r3, r2
+            cmp     r3, 3
             bls     SHORT G_M59682_IG06
             b       SHORT G_M59682_IG07
-                       ;; size=26 bbWeight=0 PerfScore 0.00
+                       ;; size=34 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 106, prolog size 6, PerfScore 24.00, instruction count 43, allocated bytes for code 106 (MethodHash=791516dd) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsPreprocessorContextualKeyword(ushort):ubyte (Tier1)
+Total bytes of code 114, prolog size 6, PerfScore 24.00, instruction count 46, allocated bytes for code 114 (MethodHash=791516dd) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsPreprocessorContextualKeyword(ushort):ubyte (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -91,7 +93,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 53 (0x00035) Actual length = 106 (0x00006a)
+  Function Length   : 57 (0x00039) Actual length = 114 (0x000072)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

librariestestsnotieredcompilation.run.linux.arm.Release.mch

-24 (-2.99%) : 12380.dasm - System.Buffers.SharedArrayPool1[System.Collections.Immutable.ImmutableArray1[System.Canon]]:Return(System.Collections.Immutable.ImmutableArray`1[System.Canon][],ubyte):this (FullOpts)

@@ -10,31 +10,31 @@
 ;
 ;  V00 this         [V00,T09] (  8,  5.50)     ref  ->   r5         this class-hnd single-def <System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]>
 ;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->   r4         class-hnd single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon][]>
-;  V02 arg2         [V02,T12] (  3,  2.50)   ubyte  ->   r6         single-def
+;  V02 arg2         [V02,T11] (  3,  2.50)   ubyte  ->   r6         single-def
 ;  V03 loc0         [V03,T10] (  8,  5   )     int  ->   r8        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V05 loc2         [V05,T20] (  4,  2.50)   ubyte  ->  [sp+0x28] 
-;  V06 loc3         [V06,T23] (  3,  2   )   ubyte  ->  [sp+0x24] 
-;  V07 loc4         [V07,T16] (  4,  3   )     ref  ->   r9         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V08 loc5         [V08,T21] (  4,  2   )   byref  ->   r2         single-def
-;  V09 loc6         [V09,T18] (  3,  3   )     ref  ->   r6         class-hnd single-def <System.Array>
+;  V05 loc2         [V05,T19] (  4,  2.50)   ubyte  ->  r10        
+;  V06 loc3         [V06,T22] (  3,  2   )   ubyte  ->  [sp+0x28] 
+;  V07 loc4         [V07,T15] (  4,  3   )     ref  ->   r9         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+;  V08 loc5         [V08,T20] (  4,  2   )   byref  ->   r2         single-def
+;  V09 loc6         [V09,T17] (  3,  3   )     ref  ->   r6         class-hnd single-def <System.Array>
 ;* V10 loc7         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Buffers.SharedArrayPoolPartitions>
 ;  V11 OutArgs      [V11    ] (  1,  1   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T15] (  2,  4   )     ref  ->   r9         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V13 tmp2         [V13,T14] (  5,  4   )     ref  ->   r9        
-;  V14 tmp3         [V14,T25] (  2,  2   )     int  ->   r6         "impAppendStmt"
-;  V15 tmp4         [V15,T26] (  2,  2   )     int  ->  [sp+0x20]  spill-single-def "impAppendStmt"
-;  V16 tmp5         [V16,T27] (  2,  2   )     int  ->   r6         "impAppendStmt"
-;  V17 tmp6         [V17,T28] (  2,  2   )     int  ->   r7         "impAppendStmt"
+;  V12 tmp1         [V12,T14] (  2,  4   )     ref  ->   r9         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V13 tmp2         [V13,T13] (  5,  4   )     ref  ->   r9        
+;  V14 tmp3         [V14,T24] (  2,  2   )     int  ->   r6         "impAppendStmt"
+;  V15 tmp4         [V15,T25] (  2,  2   )     int  ->  [sp+0x24]  spill-single-def "impAppendStmt"
+;  V16 tmp5         [V16,T26] (  2,  2   )     int  ->   r6         "impAppendStmt"
+;  V17 tmp6         [V17,T27] (  2,  2   )     int  ->   r7         "impAppendStmt"
 ;* V18 tmp7         [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V19 tmp8         [V19    ] (  0,  0   )     int  ->  zero-ref   
 ;* V20 tmp9         [V20    ] (  0,  0   )     int  ->  zero-ref   
-;  V21 tmp10        [V21,T36] (  2,  1   )     int  ->   r3        
+;  V21 tmp10        [V21,T35] (  2,  1   )     int  ->   r3        
 ;* V22 tmp11        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp13        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp14        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp15        [V26,T31] (  3,  1.50)     int  ->   r0        
+;  V26 tmp15        [V26,T30] (  3,  1.50)     int  ->   r0        
 ;* V27 tmp16        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V28 tmp17        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp18        [V29    ] (  0,  0   )     int  ->  zero-ref   
@@ -45,40 +45,39 @@
 ;* V34 tmp23        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp24        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp25        [V36    ] (  0,  0   )     int  ->  zero-ref   
-;  V37 tmp26        [V37,T32] (  3,  1.50)     int  ->   r1        
-;  V38 tmp27        [V38,T29] (  2,  2   )     int  ->   r6         "impAppendStmt"
+;  V37 tmp26        [V37,T31] (  3,  1.50)     int  ->   r1        
+;  V38 tmp27        [V38,T28] (  2,  2   )     int  ->   r6         "impAppendStmt"
 ;* V39 tmp28        [V39    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V40 tmp29        [V40,T24] (  2,  2   )     ref  ->   r3         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V41 tmp30        [V41,T22] (  4,  2   )     ref  ->   r3        
-;  V42 tmp31        [V42,T39] (  3,  0   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V40 tmp29        [V40,T23] (  2,  2   )     ref  ->   r3         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V41 tmp30        [V41,T21] (  4,  2   )     ref  ->   r3        
+;  V42 tmp31        [V42,T38] (  3,  0   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V43 tmp32        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp33        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V45 tmp34        [V45,T33] (  3,  1.50)     int  ->  [sp+0x1C]  spill-single-def "Inline stloc first use temp"
+;  V45 tmp34        [V45,T32] (  3,  1.50)     int  ->  [sp+0x20]  spill-single-def "Inline stloc first use temp"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp36        [V47    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V48 tmp37        [V48,T34] (  3,  1.50)   ubyte  ->   r6         "Inline return value spill temp"
-;  V49 tmp38        [V49,T11] (  3,  4.50)     ref  ->   r9         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V50 tmp39        [V50,T01] (  7, 22   )     int  ->  [sp+0x18]  "Inline stloc first use temp"
-;  V51 tmp40        [V51,T05] (  4, 12   )     int  ->  [sp+0x14]  "Inline stloc first use temp"
-;  V52 tmp41        [V52,T02] (  2, 16   )     int  ->  r10         "dup spill"
+;  V48 tmp37        [V48,T33] (  3,  1.50)   ubyte  ->   r6         "Inline return value spill temp"
+;  V49 tmp38        [V49,T02] (  6, 16.50)     ref  ->   r9         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V50 tmp39        [V50,T01] (  7, 22   )     int  ->  [sp+0x1C]  "Inline stloc first use temp"
+;  V51 tmp40        [V51,T05] (  4, 12   )     int  ->  [sp+0x18]  "Inline stloc first use temp"
+;  V52 tmp41        [V52,T03] (  2, 16   )     int  ->   r3         "dup spill"
 ;* V53 tmp42        [V53    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V54 tmp43        [V54,T40] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
-;  V55 tmp44        [V55,T17] (  4,  3   )     int  ->   r3         "dup spill"
+;  V54 tmp43        [V54,T39] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
+;  V55 tmp44        [V55,T16] (  4,  3   )     int  ->   r3         "dup spill"
 ;* V56 tmp45        [V56    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V58 tmp47        [V58,T07] (  3, 10   )   ubyte  ->  [sp+0x10]  "Inline stloc first use temp"
-;  V59 tmp48        [V59,T00] (  8, 56   )     ref  ->  [sp+0x08]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V58 tmp47        [V58,T07] (  3, 10   )   ubyte  ->  [sp+0x14]  "Inline stloc first use temp"
+;  V59 tmp48        [V59,T00] (  8, 56   )     ref  ->  [sp+0x0C]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V60 tmp49        [V60,T06] (  3, 10   )     ref  ->   r1         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V61 tmp50        [V61,T03] (  5, 14   )     int  ->   r2         "Inline stloc first use temp"
-;  V62 tmp51        [V62,T30] (  2,  2   )     int  ->   r0         "Inlining Arg"
-;* V63 tmp52        [V63,T37] (  0,  0   )     ref  ->  zero-ref    single-def "field V39.Array (fldOffset=0x0)" P-INDEP
-;* V64 tmp53        [V64,T38] (  0,  0   )     int  ->  zero-ref    "field V39.MillisecondsTimeStamp (fldOffset=0x4)" P-INDEP
-;  V65 tmp54        [V65,T19] (  3,  3   )     ref  ->   r0         single-def "arr expr"
-;  V66 tmp55        [V66,T41] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
-;  V67 tmp56        [V67,T42] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
-;  V68 cse0         [V68,T35] (  3,  1.50)     int  ->   r0         "CSE - conservative"
-;  V69 cse1         [V69,T04] (  5, 12   )     int  ->  [sp+0x0C]  spill-single-def "CSE - aggressive"
-;  V70 cse2         [V70,T13] (  6,  4   )     int  ->   r7         "CSE - moderate"
+;  V61 tmp50        [V61,T04] (  5, 14   )     int  ->  [sp+0x10]  spill-single-def "Inline stloc first use temp"
+;  V62 tmp51        [V62,T29] (  2,  2   )     int  ->   r0         "Inlining Arg"
+;* V63 tmp52        [V63,T36] (  0,  0   )     ref  ->  zero-ref    single-def "field V39.Array (fldOffset=0x0)" P-INDEP
+;* V64 tmp53        [V64,T37] (  0,  0   )     int  ->  zero-ref    "field V39.MillisecondsTimeStamp (fldOffset=0x4)" P-INDEP
+;  V65 tmp54        [V65,T18] (  3,  3   )     ref  ->   r0         single-def "arr expr"
+;  V66 tmp55        [V66,T40] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V67 tmp56        [V67,T41] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
+;  V68 cse0         [V68,T34] (  3,  1.50)     int  ->   r0         "CSE - conservative"
+;  V69 cse1         [V69,T12] (  6,  4   )     int  ->   r7         "CSE - moderate"
 ;
 ; Lcl frame size = 52
 
@@ -133,7 +132,7 @@ G_M7055_IG04:        ; bbWeight=1, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000 {},
             ; gcrRegs -[r0]
             mov     r10, 0
             movs    r3, 1
-            str     r3, [sp+0x24]  // [V06 loc3]
+            str     r3, [sp+0x28]  // [V06 loc3]
             ldr     r0, [r9+0x04]
             cmp     r0, r8
             bls     G_M7055_IG21
@@ -157,7 +156,7 @@ G_M7055_IG06:        ; bbWeight=0.50, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000
             and     r0, r8, 31
             movs    r1, 16
             lsl     r2, r1, r0
-            str     r2, [sp+0x1C]  // [V45 tmp34]
+            str     r2, [sp+0x20]  // [V45 tmp34]
             cmp     r2, 0
             bge     SHORT G_M7055_IG07
             movw    r0, 0xd1ff
@@ -171,7 +170,7 @@ G_M7055_IG06:        ; bbWeight=0.50, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000
             ; gcr arg pop 0
                        ;; size=48 bbWeight=0.50 PerfScore 7.50
 G_M7055_IG07:        ; bbWeight=0.50, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000 {}, byref, isz
-            ldr     r2, [sp+0x1C]  // [V45 tmp34]
+            ldr     r2, [sp+0x20]  // [V45 tmp34]
             cmp     r6, r2
             bne     G_M7055_IG30
             lsl     r1, r8, 3
@@ -258,55 +257,55 @@ G_M7055_IG11:        ; bbWeight=0, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000
             ; gcr arg pop 0
             mov     r3, r0
             movs    r2, 0
-            str     r2, [sp+0x14]  // [V51 tmp40]
-            ldr     r1, [r9+0x04]
-            str     r1, [sp+0x0C]  // [V69 cse1]
-            cmp     r1, 0
-            str     r10, [sp+0x28] // [V05 loc2]
+            str     r2, [sp+0x18]  // [V51 tmp40]
+            ldr     r0, [r9+0x04]
+            cmp     r0, 0
             ble     SHORT G_M7055_IG18
-                       ;; size=32 bbWeight=0 PerfScore 0.00
+                       ;; size=26 bbWeight=0 PerfScore 0.00
 G_M7055_IG12:        ; bbWeight=4, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
-            cmp     r3, r1
+            ldr     r0, [r9+0x04]
+            cmp     r3, r0
             bhs     G_M7055_IG28
             add     r0, r9, 8
             ; byrRegs +[r0]
-            str     r3, [sp+0x18]  // [V50 tmp39]
-            lsl     lr, r3, 2
-            ldr     lr, [r0+lr]
-            ; gcrRegs +[lr]
-            str     lr, [sp+0x08]  // [V59 tmp48]
-            ; GC ptr vars +{V59}
-            ldrsb   r0, [lr]
-            ; byrRegs -[r0]
-            mov     r12, 0
-            str     r12, [sp+0x10] // [V58 tmp47]
-            mov     r0, lr
-            ; gcrRegs +[r0]
-            movw    r10, 0xd1ff
-            movt    r10, 0xd1ff
-            blx     r10        // <unknown method>
-            ; gcrRegs -[r0 lr]
-            ; gcr arg pop 0
-            ldr     r10, [sp+0x08] // [V59 tmp48]
-            ; gcrRegs +[r10]
-            ldr     r1, [r10+0x04]
+            str     r3, [sp+0x1C]  // [V50 tmp39]
+            lsls    r1, r3, 2
+            ldr     r1, [r0+r1]
             ; gcrRegs +[r1]
-            ldr     r2, [r10+0x0C]
+            str     r1, [sp+0x0C]  // [V59 tmp48]
+            ; GC ptr vars +{V59}
+            ldrsb   r0, [r1]
+            ; byrRegs -[r0]
+            mov     lr, 0
+            str     lr, [sp+0x14]  // [V58 tmp47]
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            movw    r12, 0xd1ff
+            movt    r12, 0xd1ff
+            blx     r12        // <unknown method>
+            ; gcrRegs -[r0-r1]
+            ; gcr arg pop 0
+            ldr     r2, [sp+0x0C]  // [V59 tmp48]
+            ; gcrRegs +[r2]
+            ldr     r1, [r2+0x04]
+            ; gcrRegs +[r1]
+            ldr     r3, [r2+0x0C]
+            str     r3, [sp+0x10]  // [V61 tmp50]
             ldr     r0, [r1+0x04]
-            cmp     r0, r2
+            cmp     r0, r3
             bls     SHORT G_M7055_IG15
-                       ;; size=66 bbWeight=4 PerfScore 80.00
-G_M7055_IG13:        ; bbWeight=2, gcrefRegs=0672 {r1 r4 r5 r6 r9 r10}, byrefRegs=0000 {}, byref, isz
-            cmp     r2, 0
+                       ;; size=60 bbWeight=4 PerfScore 88.00
+G_M7055_IG13:        ; bbWeight=2, gcrefRegs=0276 {r1 r2 r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
             bne     SHORT G_M7055_IG14
             movs    r0, 0
-            str     r0, [r10+0x10]
-                       ;; size=10 bbWeight=2 PerfScore 8.00
-G_M7055_IG14:        ; bbWeight=2, gcrefRegs=0672 {r1 r4 r5 r6 r9 r10}, byrefRegs=0000 {}, byref
+            str     r0, [r2+0x10]
+                       ;; size=8 bbWeight=2 PerfScore 8.00
+G_M7055_IG14:        ; bbWeight=2, gcrefRegs=0276 {r1 r2 r4 r5 r6 r9}, byrefRegs=0000 {}, byref
             adds    r1, 8
             ; gcrRegs -[r1]
             ; byrRegs +[r1]
-            lsls    r0, r2, 2
+            lsls    r0, r3, 2
             adds    r0, r1, r0
             ; byrRegs +[r0]
             mov     r1, r6
@@ -317,40 +316,42 @@ G_M7055_IG14:        ; bbWeight=2, gcrefRegs=0672 {r1 r4 r5 r6 r9 r10}, byrefReg
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            adds    r0, r2, 1
-            str     r0, [r10+0x0C]
-            mov     r12, 1
-            str     r12, [sp+0x10] // [V58 tmp47]
-                       ;; size=32 bbWeight=2 PerfScore 22.00
-G_M7055_IG15:        ; bbWeight=4, gcrefRegs=0670 {r4 r5 r6 r9 r10}, byrefRegs=0000 {}, byref, isz
-            mov     r0, r10
+            ldr     r1, [sp+0x10]  // [V61 tmp50]
+            adds    r0, r1, 1
+            str     r0, [r2+0x0C]
+            mov     lr, 1
+            str     lr, [sp+0x14]  // [V58 tmp47]
+                       ;; size=32 bbWeight=2 PerfScore 24.00
+G_M7055_IG15:        ; bbWeight=4, gcrefRegs=0274 {r2 r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+            mov     r0, r2
             ; gcrRegs +[r0]
...

-24 (-2.95%) : 16305.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult]:Return(Microsoft.CodeAnalysis.Testing.DiagnosticResult[],ubyte):this (FullOpts)

@@ -10,31 +10,31 @@
 ;
 ;  V00 this         [V00,T09] (  8,  5   )     ref  ->   r5         this class-hnd single-def <System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult]>
 ;  V01 arg1         [V01,T08] (  8,  6   )     ref  ->   r4         class-hnd single-def <Microsoft.CodeAnalysis.Testing.DiagnosticResult[]>
-;  V02 arg2         [V02,T12] (  3,  2.50)   ubyte  ->   r6         single-def
+;  V02 arg2         [V02,T11] (  3,  2.50)   ubyte  ->   r6         single-def
 ;  V03 loc0         [V03,T10] (  8,  5   )     int  ->   r8        
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V05 loc2         [V05,T20] (  4,  2.50)   ubyte  ->  [sp+0x2C] 
-;  V06 loc3         [V06,T23] (  3,  2   )   ubyte  ->  [sp+0x28] 
-;  V07 loc4         [V07,T16] (  4,  3   )     ref  ->   r9         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
-;  V08 loc5         [V08,T21] (  4,  2   )   byref  ->   r2         single-def
-;  V09 loc6         [V09,T18] (  3,  3   )     ref  ->   r6         class-hnd single-def <System.Array>
+;  V05 loc2         [V05,T19] (  4,  2.50)   ubyte  ->  r10        
+;  V06 loc3         [V06,T22] (  3,  2   )   ubyte  ->  [sp+0x24] 
+;  V07 loc4         [V07,T15] (  4,  3   )     ref  ->   r9         class-hnd exact single-def <System.Buffers.ArrayPoolEventSource>
+;  V08 loc5         [V08,T20] (  4,  2   )   byref  ->   r2         single-def
+;  V09 loc6         [V09,T17] (  3,  3   )     ref  ->   r6         class-hnd single-def <System.Array>
 ;* V10 loc7         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Buffers.SharedArrayPoolPartitions>
 ;  V11 OutArgs      [V11    ] (  1,  1   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T15] (  2,  4   )     ref  ->   r9         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V13 tmp2         [V13,T14] (  5,  4   )     ref  ->   r9        
-;  V14 tmp3         [V14,T25] (  2,  2   )     int  ->   r6         "impAppendStmt"
-;  V15 tmp4         [V15,T26] (  2,  2   )     int  ->  [sp+0x24]  spill-single-def "impAppendStmt"
-;  V16 tmp5         [V16,T27] (  2,  2   )     int  ->   r6         "impAppendStmt"
-;  V17 tmp6         [V17,T28] (  2,  2   )     int  ->   r7         "impAppendStmt"
+;  V12 tmp1         [V12,T14] (  2,  4   )     ref  ->   r9         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V13 tmp2         [V13,T13] (  5,  4   )     ref  ->   r9        
+;  V14 tmp3         [V14,T24] (  2,  2   )     int  ->   r6         "impAppendStmt"
+;  V15 tmp4         [V15,T25] (  2,  2   )     int  ->  [sp+0x20]  spill-single-def "impAppendStmt"
+;  V16 tmp5         [V16,T26] (  2,  2   )     int  ->   r6         "impAppendStmt"
+;  V17 tmp6         [V17,T27] (  2,  2   )     int  ->   r7         "impAppendStmt"
 ;* V18 tmp7         [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V19 tmp8         [V19    ] (  0,  0   )     int  ->  zero-ref   
 ;* V20 tmp9         [V20    ] (  0,  0   )     int  ->  zero-ref   
-;  V21 tmp10        [V21,T36] (  2,  1   )     int  ->   r3        
+;  V21 tmp10        [V21,T35] (  2,  1   )     int  ->   r3        
 ;* V22 tmp11        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;* V24 tmp13        [V24    ] (  0,  0   )     int  ->  zero-ref   
 ;* V25 tmp14        [V25    ] (  0,  0   )     int  ->  zero-ref   
-;  V26 tmp15        [V26,T31] (  3,  1.50)     int  ->   r0        
+;  V26 tmp15        [V26,T30] (  3,  1.50)     int  ->   r0        
 ;* V27 tmp16        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V28 tmp17        [V28    ] (  0,  0   )     int  ->  zero-ref   
 ;* V29 tmp18        [V29    ] (  0,  0   )     int  ->  zero-ref   
@@ -45,47 +45,46 @@
 ;* V34 tmp23        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp24        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp25        [V36    ] (  0,  0   )     int  ->  zero-ref   
-;  V37 tmp26        [V37,T32] (  3,  1.50)     int  ->   r1        
-;  V38 tmp27        [V38,T29] (  2,  2   )     int  ->   r6         "impAppendStmt"
+;  V37 tmp26        [V37,T31] (  3,  1.50)     int  ->   r1        
+;  V38 tmp27        [V38,T28] (  2,  2   )     int  ->   r6         "impAppendStmt"
 ;* V39 tmp28        [V39    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V40 tmp29        [V40,T24] (  2,  2   )     ref  ->   r3         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V41 tmp30        [V41,T22] (  4,  2   )     ref  ->   r3        
-;  V42 tmp31        [V42,T39] (  3,  0   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V40 tmp29        [V40,T23] (  2,  2   )     ref  ->   r3         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V41 tmp30        [V41,T21] (  4,  2   )     ref  ->   r3        
+;  V42 tmp31        [V42,T38] (  3,  0   )     ref  ->   r4         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V43 tmp32        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp33        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V45 tmp34        [V45,T33] (  3,  1.50)     int  ->  [sp+0x20]  spill-single-def "Inline stloc first use temp"
+;  V45 tmp34        [V45,T32] (  3,  1.50)     int  ->  [sp+0x1C]  spill-single-def "Inline stloc first use temp"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp36        [V47    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V48 tmp37        [V48,T34] (  3,  1.50)   ubyte  ->   r6         "Inline return value spill temp"
-;  V49 tmp38        [V49,T11] (  3,  4.50)     ref  ->   r9         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V50 tmp39        [V50,T01] (  7, 22   )     int  ->  [sp+0x1C]  "Inline stloc first use temp"
-;  V51 tmp40        [V51,T05] (  4, 12   )     int  ->  [sp+0x18]  "Inline stloc first use temp"
-;  V52 tmp41        [V52,T02] (  2, 16   )     int  ->  r10         "dup spill"
+;  V48 tmp37        [V48,T33] (  3,  1.50)   ubyte  ->   r6         "Inline return value spill temp"
+;  V49 tmp38        [V49,T02] (  6, 16.50)     ref  ->   r9         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V50 tmp39        [V50,T01] (  7, 22   )     int  ->  [sp+0x18]  "Inline stloc first use temp"
+;  V51 tmp40        [V51,T05] (  4, 12   )     int  ->  [sp+0x14]  "Inline stloc first use temp"
+;  V52 tmp41        [V52,T03] (  2, 16   )     int  ->   r3         "dup spill"
 ;* V53 tmp42        [V53    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V54 tmp43        [V54,T40] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
-;  V55 tmp44        [V55,T17] (  4,  3   )     int  ->   r3         "dup spill"
+;  V54 tmp43        [V54,T39] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
+;  V55 tmp44        [V55,T16] (  4,  3   )     int  ->   r3         "dup spill"
 ;* V56 tmp45        [V56    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V58 tmp47        [V58,T07] (  3, 10   )   ubyte  ->  [sp+0x14]  "Inline stloc first use temp"
-;  V59 tmp48        [V59,T00] (  8, 56   )     ref  ->  [sp+0x0C]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V58 tmp47        [V58,T07] (  3, 10   )   ubyte  ->  [sp+0x10]  "Inline stloc first use temp"
+;  V59 tmp48        [V59,T00] (  8, 56   )     ref  ->  [sp+0x08]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V60 tmp49        [V60,T06] (  3, 10   )     ref  ->   r1         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V61 tmp50        [V61,T03] (  5, 14   )     int  ->   r2         "Inline stloc first use temp"
-;  V62 tmp51        [V62,T30] (  2,  2   )     int  ->   r0         "Inlining Arg"
-;* V63 tmp52        [V63,T37] (  0,  0   )     ref  ->  zero-ref    single-def "field V39.Array (fldOffset=0x0)" P-INDEP
-;* V64 tmp53        [V64,T38] (  0,  0   )     int  ->  zero-ref    "field V39.MillisecondsTimeStamp (fldOffset=0x4)" P-INDEP
-;  V65 tmp54        [V65,T19] (  3,  3   )     ref  ->   r0         single-def "arr expr"
-;  V66 tmp55        [V66,T41] (  2,  0   )     ref  ->   r5         single-def "argument with side effect"
-;  V67 tmp56        [V67,T42] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
-;  V68 cse0         [V68,T35] (  3,  1.50)     int  ->   r0         "CSE - conservative"
-;  V69 cse1         [V69,T04] (  5, 12   )     int  ->  [sp+0x10]  spill-single-def "CSE - aggressive"
-;  V70 cse2         [V70,T13] (  6,  4   )     int  ->   r7         "CSE - moderate"
+;  V61 tmp50        [V61,T04] (  5, 14   )     int  ->  [sp+0x0C]  spill-single-def "Inline stloc first use temp"
+;  V62 tmp51        [V62,T29] (  2,  2   )     int  ->   r0         "Inlining Arg"
+;* V63 tmp52        [V63,T36] (  0,  0   )     ref  ->  zero-ref    single-def "field V39.Array (fldOffset=0x0)" P-INDEP
+;* V64 tmp53        [V64,T37] (  0,  0   )     int  ->  zero-ref    "field V39.MillisecondsTimeStamp (fldOffset=0x4)" P-INDEP
+;  V65 tmp54        [V65,T18] (  3,  3   )     ref  ->   r0         single-def "arr expr"
+;  V66 tmp55        [V66,T40] (  2,  0   )     ref  ->   r5         single-def "argument with side effect"
+;  V67 tmp56        [V67,T41] (  2,  0   )     ref  ->   r2         single-def "argument with side effect"
+;  V68 cse0         [V68,T34] (  3,  1.50)     int  ->   r0         "CSE - conservative"
+;  V69 cse1         [V69,T12] (  6,  4   )     int  ->   r7         "CSE - moderate"
 ;
-; Lcl frame size = 52
+; Lcl frame size = 44
 
 G_M10319_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 52
-            add     r11, sp, 80
+            sub     sp, 44
+            add     r11, sp, 72
             mov     r5, r0
             ; gcrRegs +[r5]
             mov     r4, r1
@@ -134,7 +133,7 @@ G_M10319_IG04:        ; bbWeight=1, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000 {}
             ; gcrRegs -[r0]
             mov     r10, 0
             movs    r3, 1
-            str     r3, [sp+0x28]  // [V06 loc3]
+            str     r3, [sp+0x24]  // [V06 loc3]
             ldr     r0, [r9+0x04]
             cmp     r0, r8
             bls     G_M10319_IG21
@@ -158,7 +157,7 @@ G_M10319_IG06:        ; bbWeight=0.50, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000
             and     r0, r8, 31
             movs    r1, 16
             lsl     r2, r1, r0
-            str     r2, [sp+0x20]  // [V45 tmp34]
+            str     r2, [sp+0x1C]  // [V45 tmp34]
             cmp     r2, 0
             bge     SHORT G_M10319_IG07
             movw    r0, 0xd1ff
@@ -172,7 +171,7 @@ G_M10319_IG06:        ; bbWeight=0.50, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000
             ; gcr arg pop 0
                        ;; size=48 bbWeight=0.50 PerfScore 7.50
 G_M10319_IG07:        ; bbWeight=0.50, gcrefRegs=0230 {r4 r5 r9}, byrefRegs=0000 {}, byref, isz
-            ldr     r2, [sp+0x20]  // [V45 tmp34]
+            ldr     r2, [sp+0x1C]  // [V45 tmp34]
             cmp     r6, r2
             bne     G_M10319_IG30
             lsl     r1, r8, 3
@@ -259,55 +258,55 @@ G_M10319_IG11:        ; bbWeight=0, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000
             ; gcr arg pop 0
             mov     r3, r0
             movs    r2, 0
-            str     r2, [sp+0x18]  // [V51 tmp40]
-            ldr     r1, [r9+0x04]
-            str     r1, [sp+0x10]  // [V69 cse1]
-            cmp     r1, 0
-            str     r10, [sp+0x2C] // [V05 loc2]
+            str     r2, [sp+0x14]  // [V51 tmp40]
+            ldr     r0, [r9+0x04]
+            cmp     r0, 0
             ble     SHORT G_M10319_IG18
-                       ;; size=32 bbWeight=0 PerfScore 0.00
+                       ;; size=26 bbWeight=0 PerfScore 0.00
 G_M10319_IG12:        ; bbWeight=4, gcrefRegs=0270 {r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
-            cmp     r3, r1
+            ldr     r0, [r9+0x04]
+            cmp     r3, r0
             bhs     G_M10319_IG28
             add     r0, r9, 8
             ; byrRegs +[r0]
-            str     r3, [sp+0x1C]  // [V50 tmp39]
-            lsl     lr, r3, 2
-            ldr     lr, [r0+lr]
-            ; gcrRegs +[lr]
-            str     lr, [sp+0x0C]  // [V59 tmp48]
-            ; GC ptr vars +{V59}
-            ldrsb   r0, [lr]
-            ; byrRegs -[r0]
-            mov     r12, 0
-            str     r12, [sp+0x14] // [V58 tmp47]
-            mov     r0, lr
-            ; gcrRegs +[r0]
-            movw    r10, 0xd1ff
-            movt    r10, 0xd1ff
-            blx     r10        // <unknown method>
-            ; gcrRegs -[r0 lr]
-            ; gcr arg pop 0
-            ldr     r10, [sp+0x0C] // [V59 tmp48]
-            ; gcrRegs +[r10]
-            ldr     r1, [r10+0x04]
+            str     r3, [sp+0x18]  // [V50 tmp39]
+            lsls    r1, r3, 2
+            ldr     r1, [r0+r1]
             ; gcrRegs +[r1]
-            ldr     r2, [r10+0x0C]
+            str     r1, [sp+0x08]  // [V59 tmp48]
+            ; GC ptr vars +{V59}
+            ldrsb   r0, [r1]
+            ; byrRegs -[r0]
+            mov     lr, 0
+            str     lr, [sp+0x10]  // [V58 tmp47]
+            mov     r0, r1
+            ; gcrRegs +[r0]
+            movw    r12, 0xd1ff
+            movt    r12, 0xd1ff
+            blx     r12        // <unknown method>
+            ; gcrRegs -[r0-r1]
+            ; gcr arg pop 0
+            ldr     r2, [sp+0x08]  // [V59 tmp48]
+            ; gcrRegs +[r2]
+            ldr     r1, [r2+0x04]
+            ; gcrRegs +[r1]
+            ldr     r3, [r2+0x0C]
+            str     r3, [sp+0x0C]  // [V61 tmp50]
             ldr     r0, [r1+0x04]
-            cmp     r0, r2
+            cmp     r0, r3
             bls     SHORT G_M10319_IG15
-                       ;; size=66 bbWeight=4 PerfScore 80.00
-G_M10319_IG13:        ; bbWeight=2, gcrefRegs=0672 {r1 r4 r5 r6 r9 r10}, byrefRegs=0000 {}, byref, isz
-            cmp     r2, 0
+                       ;; size=60 bbWeight=4 PerfScore 88.00
+G_M10319_IG13:        ; bbWeight=2, gcrefRegs=0276 {r1 r2 r4 r5 r6 r9}, byrefRegs=0000 {}, byref, isz
+            cmp     r3, 0
             bne     SHORT G_M10319_IG14
             movs    r0, 0
-            str     r0, [r10+0x10]
-                       ;; size=10 bbWeight=2 PerfScore 8.00
-G_M10319_IG14:        ; bbWeight=2, gcrefRegs=0672 {r1 r4 r5 r6 r9 r10}, byrefRegs=0000 {}, byref
+            str     r0, [r2+0x10]
+                       ;; size=8 bbWeight=2 PerfScore 8.00
+G_M10319_IG14:        ; bbWeight=2, gcrefRegs=0276 {r1 r2 r4 r5 r6 r9}, byrefRegs=0000 {}, byref
             adds    r1, 8
             ; gcrRegs -[r1]
             ; byrRegs +[r1]
-            lsls    r0, r2, 2
+            lsls    r0, r3, 2
             adds    r0, r1, r0
             ; byrRegs +[r0]
             mov     r1, r6
@@ -318,40 +317,42 @@ G_M10319_IG14:        ; bbWeight=2, gcrefRegs=0672 {r1 r4 r5 r6 r9 r10}, byrefRe
             blx     r12        // CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            adds    r0, r2, 1
-            str     r0, [r10+0x0C]
-            mov     r12, 1
-            str     r12, [sp+0x14] // [V58 tmp47]
-                       ;; size=32 bbWeight=2 PerfScore 22.00
-G_M10319_IG15:        ; bbWeight=4, gcrefRegs=0670 {r4 r5 r6 r9 r10}, byrefRegs=0000 {}, byref, isz
...

-2 (-2.27%) : 144291.dasm - System.SpanTests.ReadOnlySpanTests+<>cDisplayClass21_0:b9():this (FullOpts)

@@ -35,24 +35,24 @@
 ;* V24 tmp23        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V25 tmp24        [V25    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V26 tmp25        [V26    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
-;* V27 tmp26        [V27,T06] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V28 tmp27        [V28,T03] (  2,  2   )     int  ->   r3         "Inline stloc first use temp"
+;* V27 tmp26        [V27,T05] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V28 tmp27        [V28,T03] (  3,  3   )     int  ->   r1         "Inline stloc first use temp"
 ;* V29 tmp28        [V29    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp29        [V30    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V31 tmp30        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V32 tmp31        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp32        [V33    ] (  0,  0   )     int  ->  zero-ref    "field V02._value (fldOffset=0x0)" P-INDEP
-;* V34 tmp33        [V34,T07] (  0,  0   )     int  ->  zero-ref    "field V04._value (fldOffset=0x0)" P-INDEP
+;* V34 tmp33        [V34,T06] (  0,  0   )     int  ->  zero-ref    "field V04._value (fldOffset=0x0)" P-INDEP
 ;* V35 tmp34        [V35    ] (  0,  0   )     int  ->  zero-ref    "field V05._value (fldOffset=0x0)" P-INDEP
 ;* V36 tmp35        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V06.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V37 tmp36        [V37,T08] (  0,  0   )     int  ->  zero-ref    "field V06.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V37 tmp36        [V37,T07] (  0,  0   )     int  ->  zero-ref    "field V06.<End>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V38 tmp37        [V38    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V39 tmp38        [V39    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x4)" P-INDEP
 ;* V40 tmp39        [V40    ] (  0,  0   )     int  ->  zero-ref    "field V08._value (fldOffset=0x0)" P-INDEP
 ;* V41 tmp40        [V41    ] (  0,  0   )   byref  ->  zero-ref    "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V42 tmp41        [V42    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x4)" P-INDEP
 ;* V43 tmp42        [V43    ] (  0,  0   )     int  ->  zero-ref    "field V10.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V44 tmp43        [V44,T09] (  0,  0   )     int  ->  zero-ref    "field V10.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V44 tmp43        [V44,T08] (  0,  0   )     int  ->  zero-ref    "field V10.<End>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V45 tmp44        [V45    ] (  0,  0   )     int  ->  zero-ref    "field V11.Item1 (fldOffset=0x0)" P-INDEP
 ;* V46 tmp45        [V46    ] (  0,  0   )     int  ->  zero-ref    "field V11.Item2 (fldOffset=0x4)" P-INDEP
 ;* V47 tmp46        [V47    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
@@ -67,8 +67,7 @@
 ;* V56 tmp55        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V21._value (fldOffset=0x0)" P-INDEP
 ;* V57 tmp56        [V57    ] (  0,  0   )     int  ->  zero-ref    "field V22._value (fldOffset=0x0)" P-INDEP
 ;* V58 tmp57        [V58    ] (  0,  0   )     int  ->  zero-ref    "field V26.Item1 (fldOffset=0x0)" P-INDEP
-;  V59 tmp58        [V59,T05] (  2,  2   )     int  ->   r1         "field V26.Item2 (fldOffset=0x4)" P-INDEP
-;  V60 cse0         [V60,T04] (  3,  3   )     int  ->   r1         "CSE - moderate"
+;  V59 tmp58        [V59,T04] (  2,  2   )     int  ->   r1         "field V26.Item2 (fldOffset=0x4)" P-INDEP
 ;
 ; Lcl frame size = 0
 
@@ -84,12 +83,11 @@ G_M60991_IG02:        ; bbWeight=1, gcrefRegs=0001 {r0}, byrefRegs=0000 {}, byre
             ldr     r0, [r0+0x04]
             ; gcrRegs -[r0]
             mov     r1, r0
-            mov     r3, r1
-            cmp     r3, r0
+            cmp     r1, r0
             bhi     SHORT G_M60991_IG06
             cmp     r1, 0
             bge     SHORT G_M60991_IG04
-                       ;; size=20 bbWeight=1 PerfScore 10.00
+                       ;; size=18 bbWeight=1 PerfScore 9.00
 G_M60991_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             movw    r0, 0xd1ff
             movt    r0, 0xd1ff
@@ -119,7 +117,7 @@ G_M60991_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=14 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 88, prolog size 6, PerfScore 17.00, instruction count 32, allocated bytes for code 88 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
+Total bytes of code 86, prolog size 6, PerfScore 16.00, instruction count 31, allocated bytes for code 86 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -131,7 +129,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 44 (0x0002c) Actual length = 88 (0x000058)
+  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)

+16 (+2.01%) : 12348.dasm - System.Buffers.SharedArrayPool1[System.Collections.Immutable.ImmutableArray1[System.Canon]]:Rent(int):System.Collections.Immutable.ImmutableArray`1[System.Canon][]:this (FullOpts)

@@ -13,15 +13,15 @@
 ;  V02 loc0         [V02,T15] (  8,  4.50)     ref  ->   r6         class-hnd exact single-def <<unknown class>>
 ;  V03 loc1         [V03,T10] ( 14,  7   )     ref  ->   r8         class-hnd <System.Collections.Immutable.ImmutableArray`1[System.__Canon][]>
 ;  V04 loc2         [V04,T14] (  9,  5   )     int  ->   r7        
-;  V05 loc3         [V05,T17] (  5,  3.50)     ref  ->   r0         class-hnd exact single-def <<unknown class>>
-;  V06 loc4         [V06,T36] (  3,  1.50)     ref  ->   r0         class-hnd exact single-def <<unknown class>>
-;  V07 loc5         [V07,T37] (  3,  1.50)     ref  ->   r0         class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions>
-;  V08 loc6         [V08,T39] (  3,  1.50)     int  ->   r9        
+;  V05 loc3         [V05,T16] (  5,  3.50)     ref  ->   r0         class-hnd exact single-def <<unknown class>>
+;  V06 loc4         [V06,T35] (  3,  1.50)     ref  ->   r0         class-hnd exact single-def <<unknown class>>
+;  V07 loc5         [V07,T36] (  3,  1.50)     ref  ->   r0         class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions>
+;  V08 loc6         [V08,T38] (  3,  1.50)     int  ->   r9        
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )     int  ->  zero-ref    "spilling helperCall"
-;  V11 tmp2         [V11,T25] (  2,  2   )     int  ->   r5         "impAppendStmt"
-;  V12 tmp3         [V12,T26] (  2,  2   )     int  ->   r5         "impAppendStmt"
-;  V13 tmp4         [V13,T27] (  2,  2   )     int  ->   r3         "impAppendStmt"
+;  V11 tmp2         [V11,T24] (  2,  2   )     int  ->   r5         "impAppendStmt"
+;  V12 tmp3         [V12,T25] (  2,  2   )     int  ->   r5         "impAppendStmt"
+;  V13 tmp4         [V13,T26] (  2,  2   )     int  ->   r3         "impAppendStmt"
 ;* V14 tmp5         [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
@@ -32,56 +32,55 @@
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp14        [V23    ] (  0,  0   )     int  ->  zero-ref   
-;  V24 tmp15        [V24,T40] (  3,  1.50)     int  ->   r0        
+;  V24 tmp15        [V24,T39] (  3,  1.50)     int  ->   r0        
 ;* V25 tmp16        [V25    ] (  0,  0   )     int  ->  zero-ref    "spilling helperCall"
-;  V26 tmp17        [V26,T28] (  2,  2   )     int  ->   r5         "impAppendStmt"
-;  V27 tmp18        [V27,T29] (  2,  2   )     int  ->   r9         "impAppendStmt"
-;  V28 tmp19        [V28,T30] (  2,  2   )     int  ->   r5         "impAppendStmt"
-;  V29 tmp20        [V29,T31] (  2,  2   )     int  ->   r9         "impAppendStmt"
+;  V26 tmp17        [V26,T27] (  2,  2   )     int  ->   r5         "impAppendStmt"
+;  V27 tmp18        [V27,T28] (  2,  2   )     int  ->   r9         "impAppendStmt"
+;  V28 tmp19        [V28,T29] (  2,  2   )     int  ->   r5         "impAppendStmt"
+;  V29 tmp20        [V29,T30] (  2,  2   )     int  ->   r9         "impAppendStmt"
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V31 tmp22        [V31,T38] (  3,  1.50)     ref  ->   r8         class-hnd "Inline return value spill temp" <System.Array>
-;  V32 tmp23        [V32,T16] (  3,  4.50)     ref  ->   r8         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V31 tmp22        [V31,T37] (  3,  1.50)     ref  ->   r8         class-hnd "Inline return value spill temp" <System.Array>
+;  V32 tmp23        [V32,T02] (  6, 16.50)     ref  ->   r8         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;  V33 tmp24        [V33,T01] (  7, 22   )     int  ->   r5         "Inline stloc first use temp"
 ;  V34 tmp25        [V34,T04] (  4, 12   )     int  ->   r9         "Inline stloc first use temp"
 ;* V35 tmp26        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
 ;* V36 tmp27        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Array>
-;  V37 tmp28        [V37,T02] (  2, 16   )     int  ->   r5         "dup spill"
+;  V37 tmp28        [V37,T03] (  2, 16   )     int  ->   r5         "dup spill"
 ;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V39 tmp30        [V39,T46] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
-;  V40 tmp31        [V40,T18] (  4,  3   )     int  ->   r9         "dup spill"
+;  V39 tmp30        [V39,T45] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
+;  V40 tmp31        [V40,T17] (  4,  3   )     int  ->   r9         "dup spill"
 ;* V41 tmp32        [V41    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V42 tmp33        [V42    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V43 tmp34        [V43,T06] (  4, 10.50)     ref  ->  [sp+0x10]  class-hnd "Inline stloc first use temp" <System.Array>
-;  V44 tmp35        [V44,T00] (  7, 52   )     ref  ->  [sp+0x0C]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V43 tmp34        [V43,T06] (  4, 10.50)     ref  ->  [sp+0x08]  class-hnd "Inline stloc first use temp" <System.Array>
+;  V44 tmp35        [V44,T00] (  7, 52   )     ref  ->  r10         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V45 tmp36        [V45,T07] (  3, 10   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V46 tmp37        [V46,T05] (  4, 12   )     int  ->   r2         "Inline stloc first use temp"
-;  V47 tmp38        [V47,T41] (  3,  1.50)     int  ->   r5         "Inline stloc first use temp"
-;  V48 tmp39        [V48,T47] (  2,  0   )     ref  ->   r1         single-def "argument with side effect"
-;  V49 tmp40        [V49,T32] (  2,  2   )     int  ->   r0         "argument with side effect"
-;  V50 tmp41        [V50,T33] (  2,  2   )     int  ->   r3         "argument with side effect"
-;  V51 tmp42        [V51,T34] (  2,  2   )     int  ->   r3         "argument with side effect"
-;  V52 tmp43        [V52,T35] (  2,  2   )     int  ->   r3         "argument with side effect"
-;  V53 cse0         [V53,T42] (  3,  1.50)     int  ->   r0         "CSE - conservative"
-;  V54 cse1         [V54,T43] (  3,  1.50)     int  ->   r3         "CSE - conservative"
-;  V55 cse2         [V55,T44] (  2,  1   )     int  ->   r1         "CSE - conservative"
-;  V56 cse3         [V56,T03] (  5, 12   )     int  ->  r10         "CSE - aggressive"
-;  V57 cse4         [V57,T09] (  2,  8   )     int  ->   r1         "CSE - aggressive"
-;  V58 cse5         [V58,T12] (  3,  6   )   byref  ->   r0         "CSE - moderate"
-;  V59 cse6         [V59,T13] (  3,  6   )     int  ->   r1         "CSE - moderate"
-;  V60 cse7         [V60,T45] (  2,  1   )     int  ->   r3         "CSE - conservative"
-;  V61 rat0         [V61,T21] (  3,  2.20)     int  ->   r0         "Spilling to split statement for tree"
-;  V62 rat1         [V62,T23] (  3,  2   )     int  ->   r1         "runtime lookup"
-;  V63 rat2         [V63,T19] (  3,  2.80)     int  ->   r1         "fgMakeTemp is creating a new local variable"
-;  V64 rat3         [V64,T22] (  3,  2.20)     int  ->   r0         "Spilling to split statement for tree"
-;  V65 rat4         [V65,T24] (  3,  2   )     int  ->   r0         "runtime lookup"
-;  V66 rat5         [V66,T20] (  3,  2.80)     int  ->   r3         "fgMakeTemp is creating a new local variable"
+;  V46 tmp37        [V46,T05] (  4, 12   )     int  ->   r3         "Inline stloc first use temp"
+;  V47 tmp38        [V47,T40] (  3,  1.50)     int  ->   r5         "Inline stloc first use temp"
+;  V48 tmp39        [V48,T46] (  2,  0   )     ref  ->   r1         single-def "argument with side effect"
+;  V49 tmp40        [V49,T31] (  2,  2   )     int  ->   r0         "argument with side effect"
+;  V50 tmp41        [V50,T32] (  2,  2   )     int  ->   r3         "argument with side effect"
+;  V51 tmp42        [V51,T33] (  2,  2   )     int  ->   r3         "argument with side effect"
+;  V52 tmp43        [V52,T34] (  2,  2   )     int  ->   r3         "argument with side effect"
+;  V53 cse0         [V53,T41] (  3,  1.50)     int  ->   r0         "CSE - conservative"
+;  V54 cse1         [V54,T42] (  3,  1.50)     int  ->   r3         "CSE - conservative"
+;  V55 cse2         [V55,T43] (  2,  1   )     int  ->   r1         "CSE - conservative"
+;  V56 cse3         [V56,T09] (  2,  8   )     int  ->   r2         "CSE - aggressive"
+;  V57 cse4         [V57,T12] (  3,  6   )   byref  ->   r0         "CSE - moderate"
+;  V58 cse5         [V58,T13] (  3,  6   )     int  ->   r2         "CSE - moderate"
+;  V59 cse6         [V59,T44] (  2,  1   )     int  ->   r3         "CSE - moderate"
+;  V60 rat0         [V60,T20] (  3,  2.20)     int  ->   r0         "Spilling to split statement for tree"
+;  V61 rat1         [V61,T22] (  3,  2   )     int  ->   r1         "runtime lookup"
+;  V62 rat2         [V62,T18] (  3,  2.80)     int  ->   r1         "fgMakeTemp is creating a new local variable"
+;  V63 rat3         [V63,T21] (  3,  2.20)     int  ->   r0         "Spilling to split statement for tree"
+;  V64 rat4         [V64,T23] (  3,  2   )     int  ->   r0         "runtime lookup"
+;  V65 rat5         [V65,T19] (  3,  2.80)     int  ->   r3         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 28
+; Lcl frame size = 20
 
 G_M15442_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             push    {r4,r5,r6,r7,r8,r9,r10,r11,lr}
-            sub     sp, 28
-            add     r11, sp, 56
+            sub     sp, 20
+            add     r11, sp, 48
             str     r0, [r11-0x24]
             mov     r4, r0
             ; gcrRegs +[r4]
@@ -162,7 +161,7 @@ G_M15442_IG04:        ; bbWeight=0.50, gcrefRegs=0110 {r4 r8}, byrefRegs=0000 {}
             ; gcrRegs +[r0]
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M15442_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-            add     sp, 28
+            add     sp, 20
             pop     {r4,r5,r6,r7,r8,r9,r10,r11,pc}
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
 G_M15442_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, gcvars, byref, isz
@@ -217,103 +216,100 @@ G_M15442_IG09:        ; bbWeight=0, gcrefRegs=0150 {r4 r6 r8}, byrefRegs=0000 {}
             ; gcr arg pop 0
             mov     r5, r0
             mov     r9, 0
-            ldr     r10, [r8+0x04]
-            cmp     r10, 0
+            ldr     r0, [r8+0x04]
+            cmp     r0, 0
             ble     SHORT G_M15442_IG15
-                       ;; size=28 bbWeight=0 PerfScore 0.00
+                       ;; size=26 bbWeight=0 PerfScore 0.00
 G_M15442_IG10:        ; bbWeight=4, gcrefRegs=0150 {r4 r6 r8}, byrefRegs=0000 {}, byref, isz
-            cmp     r5, r10
+            ldr     r0, [r8+0x04]
+            cmp     r5, r0
             bhs     G_M15442_IG34
             add     r0, r8, 8
             ; byrRegs +[r0]
             lsls    r3, r5, 2
-            ldr     r3, [r0+r3]
-            ; gcrRegs +[r3]
-            str     r3, [sp+0x0C]
-            ; GC ptr vars +{V44}
-            ldrsb   r0, [r3]
+            ldr     r10, [r0+r3]
+            ; gcrRegs +[r10]
+            ldrsb   r0, [r10]
             ; byrRegs -[r0]
-            movs    r2, 0
-            str     r2, [sp+0x10]  // [V43 tmp34]
+            movs    r3, 0
+            str     r3, [sp+0x08]  // [V43 tmp34]
             ; GC ptr vars +{V43}
-            mov     r0, r3
+            mov     r0, r10
             ; gcrRegs +[r0]
-            movw    r1, 0xd1ff
-            movt    r1, 0xd1ff
-            blx     r1     // <unknown method>
-            ; gcrRegs -[r0 r3]
+            movw    r2, 0xd1ff
+            movt    r2, 0xd1ff
+            blx     r2     // <unknown method>
+            ; gcrRegs -[r0]
             ; gcr arg pop 0
-            ldr     r3, [sp+0x0C]  // [V44 tmp35]
-            ; gcrRegs +[r3]
-            ldr     r0, [r3+0x04]
+            ldr     r0, [r10+0x04]
             ; gcrRegs +[r0]
-            ldr     r2, [r3+0x0C]
-            subs    r2, r2, 1
-            ldr     r1, [r0+0x04]
-            cmp     r1, r2
+            ldr     r3, [r10+0x0C]
+            subs    r3, r3, 1
+            ldr     r2, [r0+0x04]
+            cmp     r2, r3
             bls     SHORT G_M15442_IG12
-                       ;; size=50 bbWeight=4 PerfScore 80.00
-G_M15442_IG11:        ; bbWeight=2, gcVars=0000000000000001 {V44}, gcrefRegs=0159 {r0 r3 r4 r6 r8}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=56 bbWeight=4 PerfScore 76.00
+G_M15442_IG11:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0551 {r0 r4 r6 r8 r10}, byrefRegs=0000 {}, gcvars, byref
             ; GC ptr vars -{V43}
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            lsls    r1, r2, 2
-            ldr     lr, [r0+r1]
-            ; gcrRegs +[lr]
-            str     lr, [sp+0x10]  // [V43 tmp34]
+            lsls    r2, r3, 2
+            ldr     r1, [r0+r2]
+            ; gcrRegs +[r1]
+            str     r1, [sp+0x08]  // [V43 tmp34]
             ; GC ptr vars +{V43}
-            mov     r12, 0
-            str     r12, [r0+r1]
-            str     r2, [r3+0x0C]
-                       ;; size=22 bbWeight=2 PerfScore 14.00
-G_M15442_IG12:        ; bbWeight=4, gcVars=0000000000000041 {V43 V44}, gcrefRegs=0158 {r3 r4 r6 r8}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[lr]
+            mov     lr, 0
+            str     lr, [r0+r2]
+            str     r3, [r10+0x0C]
+                       ;; size=20 bbWeight=2 PerfScore 14.00
+G_M15442_IG12:        ; bbWeight=4, gcVars=0000000000000040 {V43}, gcrefRegs=0550 {r4 r6 r8 r10}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            mov     r0, r3
+            mov     r0, r10
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
-            ; gcrRegs -[r3]
             movt    r3, 0xd1ff
-            ; GC ptr vars -{V44}
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
+            ; gcrRegs -[r0 r10]
             ; gcr arg pop 0
-            ldr     r0, [sp+0x10]  // [V43 tmp34]
-            ; gcrRegs +[r0]
-            cmp     r0, 0
+            ldr     r10, [sp+0x08] // [V43 tmp34]
+            ; gcrRegs +[r10]
+            cmp     r10, 0
             bne     SHORT G_M15442_IG16
             adds    r5, r5, 1
-            cmp     r10, r5
+            ldr     r0, [r8+0x04]
+            cmp     r0, r5
             bne     SHORT G_M15442_IG14
-                       ;; size=24 bbWeight=4 PerfScore 40.00
+                       ;; size=32 bbWeight=4 PerfScore 44.00
 G_M15442_IG13:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0150 {r4 r6 r8}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r0]
+            ; gcrRegs -[r10]
             ; GC ptr vars -{V43}
             movs    r5, 0
                        ;; size=2 bbWeight=2 PerfScore 2.00
 G_M15442_IG14:        ; bbWeight=4, gcrefRegs=0150 {r4 r6 r8}, byrefRegs=0000 {}, byref, isz
             add     r9, r9, 1
-            cmp     r10, r9
+            ldr     r0, [r8+0x04]
+            cmp     r0, r9
             bgt     SHORT G_M15442_IG10
...

+16 (+2.19%) : 16303.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult]:Rent(int):Microsoft.CodeAnalysis.Testing.DiagnosticResult[]:this (FullOpts)

@@ -13,14 +13,14 @@
 ;  V02 loc0         [V02,T15] (  8,  4.50)     ref  ->   r6         class-hnd exact single-def <<unknown class>>
 ;  V03 loc1         [V03,T11] ( 13,  6.50)     ref  ->   r8         class-hnd <Microsoft.CodeAnalysis.Testing.DiagnosticResult[]>
 ;  V04 loc2         [V04,T14] (  9,  5   )     int  ->   r7        
-;  V05 loc3         [V05,T17] (  5,  3.50)     ref  ->   r0         class-hnd exact single-def <<unknown class>>
-;  V06 loc4         [V06,T29] (  3,  1.50)     ref  ->   r0         class-hnd exact single-def <<unknown class>>
-;  V07 loc5         [V07,T30] (  3,  1.50)     ref  ->   r0         class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions>
-;  V08 loc6         [V08,T32] (  3,  1.50)     int  ->   r9        
+;  V05 loc3         [V05,T16] (  5,  3.50)     ref  ->   r0         class-hnd exact single-def <<unknown class>>
+;  V06 loc4         [V06,T28] (  3,  1.50)     ref  ->   r0         class-hnd exact single-def <<unknown class>>
+;  V07 loc5         [V07,T29] (  3,  1.50)     ref  ->   r0         class-hnd exact single-def <System.Buffers.SharedArrayPoolPartitions>
+;  V08 loc6         [V08,T31] (  3,  1.50)     int  ->   r9        
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct ( 8) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T19] (  2,  2   )     int  ->   r5         "impAppendStmt"
-;  V11 tmp2         [V11,T20] (  2,  2   )     int  ->   r5         "impAppendStmt"
-;  V12 tmp3         [V12,T21] (  2,  2   )     int  ->   r3         "impAppendStmt"
+;  V10 tmp1         [V10,T18] (  2,  2   )     int  ->   r5         "impAppendStmt"
+;  V11 tmp2         [V11,T19] (  2,  2   )     int  ->   r5         "impAppendStmt"
+;  V12 tmp3         [V12,T20] (  2,  2   )     int  ->   r3         "impAppendStmt"
 ;* V13 tmp4         [V13    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V14 tmp5         [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;* V15 tmp6         [V15    ] (  0,  0   )     int  ->  zero-ref   
@@ -31,46 +31,45 @@
 ;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref   
 ;* V21 tmp12        [V21    ] (  0,  0   )     int  ->  zero-ref   
 ;* V22 tmp13        [V22    ] (  0,  0   )     int  ->  zero-ref   
-;  V23 tmp14        [V23,T33] (  3,  1.50)     int  ->   r0        
+;  V23 tmp14        [V23,T32] (  3,  1.50)     int  ->   r0        
 ;* V24 tmp15        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <Microsoft.CodeAnalysis.Testing.DiagnosticResult[]>
-;  V25 tmp16        [V25,T22] (  2,  2   )     int  ->   r5         "impAppendStmt"
-;  V26 tmp17        [V26,T23] (  2,  2   )     int  ->   r9         "impAppendStmt"
+;  V25 tmp16        [V25,T21] (  2,  2   )     int  ->   r5         "impAppendStmt"
+;  V26 tmp17        [V26,T22] (  2,  2   )     int  ->   r9         "impAppendStmt"
 ;* V27 tmp18        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <Microsoft.CodeAnalysis.Testing.DiagnosticResult[]>
-;  V28 tmp19        [V28,T24] (  2,  2   )     int  ->   r5         "impAppendStmt"
-;  V29 tmp20        [V29,T25] (  2,  2   )     int  ->   r9         "impAppendStmt"
+;  V28 tmp19        [V28,T23] (  2,  2   )     int  ->   r5         "impAppendStmt"
+;  V29 tmp20        [V29,T24] (  2,  2   )     int  ->   r9         "impAppendStmt"
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V31 tmp22        [V31,T31] (  3,  1.50)     ref  ->   r8         class-hnd "Inline return value spill temp" <System.Array>
-;  V32 tmp23        [V32,T16] (  3,  4.50)     ref  ->   r8         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V31 tmp22        [V31,T30] (  3,  1.50)     ref  ->   r8         class-hnd "Inline return value spill temp" <System.Array>
+;  V32 tmp23        [V32,T02] (  6, 16.50)     ref  ->   r8         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
 ;  V33 tmp24        [V33,T01] (  7, 22   )     int  ->   r5         "Inline stloc first use temp"
 ;  V34 tmp25        [V34,T04] (  4, 12   )     int  ->   r9         "Inline stloc first use temp"
 ;* V35 tmp26        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
 ;* V36 tmp27        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Array>
-;  V37 tmp28        [V37,T02] (  2, 16   )     int  ->   r5         "dup spill"
+;  V37 tmp28        [V37,T03] (  2, 16   )     int  ->   r5         "dup spill"
 ;* V38 tmp29        [V38    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V39 tmp30        [V39,T39] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
-;  V40 tmp31        [V40,T18] (  4,  3   )     int  ->   r9         "dup spill"
+;  V39 tmp30        [V39,T38] (  3,  0   )     int  ->   r0         "Inline return value spill temp"
+;  V40 tmp31        [V40,T17] (  4,  3   )     int  ->   r9         "dup spill"
 ;* V41 tmp32        [V41    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V42 tmp33        [V42    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
 ;  V43 tmp34        [V43,T06] (  4, 10.50)     ref  ->  [sp+0x0C]  class-hnd "Inline stloc first use temp" <System.Array>
-;  V44 tmp35        [V44,T00] (  7, 52   )     ref  ->  [sp+0x08]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V44 tmp35        [V44,T00] (  7, 52   )     ref  ->  r10         class-hnd exact "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
 ;  V45 tmp36        [V45,T07] (  3, 10   )     ref  ->   r0         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V46 tmp37        [V46,T05] (  4, 12   )     int  ->   r2         "Inline stloc first use temp"
-;  V47 tmp38        [V47,T34] (  3,  1.50)     int  ->   r5         "Inline stloc first use temp"
+;  V46 tmp37        [V46,T05] (  4, 12   )     int  ->   r3         "Inline stloc first use temp"
+;  V47 tmp38        [V47,T33] (  3,  1.50)     int  ->   r5         "Inline stloc first use temp"
 ;* V48 tmp39        [V48    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.Testing.DiagnosticResult[]>
 ;* V49 tmp40        [V49    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V50 tmp41        [V50    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <Microsoft.CodeAnalysis.Testing.DiagnosticResult[]>
-;  V51 tmp42        [V51,T40] (  2,  0   )     ref  ->   r1         single-def "argument with side effect"
-;  V52 tmp43        [V52,T26] (  2,  2   )     int  ->   r3         "argument with side effect"
-;  V53 tmp44        [V53,T27] (  2,  2   )     int  ->   r3         "argument with side effect"
-;  V54 tmp45        [V54,T28] (  2,  2   )     int  ->   r3         "argument with side effect"
-;  V55 cse0         [V55,T35] (  3,  1.50)     int  ->   r0         "CSE - moderate"
-;  V56 cse1         [V56,T36] (  3,  1.50)     int  ->   r3         "CSE - moderate"
-;  V57 cse2         [V57,T37] (  2,  1   )     int  ->   r1         "CSE - moderate"
-;  V58 cse3         [V58,T03] (  5, 12   )     int  ->  r10         "CSE - aggressive"
-;  V59 cse4         [V59,T08] (  2,  8   )     int  ->   r1         "CSE - aggressive"
-;  V60 cse5         [V60,T12] (  3,  6   )   byref  ->   r0         "CSE - moderate"
-;  V61 cse6         [V61,T13] (  3,  6   )     int  ->   r1         "CSE - moderate"
-;  V62 cse7         [V62,T38] (  2,  1   )     int  ->   r3         "CSE - moderate"
+;  V51 tmp42        [V51,T39] (  2,  0   )     ref  ->   r1         single-def "argument with side effect"
+;  V52 tmp43        [V52,T25] (  2,  2   )     int  ->   r3         "argument with side effect"
+;  V53 tmp44        [V53,T26] (  2,  2   )     int  ->   r3         "argument with side effect"
+;  V54 tmp45        [V54,T27] (  2,  2   )     int  ->   r3         "argument with side effect"
+;  V55 cse0         [V55,T34] (  3,  1.50)     int  ->   r0         "CSE - moderate"
+;  V56 cse1         [V56,T35] (  3,  1.50)     int  ->   r3         "CSE - moderate"
+;  V57 cse2         [V57,T36] (  2,  1   )     int  ->   r1         "CSE - moderate"
+;  V58 cse3         [V58,T08] (  2,  8   )     int  ->   r2         "CSE - aggressive"
+;  V59 cse4         [V59,T12] (  3,  6   )   byref  ->   r0         "CSE - moderate"
+;  V60 cse5         [V60,T13] (  3,  6   )     int  ->   r2         "CSE - moderate"
+;  V61 cse6         [V61,T37] (  2,  1   )     int  ->   r3         "CSE - moderate"
 ;
 ; Lcl frame size = 20
 
@@ -215,103 +214,100 @@ G_M8946_IG09:        ; bbWeight=0, gcrefRegs=0150 {r4 r6 r8}, byrefRegs=0000 {},
             ; gcr arg pop 0
             mov     r5, r0
             mov     r9, 0
-            ldr     r10, [r8+0x04]
-            cmp     r10, 0
+            ldr     r0, [r8+0x04]
+            cmp     r0, 0
             ble     SHORT G_M8946_IG15
-                       ;; size=28 bbWeight=0 PerfScore 0.00
+                       ;; size=26 bbWeight=0 PerfScore 0.00
 G_M8946_IG10:        ; bbWeight=4, gcrefRegs=0150 {r4 r6 r8}, byrefRegs=0000 {}, byref, isz
-            cmp     r5, r10
+            ldr     r0, [r8+0x04]
+            cmp     r5, r0
             bhs     G_M8946_IG28
             add     r0, r8, 8
             ; byrRegs +[r0]
             lsls    r3, r5, 2
-            ldr     r3, [r0+r3]
-            ; gcrRegs +[r3]
-            str     r3, [sp+0x08]
-            ; GC ptr vars +{V44}
-            ldrsb   r0, [r3]
+            ldr     r10, [r0+r3]
+            ; gcrRegs +[r10]
+            ldrsb   r0, [r10]
             ; byrRegs -[r0]
-            movs    r2, 0
-            str     r2, [sp+0x0C]  // [V43 tmp34]
+            movs    r3, 0
+            str     r3, [sp+0x0C]  // [V43 tmp34]
             ; GC ptr vars +{V43}
-            mov     r0, r3
+            mov     r0, r10
             ; gcrRegs +[r0]
-            movw    r1, 0xd1ff
-            movt    r1, 0xd1ff
-            blx     r1     // <unknown method>
-            ; gcrRegs -[r0 r3]
+            movw    r2, 0xd1ff
+            movt    r2, 0xd1ff
+            blx     r2     // <unknown method>
+            ; gcrRegs -[r0]
             ; gcr arg pop 0
-            ldr     r3, [sp+0x08]  // [V44 tmp35]
-            ; gcrRegs +[r3]
-            ldr     r0, [r3+0x04]
+            ldr     r0, [r10+0x04]
             ; gcrRegs +[r0]
-            ldr     r2, [r3+0x0C]
-            subs    r2, r2, 1
-            ldr     r1, [r0+0x04]
-            cmp     r1, r2
+            ldr     r3, [r10+0x0C]
+            subs    r3, r3, 1
+            ldr     r2, [r0+0x04]
+            cmp     r2, r3
             bls     SHORT G_M8946_IG12
-                       ;; size=50 bbWeight=4 PerfScore 80.00
-G_M8946_IG11:        ; bbWeight=2, gcVars=0000000000000001 {V44}, gcrefRegs=0159 {r0 r3 r4 r6 r8}, byrefRegs=0000 {}, gcvars, byref
+                       ;; size=56 bbWeight=4 PerfScore 76.00
+G_M8946_IG11:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0551 {r0 r4 r6 r8 r10}, byrefRegs=0000 {}, gcvars, byref
             ; GC ptr vars -{V43}
             adds    r0, 8
             ; gcrRegs -[r0]
             ; byrRegs +[r0]
-            lsls    r1, r2, 2
-            ldr     lr, [r0+r1]
-            ; gcrRegs +[lr]
-            str     lr, [sp+0x0C]  // [V43 tmp34]
+            lsls    r2, r3, 2
+            ldr     r1, [r0+r2]
+            ; gcrRegs +[r1]
+            str     r1, [sp+0x0C]  // [V43 tmp34]
             ; GC ptr vars +{V43}
-            mov     r12, 0
-            str     r12, [r0+r1]
-            str     r2, [r3+0x0C]
-                       ;; size=22 bbWeight=2 PerfScore 14.00
-G_M8946_IG12:        ; bbWeight=4, gcVars=0000000000000041 {V43 V44}, gcrefRegs=0158 {r3 r4 r6 r8}, byrefRegs=0000 {}, gcvars, byref, isz
-            ; gcrRegs -[lr]
+            mov     lr, 0
+            str     lr, [r0+r2]
+            str     r3, [r10+0x0C]
+                       ;; size=20 bbWeight=2 PerfScore 14.00
+G_M8946_IG12:        ; bbWeight=4, gcVars=0000000000000040 {V43}, gcrefRegs=0550 {r4 r6 r8 r10}, byrefRegs=0000 {}, gcvars, byref, isz
+            ; gcrRegs -[r1]
             ; byrRegs -[r0]
-            mov     r0, r3
+            mov     r0, r10
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
-            ; gcrRegs -[r3]
             movt    r3, 0xd1ff
-            ; GC ptr vars -{V44}
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
+            ; gcrRegs -[r0 r10]
             ; gcr arg pop 0
-            ldr     r0, [sp+0x0C]  // [V43 tmp34]
-            ; gcrRegs +[r0]
-            cmp     r0, 0
+            ldr     r10, [sp+0x0C] // [V43 tmp34]
+            ; gcrRegs +[r10]
+            cmp     r10, 0
             bne     SHORT G_M8946_IG16
             adds    r5, r5, 1
-            cmp     r10, r5
+            ldr     r0, [r8+0x04]
+            cmp     r0, r5
             bne     SHORT G_M8946_IG14
-                       ;; size=24 bbWeight=4 PerfScore 40.00
+                       ;; size=32 bbWeight=4 PerfScore 44.00
 G_M8946_IG13:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0150 {r4 r6 r8}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs -[r0]
+            ; gcrRegs -[r10]
             ; GC ptr vars -{V43}
             movs    r5, 0
                        ;; size=2 bbWeight=2 PerfScore 2.00
 G_M8946_IG14:        ; bbWeight=4, gcrefRegs=0150 {r4 r6 r8}, byrefRegs=0000 {}, byref, isz
             add     r9, r9, 1
-            cmp     r10, r9
+            ldr     r0, [r8+0x04]
+            cmp     r0, r9
             bgt     SHORT G_M8946_IG10
-                       ;; size=8 bbWeight=4 PerfScore 12.00
+                       ;; size=12 bbWeight=4 PerfScore 16.00
 G_M8946_IG15:        ; bbWeight=0.50, gcrefRegs=0050 {r4 r6}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[r8]
             mov     r8, 0
             b       SHORT G_M8946_IG17
                        ;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M8946_IG16:        ; bbWeight=0.50, gcrefRegs=0051 {r0 r4 r6}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[r0]
-            mov     r8, r0
+G_M8946_IG16:        ; bbWeight=0.50, gcrefRegs=0450 {r4 r6 r10}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[r10]
+            mov     r8, r10
             ; gcrRegs +[r8]
                        ;; size=2 bbWeight=0.50 PerfScore 0.50
 G_M8946_IG17:        ; bbWeight=0.50, gcrefRegs=0150 {r4 r6 r8}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[r0]
+            ; gcrRegs -[r10]
             cmp     r8, 0
             beq     SHORT G_M8946_IG18
             ldrb    r0, [r6+0x5D]
             cmp     r0, 0
-            beq     SHORT G_M8946_IG04
+            beq     G_M8946_IG04
             mov     r0, r8
             ; gcrRegs +[r0]
             movw    r3, 0xd1ff
@@ -341,7 +337,7 @@ G_M8946_IG17:        ; bbWeight=0.50, gcrefRegs=0150 {r4 r6 r8}, byrefRegs=0000
             ; gcrRegs -[r0 r6]
             ; gcr arg pop 0
             b       SHORT G_M8946_IG04
...

+24 (+2.24%) : 101383.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)

@@ -20,56 +20,56 @@
 ;  V09 loc6         [V09,T03] (  7, 17   )     int  ->   r9        
 ;  V10 loc7         [V10,T08] (  3, 12   )     ref  ->   r2         class-hnd <System.Xml.XmlDictionaryString>
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T25] (  3,  0   )     ref  ->   r4         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
-;  V13 tmp2         [V13,T26] (  3,  0   )     ref  ->  r10         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V12 tmp1         [V12,T24] (  3,  0   )     ref  ->   r4         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+;  V13 tmp2         [V13,T25] (  3,  0   )     ref  ->  r10         class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
 ;* V14 tmp3         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V15 tmp4         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V17 tmp6         [V17,T21] (  4,  0   )     int  ->   r0         "Inlining Arg"
+;  V17 tmp6         [V17,T20] (  4,  0   )     int  ->   r0         "Inlining Arg"
 ;* V18 tmp7         [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V19 tmp8         [V19,T27] (  3,  0   )     int  ->   r5         "Inlining Arg"
-;  V20 tmp9         [V20,T31] (  2,  0   )   byref  ->   r4         "Inlining Arg"
+;  V19 tmp8         [V19,T26] (  3,  0   )     int  ->   r5         "Inlining Arg"
+;  V20 tmp9         [V20,T30] (  2,  0   )   byref  ->   r4         "Inlining Arg"
 ;* V21 tmp10        [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp11        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V23 tmp12        [V23,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V23 tmp12        [V23,T40] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp13        [V24    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V25 tmp14        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp15        [V26,T32] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V26 tmp15        [V26,T31] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;* V27 tmp16        [V27    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V28 tmp17        [V28,T22] (  4,  0   )     int  ->   r0         "Inlining Arg"
+;  V28 tmp17        [V28,T21] (  4,  0   )     int  ->   r0         "Inlining Arg"
 ;* V29 tmp18        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V30 tmp19        [V30,T28] (  3,  0   )     int  ->   r8         "Inlining Arg"
-;  V31 tmp20        [V31,T33] (  2,  0   )   byref  ->   r7         "Inlining Arg"
+;  V30 tmp19        [V30,T27] (  3,  0   )     int  ->   r8         "Inlining Arg"
+;  V31 tmp20        [V31,T32] (  2,  0   )   byref  ->   r7         "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp22        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V34 tmp23        [V34,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V34 tmp23        [V34,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V35 tmp24        [V35    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V36 tmp25        [V36    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V37 tmp26        [V37,T34] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V37 tmp26        [V37,T33] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;* V38 tmp27        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Xml.XmlBaseReader+XmlNode>
 ;* V39 tmp28        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Xml.XmlBaseReader+Namespace>
 ;* V40 tmp29        [V40    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V41 tmp30        [V41,T23] (  4,  0   )     int  ->   r0         "Inlining Arg"
+;  V41 tmp30        [V41,T22] (  4,  0   )     int  ->   r0         "Inlining Arg"
 ;* V42 tmp31        [V42    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V43 tmp32        [V43,T29] (  3,  0   )     int  ->   r5         "Inlining Arg"
-;  V44 tmp33        [V44,T35] (  2,  0   )   byref  ->   r4         "Inlining Arg"
+;  V43 tmp32        [V43,T28] (  3,  0   )     int  ->   r5         "Inlining Arg"
+;  V44 tmp33        [V44,T34] (  2,  0   )   byref  ->   r4         "Inlining Arg"
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp35        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V47 tmp36        [V47,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V47 tmp36        [V47,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V48 tmp37        [V48    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V49 tmp38        [V49    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V50 tmp39        [V50,T36] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V50 tmp39        [V50,T35] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;* V51 tmp40        [V51    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
-;  V52 tmp41        [V52,T24] (  4,  0   )     int  ->   r4         "Inlining Arg"
+;  V52 tmp41        [V52,T23] (  4,  0   )     int  ->   r4         "Inlining Arg"
 ;* V53 tmp42        [V53    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-;  V54 tmp43        [V54,T30] (  3,  0   )     int  ->   r4         "Inlining Arg"
-;  V55 tmp44        [V55,T37] (  2,  0   )   byref  ->   r5         "Inlining Arg"
+;  V54 tmp43        [V54,T29] (  3,  0   )     int  ->   r4         "Inlining Arg"
+;  V55 tmp44        [V55,T36] (  2,  0   )   byref  ->   r5         "Inlining Arg"
 ;* V56 tmp45        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp46        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;* V58 tmp47        [V58,T44] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp47        [V58,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp48        [V59    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V60 tmp49        [V60    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V61 tmp50        [V61,T38] (  2,  0   )   byref  ->   r1         "Inlining Arg"
+;  V61 tmp50        [V61,T37] (  2,  0   )   byref  ->   r1         "Inlining Arg"
 ;  V62 tmp51        [V62,T12] (  3,  8   )   ubyte  ->   r6         "Inline return value spill temp"
 ;  V63 tmp52        [V63,T06] (  4, 12   )     int  ->  r10         "Inline stloc first use temp"
 ;  V64 tmp53        [V64,T00] (  6, 25.46)     ref  ->   r8         class-hnd exact "Inlining Arg" <System.String>
@@ -106,12 +106,11 @@
 ;* V95 tmp84        [V95    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V96 tmp85        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x4)" P-INDEP
 ;  V97 tmp86        [V97,T09] (  3, 12   )     ref  ->   r2         "arr expr"
-;  V98 tmp87        [V98,T39] (  2,  0   )     ref  ->   r1         "argument with side effect"
-;  V99 tmp88        [V99,T40] (  2,  0   )     ref  ->   r1         "argument with side effect"
+;  V98 tmp87        [V98,T38] (  2,  0   )     ref  ->   r1         "argument with side effect"
+;  V99 tmp88        [V99,T39] (  2,  0   )     ref  ->   r1         "argument with side effect"
 ;  V100 cse0        [V100,T18] (  3,  3   )     ref  ->   r0         "CSE - moderate"
 ;  V101 cse1        [V101,T11] (  6, 10   )     int  ->   r7         multi-def "CSE - aggressive"
 ;  V102 cse2        [V102,T05] (  4, 12.50)   byref  ->   r8         hoist multi-def "CSE - aggressive"
-;  V103 cse3        [V103,T20] ( 12,  0   )     ref  ->   r1         multi-def "CSE - moderate"
 ;
 ; Lcl frame size = 28
 
@@ -406,17 +405,16 @@ G_M45430_IG29:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             subs    r5, r1, r0
             cmp     r5, 0
             bge     SHORT G_M45430_IG30
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=64 bbWeight=0 PerfScore 0.00
+                       ;; size=70 bbWeight=0 PerfScore 0.00
 G_M45430_IG30:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             cmp     r5, 11
             blo     SHORT G_M45430_IG31
@@ -468,17 +466,16 @@ G_M45430_IG32:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             sub     r8, r1, r0
             cmp     r8, 0
             bge     SHORT G_M45430_IG33
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=66 bbWeight=0 PerfScore 0.00
+                       ;; size=72 bbWeight=0 PerfScore 0.00
 G_M45430_IG33:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0080 {r7}, byref, isz
             cmp     r8, 0
             beq     SHORT G_M45430_IG34
@@ -578,17 +575,16 @@ G_M45430_IG37:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             subs    r5, r1, r0
             cmp     r5, 0
             bge     SHORT G_M45430_IG38
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=62 bbWeight=0 PerfScore 0.00
+                       ;; size=68 bbWeight=0 PerfScore 0.00
 G_M45430_IG38:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0010 {r4}, byref, isz
             cmp     r5, 11
             blo     SHORT G_M45430_IG39
@@ -650,17 +646,16 @@ G_M45430_IG42:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             subs    r4, r0, r4
             cmp     r4, 0
             bge     SHORT G_M45430_IG43
+            movw    r0, 0xd1ff
+            movt    r0, 0xd1ff
             movw    r1, 0xd1ff
             movt    r1, 0xd1ff
-            mov     r0, r1
-            ; gcrRegs +[r0]
             movw    r3, 0xd1ff
             movt    r3, 0xd1ff
             ldr     r3, [r3]
             blx     r3     // <unknown method>
-            ; gcrRegs -[r0]
             ; gcr arg pop 0
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=42 bbWeight=0 PerfScore 0.00
 G_M45430_IG43:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0020 {r5}, byref, isz
             cmp     r4, 0
             beq     SHORT G_M45430_IG44
@@ -727,7 +722,7 @@ G_M45430_IG45:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bkpt    
                        ;; size=64 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1070, prolog size 28, PerfScore 243.10, instruction count 391, allocated bytes for code 1070 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
+Total bytes of code 1094, prolog size 28, PerfScore 243.10, instruction count 395, allocated bytes for code 1094 (MethodHash=03734e89) for method System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -739,7 +734,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 535 (0x00217) Actual length = 1070 (0x00042e)
+  Function Length   : 547 (0x00223) Actual length = 1094 (0x000446)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.arm.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.linux.arm.checked.mch 23 13 9 1 -74 +262
benchmarks.run_tiered.linux.arm.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.linux.arm.checked.mch 68 25 43 0 -84 +538
libraries.crossgen2.linux.arm.checked.mch 0 0 0 0 -0 +0
libraries.pmi.linux.arm.checked.mch 10 2 8 0 -26 +112
libraries_tests.run.linux.arm.Release.mch 373 246 110 17 -4,456 +1,290
librariestestsnotieredcompilation.run.linux.arm.Release.mch 21 15 6 0 -78 +72
realworld.run.linux.arm.checked.mch 0 0 0 0 -0 +0
495 301 176 18 -4,718 +2,274

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm.checked.mch 46,289 5,344 40,945 1,203 (2.53%) 1,203 (2.53%)
benchmarks.run_pgo.linux.arm.checked.mch 155,314 54,949 100,365 3,303 (2.08%) 3,305 (2.08%)
benchmarks.run_tiered.linux.arm.checked.mch 81,829 45,099 36,730 1,118 (1.35%) 1,119 (1.35%)
coreclr_tests.run.linux.arm.checked.mch 471,862 258,996 212,866 7,456 (1.56%) 7,458 (1.56%)
libraries.crossgen2.linux.arm.checked.mch 193,690 14 193,676 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.arm.checked.mch 270,801 6 270,795 7,820 (2.81%) 7,824 (2.81%)
libraries_tests.run.linux.arm.Release.mch 708,174 441,682 266,492 18,469 (2.54%) 18,472 (2.54%)
librariestestsnotieredcompilation.run.linux.arm.Release.mch 273,851 21,565 252,286 33,275 (10.83%) 33,277 (10.83%)
realworld.run.linux.arm.checked.mch 36,402 157 36,245 1,408 (3.72%) 1,408 (3.72%)
2,238,212 827,812 1,410,400 74,052 (3.20%) 74,066 (3.20%)

jit-analyze output

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: 60232784 (overridden on cmd)
Total bytes of diff: 60232972 (overridden on cmd)
Total bytes of delta: 188 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -5036 : 140901.dasm (-100.00 % of base)
       -4986 : 146801.dasm (-100.00 % of base)
       -4194 : 115014.dasm (-100.00 % of base)
       -4186 : 114259.dasm (-100.00 % of base)
       -3184 : 102581.dasm (-100.00 % of base)
       -3046 : 133361.dasm (-100.00 % of base)
       -2920 : 83952.dasm (-100.00 % of base)
       -1924 : 104283.dasm (-100.00 % of base)
       -1660 : 84195.dasm (-100.00 % of base)
       -1604 : 20486.dasm (-100.00 % of base)
       -1494 : 102582.dasm (-100.00 % of base)
       -1486 : 83953.dasm (-100.00 % of base)
       -1398 : 92247.dasm (-100.00 % of base)
       -1320 : 158458.dasm (-100.00 % of base)
       -1220 : 123535.dasm (-100.00 % of base)
        -806 : 101228.dasm (-100.00 % of base)
        -770 : 83959.dasm (-100.00 % of base)
        -672 : 101217.dasm (-100.00 % of base)
        -672 : 83818.dasm (-100.00 % of base)
        -474 : 92599.dasm (-100.00 % of base)

23 total files with Code Size differences (23 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -5036 (-100.00 % of base) : 140901.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<WriteAsyncSlowPath>d__48:MoveNext():this (Tier1)
       -4986 (-100.00 % of base) : 146801.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<WriteAsyncSlowPath>d__48:MoveNext():this (Tier1)
       -4194 (-100.00 % of base) : 115014.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadAsyncSlowPath>d__37:MoveNext():this (Tier1)
       -4186 (-100.00 % of base) : 114259.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadAsyncSlowPath>d__37:MoveNext():this (Tier1)
       -3184 (-100.00 % of base) : 102581.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,System.Reflection.Metadata.TypeDefinitionHandle,System.String,ushort,byref):this (Tier1)
       -3046 (-100.00 % of base) : 133361.dasm - System.Numerics.BigIntegerCalculator:Divide(System.ReadOnlySpan`1[uint],System.ReadOnlySpan`1[uint],System.Span`1[uint]) (Tier1)
       -2920 (-100.00 % of base) : 83952.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,System.Reflection.Metadata.TypeDefinitionHandle,System.String,ushort,byref):this (Tier1)
       -1924 (-100.00 % of base) : 104283.dasm - System.Security.Cryptography.X509Certificates.X500NameEncoder:AppendOid(byref,System.String) (Tier1)
       -1660 (-100.00 % of base) : 84195.dasm - Microsoft.CodeAnalysis.ModuleExtensions:ShouldImportMethod(Microsoft.CodeAnalysis.PEModule,System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle,ubyte):ubyte (Tier1)
       -1604 (-100.00 % of base) : 20486.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0-FullOpts)
       -1494 (-100.00 % of base) : 102582.dasm - Microsoft.CodeAnalysis.PEModule:GetTypeDefNameOrThrow(System.Reflection.Metadata.TypeDefinitionHandle):System.String:this (Tier1)
       -1486 (-100.00 % of base) : 83953.dasm - Microsoft.CodeAnalysis.PEModule:GetTypeDefNameOrThrow(System.Reflection.Metadata.TypeDefinitionHandle):System.String:this (Tier1)
       -1398 (-100.00 % of base) : 92247.dasm - Microsoft.Cci.ReferenceIndexerBase:VisitTypeDefinitionNoMembers(Microsoft.Cci.ITypeDefinition):this (Tier1)
       -1320 (-100.00 % of base) : 158458.dasm - System.Security.Cryptography.ECCurve:CreateFromValueAndName(System.String,System.String):System.Security.Cryptography.ECCurve (Tier1)
       -1220 (-100.00 % of base) : 123535.dasm - System.IO.File+<InternalWriteAllLinesAsync>d__100:MoveNext():this (Tier0-FullOpts)
        -806 (-100.00 % of base) : 101228.dasm - System.Reflection.Metadata.Ecma335.StringHeap:GetNonVirtualString(System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.MetadataStringDecoder,ubyte[]):System.String:this (Tier1)
        -770 (-100.00 % of base) : 83959.dasm - System.Reflection.Metadata.Ecma335.StringHeap:GetNonVirtualString(System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.MetadataStringDecoder,ubyte[]):System.String:this (Tier1)
        -672 (-100.00 % of base) : 101217.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(uint,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
        -672 (-100.00 % of base) : 83818.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(uint,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
        -474 (-100.00 % of base) : 92599.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)

Top method improvements (percentages):
       -1398 (-100.00 % of base) : 92247.dasm - Microsoft.Cci.ReferenceIndexerBase:VisitTypeDefinitionNoMembers(Microsoft.Cci.ITypeDefinition):this (Tier1)
        -474 (-100.00 % of base) : 92599.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:VisitBlock(Microsoft.CodeAnalysis.CSharp.BoundBlock):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
       -3184 (-100.00 % of base) : 102581.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,System.Reflection.Metadata.TypeDefinitionHandle,System.String,ushort,byref):this (Tier1)
       -2920 (-100.00 % of base) : 83952.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,System.Reflection.Metadata.TypeDefinitionHandle,System.String,ushort,byref):this (Tier1)
       -1660 (-100.00 % of base) : 84195.dasm - Microsoft.CodeAnalysis.ModuleExtensions:ShouldImportMethod(Microsoft.CodeAnalysis.PEModule,System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.Metadata.MethodDefinitionHandle,ubyte):ubyte (Tier1)
       -1486 (-100.00 % of base) : 83953.dasm - Microsoft.CodeAnalysis.PEModule:GetTypeDefNameOrThrow(System.Reflection.Metadata.TypeDefinitionHandle):System.String:this (Tier1)
       -1494 (-100.00 % of base) : 102582.dasm - Microsoft.CodeAnalysis.PEModule:GetTypeDefNameOrThrow(System.Reflection.Metadata.TypeDefinitionHandle):System.String:this (Tier1)
        -322 (-100.00 % of base) : 127590.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:CanLockTheFile(int,int):ubyte:this (Tier1)
        -322 (-100.00 % of base) : 25081.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:CanLockTheFile(int,int):ubyte:this (Tier1)
       -1220 (-100.00 % of base) : 123535.dasm - System.IO.File+<InternalWriteAllLinesAsync>d__100:MoveNext():this (Tier0-FullOpts)
       -4194 (-100.00 % of base) : 115014.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadAsyncSlowPath>d__37:MoveNext():this (Tier1)
       -4186 (-100.00 % of base) : 114259.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadAsyncSlowPath>d__37:MoveNext():this (Tier1)
       -5036 (-100.00 % of base) : 140901.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<WriteAsyncSlowPath>d__48:MoveNext():this (Tier1)
       -4986 (-100.00 % of base) : 146801.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<WriteAsyncSlowPath>d__48:MoveNext():this (Tier1)
       -3046 (-100.00 % of base) : 133361.dasm - System.Numerics.BigIntegerCalculator:Divide(System.ReadOnlySpan`1[uint],System.ReadOnlySpan`1[uint],System.Span`1[uint]) (Tier1)
       -1604 (-100.00 % of base) : 20486.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0-FullOpts)
        -672 (-100.00 % of base) : 101217.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(uint,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
        -672 (-100.00 % of base) : 83818.dasm - System.Reflection.Internal.EncodingHelper:DecodeUtf8(uint,int,ubyte[],System.Reflection.Metadata.MetadataStringDecoder):System.String (Tier1)
        -806 (-100.00 % of base) : 101228.dasm - System.Reflection.Metadata.Ecma335.StringHeap:GetNonVirtualString(System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.MetadataStringDecoder,ubyte[]):System.String:this (Tier1)
        -770 (-100.00 % of base) : 83959.dasm - System.Reflection.Metadata.Ecma335.StringHeap:GetNonVirtualString(System.Reflection.Metadata.StringHandle,System.Reflection.Metadata.MetadataStringDecoder,ubyte[]):System.String:this (Tier1)

23 total methods with Code Size differences (23 improved, 0 regressed).


coreclr_tests.run.linux.arm.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 321775434 (overridden on cmd)
Total bytes of diff: 321775888 (overridden on cmd)
Total bytes of delta: 454 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -1604 : 83760.dasm (-100.00 % of base)
       -1114 : 167383.dasm (-100.00 % of base)
       -1092 : 1609.dasm (-100.00 % of base)
       -1092 : 1669.dasm (-100.00 % of base)
       -1092 : 1662.dasm (-100.00 % of base)
       -1070 : 150145.dasm (-100.00 % of base)
       -1070 : 381963.dasm (-100.00 % of base)
       -1050 : 136960.dasm (-100.00 % of base)
       -1048 : 153710.dasm (-100.00 % of base)
       -1036 : 1278.dasm (-100.00 % of base)
       -1014 : 1667.dasm (-100.00 % of base)
        -900 : 138009.dasm (-100.00 % of base)
        -882 : 304982.dasm (-100.00 % of base)
        -818 : 178543.dasm (-100.00 % of base)
        -812 : 375660.dasm (-100.00 % of base)
        -808 : 124311.dasm (-100.00 % of base)
        -808 : 2134.dasm (-100.00 % of base)
        -808 : 313225.dasm (-100.00 % of base)
        -808 : 116221.dasm (-100.00 % of base)
        -808 : 156330.dasm (-100.00 % of base)

56 total files with Code Size differences (56 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -1604 (-100.00 % of base) : 83760.dasm - System.DefaultBinder:FindMostSpecific(System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.ReadOnlySpan`1[System.Reflection.ParameterInfo],int[],System.Type,System.Type[],System.Object[]):int (Tier1)
       -1114 (-100.00 % of base) : 167383.dasm - System.Reflection.AssemblyNameFormatter:AppendQuoted(byref,System.String) (Instrumented Tier1)
       -1092 (-100.00 % of base) : 1662.dasm - System.Buffers.SharedArrayPool`1[int]:Return(int[],ubyte):this (Instrumented Tier1)
       -1092 (-100.00 % of base) : 1609.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this (Instrumented Tier1)
       -1092 (-100.00 % of base) : 1669.dasm - System.Buffers.SharedArrayPool`1[ushort]:Return(ushort[],ubyte):this (Instrumented Tier1)
       -1070 (-100.00 % of base) : 381963.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1070 (-100.00 % of base) : 150145.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (Tier0-FullOpts)
       -1050 (-100.00 % of base) : 136960.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Rent(int):System.__Canon[]:this (Instrumented Tier1)
       -1048 (-100.00 % of base) : 153710.dasm - System.Buffers.SharedArrayPool`1[int]:Rent(int):int[]:this (Instrumented Tier1)
       -1036 (-100.00 % of base) : 1278.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Instrumented Tier1)
       -1014 (-100.00 % of base) : 1667.dasm - System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this (Instrumented Tier1)
        -900 (-100.00 % of base) : 138009.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this (Tier1)
        -882 (-100.00 % of base) : 304982.dasm - System.Buffers.SharedArrayPool`1[ushort]:Return(ushort[],ubyte):this (Tier1)
        -818 (-100.00 % of base) : 178543.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this (Tier1)
        -812 (-100.00 % of base) : 375660.dasm - System.Buffers.SharedArrayPool`1[float]:Return(float[],ubyte):this (FullOpts)
        -808 (-100.00 % of base) : 124311.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this (Tier1)
        -808 (-100.00 % of base) : 2134.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this (Tier1)
        -808 (-100.00 % of base) : 313225.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this (Tier1)
        -808 (-100.00 % of base) : 116221.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this (Tier1)
        -808 (-100.00 % of base) : 156330.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this (Tier1)

Top method improvements (percentages):
        -338 (-100.00 % of base) : 309352.dasm - ILCompiler.ReadyToRunCompilerContext:ComputeHasGCStaticBase(Internal.TypeSystem.FieldDesc):ubyte:this (Tier1)
        -554 (-100.00 % of base) : 310528.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,uint,int,int):ubyte (Tier1)
        -556 (-100.00 % of base) : 312466.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,uint,int,int):ubyte (Tier1)
        -276 (-100.00 % of base) : 201968.dasm - JIT.HardwareIntrinsics.General._Vector128.VectorBooleanBinaryOpTest__LessThanOrEqualAnySingle:RunBasicScenario_UnsafeRead():this (FullOpts)
        -424 (-100.00 % of base) : 143234.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c:<.ctor>b__17_1(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte:this (Tier1)
        -756 (-100.00 % of base) : 375656.dasm - System.Buffers.SharedArrayPool`1[float]:Rent(int):float[]:this (FullOpts)
        -812 (-100.00 % of base) : 375660.dasm - System.Buffers.SharedArrayPool`1[float]:Return(float[],ubyte):this (FullOpts)
       -1048 (-100.00 % of base) : 153710.dasm - System.Buffers.SharedArrayPool`1[int]:Rent(int):int[]:this (Instrumented Tier1)
       -1092 (-100.00 % of base) : 1662.dasm - System.Buffers.SharedArrayPool`1[int]:Return(int[],ubyte):this (Instrumented Tier1)
       -1050 (-100.00 % of base) : 136960.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Rent(int):System.__Canon[]:this (Instrumented Tier1)
       -1036 (-100.00 % of base) : 1278.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Instrumented Tier1)
        -770 (-100.00 % of base) : 158289.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Tier1)
        -788 (-100.00 % of base) : 178542.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Tier1)
        -780 (-100.00 % of base) : 205375.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Tier1)
        -780 (-100.00 % of base) : 211046.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Tier1)
        -788 (-100.00 % of base) : 292833.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Tier1)
        -774 (-100.00 % of base) : 313198.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Tier1)
        -770 (-100.00 % of base) : 158963.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Tier1)
        -776 (-100.00 % of base) : 171116.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Tier1)
        -778 (-100.00 % of base) : 184681.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Tier1)


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: 49549380 (overridden on cmd)
Total bytes of diff: 49549466 (overridden on cmd)
Total bytes of delta: 86 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -1122 : 161631.dasm (-100.00 % of base)
       -1070 : 161632.dasm (-100.00 % of base)
        -836 : 4785.dasm (-100.00 % of base)
        -792 : 4784.dasm (-100.00 % of base)
        -586 : 162334.dasm (-100.00 % of base)
        -576 : 162333.dasm (-100.00 % of base)
        -502 : 162350.dasm (-100.00 % of base)
        -494 : 162349.dasm (-100.00 % of base)
        -268 : 4791.dasm (-100.00 % of base)
        -242 : 4792.dasm (-100.00 % of base)

10 total files with Code Size differences (10 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -1122 (-100.00 % of base) : 161631.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
       -1070 (-100.00 % of base) : 161632.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -836 (-100.00 % of base) : 4785.dasm - System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)
        -792 (-100.00 % of base) : 4784.dasm - System.Buffers.SharedArrayPool`1[short]:Rent(int):short[]:this (FullOpts)
        -586 (-100.00 % of base) : 162334.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -576 (-100.00 % of base) : 162333.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
        -502 (-100.00 % of base) : 162350.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)
        -494 (-100.00 % of base) : 162349.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
        -268 (-100.00 % of base) : 4791.dasm - System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (FullOpts)
        -242 (-100.00 % of base) : 4792.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)

Top method improvements (percentages):
        -792 (-100.00 % of base) : 4784.dasm - System.Buffers.SharedArrayPool`1[short]:Rent(int):short[]:this (FullOpts)
        -836 (-100.00 % of base) : 4785.dasm - System.Buffers.SharedArrayPool`1[short]:Return(short[],ubyte):this (FullOpts)
        -242 (-100.00 % of base) : 4792.dasm - System.Buffers.SharedArrayPoolPartitions:TryPop():System.Array:this (FullOpts)
        -268 (-100.00 % of base) : 4791.dasm - System.Buffers.SharedArrayPoolPartitions:TryPush(System.Array):ubyte:this (FullOpts)
       -1122 (-100.00 % of base) : 161631.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
       -1070 (-100.00 % of base) : 161632.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -576 (-100.00 % of base) : 162333.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.String[],System.String):int:this (FullOpts)
        -586 (-100.00 % of base) : 162334.dasm - System.Xml.XmlDictionaryReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
        -494 (-100.00 % of base) : 162349.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.String[],byref):System.String:this (FullOpts)
        -502 (-100.00 % of base) : 162350.dasm - System.Xml.XmlDictionaryReader:ReadContentAsString(System.Xml.XmlDictionaryString[],byref):System.String:this (FullOpts)

10 total methods with Code Size differences (10 improved, 0 regressed).


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: 241718592 (overridden on cmd)
Total bytes of diff: 241715426 (overridden on cmd)
Total bytes of delta: -3166 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -7442 : 663017.dasm (-100.00 % of base)
       -5664 : 171607.dasm (-100.00 % of base)
       -3826 : 450008.dasm (-100.00 % of base)
       -3690 : 556506.dasm (-100.00 % of base)
       -3312 : 450046.dasm (-100.00 % of base)
       -3170 : 670431.dasm (-100.00 % of base)
       -2796 : 285078.dasm (-100.00 % of base)
       -2754 : 671381.dasm (-100.00 % of base)
       -2444 : 618535.dasm (-100.00 % of base)
       -2428 : 618001.dasm (-100.00 % of base)
       -2428 : 619832.dasm (-100.00 % of base)
       -2418 : 605363.dasm (-100.00 % of base)
       -2418 : 607247.dasm (-100.00 % of base)
       -2414 : 607137.dasm (-100.00 % of base)
       -2414 : 607757.dasm (-100.00 % of base)
       -2410 : 607371.dasm (-100.00 % of base)
       -2410 : 607434.dasm (-100.00 % of base)
       -2410 : 607534.dasm (-100.00 % of base)
       -2410 : 607289.dasm (-100.00 % of base)
       -2402 : 607117.dasm (-100.00 % of base)

92 total files with Code Size differences (92 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -7442 (-100.00 % of base) : 663017.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:EmitScan(System.CodeDom.Compiler.IndentedTextWriter,System.Text.RegularExpressions.Generator.RegexGenerator+RegexMethod):System.ValueTuple`2[ubyte,ubyte] (Tier1)
       -5664 (-100.00 % of base) : 171607.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindNonGenericSimpleNamespaceOrTypeOrAliasSymbol(Microsoft.CodeAnalysis.CSharp.Syntax.IdentifierNameSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
       -3826 (-100.00 % of base) : 450008.dasm - System.Xml.XmlSchemaTests.TC_SchemaSet_Add_Schema:v11():this (Tier0-FullOpts)
       -3690 (-100.00 % of base) : 556506.dasm - System.IO.File:ReadAllBytesUnknownLength(Microsoft.Win32.SafeHandles.SafeFileHandle):ubyte[] (Tier1)
       -3312 (-100.00 % of base) : 450046.dasm - System.Xml.XmlSchemaTests.TC_SchemaSet_Add_Schema:v10():this (Tier0-FullOpts)
       -3170 (-100.00 % of base) : 670431.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:PartialMethodChecks(Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
       -2796 (-100.00 % of base) : 285078.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitUnliftedBinaryOp(int,System.Type,System.Type):this (Tier1)
       -2754 (-100.00 % of base) : 671381.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax,int,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -2444 (-100.00 % of base) : 618535.dasm - System.Text.Json.JsonSerializer:ReadFromSpan[System.Text.Json.Serialization.Tests.PropertyVisibilityTests+MyStruct_WithNonPublicAccessors_WithTypeAttribute](System.ReadOnlySpan`1[ushort],System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Text.Json.Serialization.Tests.PropertyVisibilityTests+MyStruct_WithNonPublicAccessors_WithTypeAttribute]):System.Text.Json.Serialization.Tests.PropertyVisibilityTests+MyStruct_WithNonPublicAccessors_WithTypeAttribute (Tier1)
       -2428 (-100.00 % of base) : 619832.dasm - System.Text.Json.JsonSerializer:ReadFromSpan[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]](System.ReadOnlySpan`1[ushort],System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon] (Tier1)
       -2428 (-100.00 % of base) : 618001.dasm - System.Text.Json.JsonSerializer:ReadFromSpan[System.ValueTuple`3[System.__Canon,int,ubyte]](System.ReadOnlySpan`1[ushort],System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.ValueTuple`3[System.__Canon,int,ubyte]]):System.ValueTuple`3[System.__Canon,int,ubyte] (Tier1)
       -2418 (-100.00 % of base) : 605363.dasm - System.Text.Json.JsonSerializer:ReadFromSpan[System.Text.Json.JsonElement](System.ReadOnlySpan`1[ushort],System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Text.Json.JsonElement]):System.Text.Json.JsonElement (Tier1)
       -2418 (-100.00 % of base) : 607247.dasm - System.Text.Json.JsonSerializer:ReadFromSpan[System.UInt128](System.ReadOnlySpan`1[ushort],System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.UInt128]):System.UInt128 (Tier1)
       -2414 (-100.00 % of base) : 607757.dasm - System.Text.Json.JsonSerializer:ReadFromSpan[System.Nullable`1[long]](System.ReadOnlySpan`1[ushort],System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[long]]):System.Nullable`1[long] (Tier1)
       -2414 (-100.00 % of base) : 607137.dasm - System.Text.Json.JsonSerializer:ReadFromSpan[System.Nullable`1[ulong]](System.ReadOnlySpan`1[ushort],System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[ulong]]):System.Nullable`1[ulong] (Tier1)
       -2410 (-100.00 % of base) : 607289.dasm - System.Text.Json.JsonSerializer:ReadFromSpan[System.Nullable`1[double]](System.ReadOnlySpan`1[ushort],System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[double]]):System.Nullable`1[double] (Tier1)
       -2410 (-100.00 % of base) : 607371.dasm - System.Text.Json.JsonSerializer:ReadFromSpan[System.Nullable`1[System.Decimal]](System.ReadOnlySpan`1[ushort],System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[System.Decimal]]):System.Nullable`1[System.Decimal] (Tier1)
       -2410 (-100.00 % of base) : 607434.dasm - System.Text.Json.JsonSerializer:ReadFromSpan[System.Nullable`1[System.Int128]](System.ReadOnlySpan`1[ushort],System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[System.Int128]]):System.Nullable`1[System.Int128] (Tier1)
       -2410 (-100.00 % of base) : 607534.dasm - System.Text.Json.JsonSerializer:ReadFromSpan[System.Nullable`1[System.UInt128]](System.ReadOnlySpan`1[ushort],System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[System.UInt128]]):System.Nullable`1[System.UInt128] (Tier1)
       -2402 (-100.00 % of base) : 607117.dasm - System.Text.Json.JsonSerializer:ReadFromSpan[System.Nullable`1[uint]](System.ReadOnlySpan`1[ushort],System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[uint]]):System.Nullable`1[uint] (Tier1)

Top method improvements (percentages):
       -2268 (-100.00 % of base) : 445732.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
       -1670 (-100.00 % of base) : 547951.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal:OpenAlgorithm(System.String):System.Security.Cryptography.SymmetricAlgorithm (Tier1)
       -1394 (-100.00 % of base) : 400668.dasm - Interop+OpenSsl:Encrypt(Microsoft.Win32.SafeHandles.SafeSslHandle,System.ReadOnlySpan`1[ubyte],byref):int (Tier1)
       -5664 (-100.00 % of base) : 171607.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindNonGenericSimpleNamespaceOrTypeOrAliasSymbol(Microsoft.CodeAnalysis.CSharp.Syntax.IdentifierNameSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
       -2316 (-100.00 % of base) : 672402.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConditionalOperator(Microsoft.CodeAnalysis.CSharp.BoundConditionalOperator,ubyte):this (Tier1)
        -426 (-100.00 % of base) : 185832.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c:<.ctor>b__17_1(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte:this (Tier1)
        -176 (-100.00 % of base) : 89026.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
        -176 (-100.00 % of base) : 49769.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:get_AssemblyCultureAttributeSetting():System.String:this (Tier1)
       -2754 (-100.00 % of base) : 671381.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax,int,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier1)
       -3170 (-100.00 % of base) : 670431.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:PartialMethodChecks(Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
        -106 (-100.00 % of base) : 180482.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsPreprocessorContextualKeyword(ushort):ubyte (Tier1)
        -144 (-100.00 % of base) : 185663.dasm - Microsoft.CodeAnalysis.MetadataHelpers:IsValidMetadataIdentifier(System.String):ubyte (Tier1)
        -144 (-100.00 % of base) : 186626.dasm - Microsoft.CodeAnalysis.MetadataHelpers:IsValidMetadataIdentifier(System.String):ubyte (Tier1)
        -744 (-100.00 % of base) : 657510.dasm - System.Buffers.SharedArrayPool`1[int]:Rent(int):int[]:this (Tier1)
       -1060 (-100.00 % of base) : 368323.dasm - System.Buffers.SharedArrayPool`1[System.Buffers.AhoCorasickNode]:Return(System.Buffers.AhoCorasickNode[],ubyte):this (Instrumented Tier1)
        -804 (-100.00 % of base) : 618928.dasm - System.Buffers.SharedArrayPool`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:Rent(int):System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon][]:this (Tier1)
       -1048 (-100.00 % of base) : 6892.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Instrumented Tier1)
        -758 (-100.00 % of base) : 565339.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Tier1)
        -744 (-100.00 % of base) : 137135.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this (Tier1)
        -744 (-100.00 % of base) : 402775.dasm - System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):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: 93040870 (overridden on cmd)
Total bytes of diff: 93040864 (overridden on cmd)
Total bytes of delta: -6 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -3400 : 302315.dasm (-100.00 % of base)
       -2650 : 99043.dasm (-100.00 % of base)
       -1954 : 304045.dasm (-100.00 % of base)
       -1888 : 299659.dasm (-100.00 % of base)
       -1840 : 24019.dasm (-100.00 % of base)
       -1840 : 299957.dasm (-100.00 % of base)
       -1832 : 24060.dasm (-100.00 % of base)
       -1578 : 143951.dasm (-100.00 % of base)
       -1358 : 300502.dasm (-100.00 % of base)
       -1320 : 300439.dasm (-100.00 % of base)
       -1270 : 196696.dasm (-100.00 % of base)
       -1226 : 198938.dasm (-100.00 % of base)
       -1070 : 101383.dasm (-100.00 % of base)
       -1054 : 301547.dasm (-100.00 % of base)
        -814 : 16305.dasm (-100.00 % of base)
        -804 : 12380.dasm (-100.00 % of base)
        -796 : 12348.dasm (-100.00 % of base)
        -732 : 16303.dasm (-100.00 % of base)
        -704 : 240198.dasm (-100.00 % of base)
        -124 : 81540.dasm (-100.00 % of base)

21 total files with Code Size differences (21 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -3400 (-100.00 % of base) : 302315.dasm - System.Threading.Tasks.Tests.Status.TaskStatusTest:RealRun():this (FullOpts)
       -2650 (-100.00 % of base) : 99043.dasm - System.Diagnostics.Tests.ProcessWaitingTests+<SingleProcess_TryWaitAsyncMultipleTimesBeforeCompleting>d__9:MoveNext():this (FullOpts)
       -1954 (-100.00 % of base) : 304045.dasm - System.Threading.Tests.TimerDisposeTests+<DisposeAsync_ThenDisposeWaitHandleReturnsFalse>d__8:MoveNext():this (FullOpts)
       -1888 (-100.00 % of base) : 299659.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<SetException_AfterOnCompleted_ResultAvailableAsynchronously>d__7:MoveNext():this (FullOpts)
       -1840 (-100.00 % of base) : 24019.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<SetException_AfterOnCompleted_ResultAvailableAsynchronously>d__7:MoveNext():this (FullOpts)
       -1840 (-100.00 % of base) : 299957.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<SetResult_AfterOnCompleted_ResultAvailableAsynchronously>d__5:MoveNext():this (FullOpts)
       -1832 (-100.00 % of base) : 24060.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<SetResult_AfterOnCompleted_ResultAvailableAsynchronously>d__5:MoveNext():this (FullOpts)
       -1578 (-100.00 % of base) : 143951.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
       -1358 (-100.00 % of base) : 300502.dasm - System.Threading.Tasks.Tests.ParallelForEachAsyncTests+<Dop_NegativeTaskSchedulerLimitTreatedAsDefault_For>d__6:MoveNext():this (FullOpts)
       -1320 (-100.00 % of base) : 300439.dasm - System.Threading.Tasks.Tests.ParallelForEachAsyncTests+<Dop_WorkersCreatedRespectingLimit_For>d__2:MoveNext():this (FullOpts)
       -1270 (-100.00 % of base) : 196696.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
       -1226 (-100.00 % of base) : 198938.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)
       -1070 (-100.00 % of base) : 101383.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1054 (-100.00 % of base) : 301547.dasm - System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTest:RealRun():this (FullOpts)
        -814 (-100.00 % of base) : 16305.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult]:Return(Microsoft.CodeAnalysis.Testing.DiagnosticResult[],ubyte):this (FullOpts)
        -804 (-100.00 % of base) : 12380.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Return(System.Collections.Immutable.ImmutableArray`1[System.__Canon][],ubyte):this (FullOpts)
        -796 (-100.00 % of base) : 12348.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Rent(int):System.Collections.Immutable.ImmutableArray`1[System.__Canon][]:this (FullOpts)
        -732 (-100.00 % of base) : 16303.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult]:Rent(int):Microsoft.CodeAnalysis.Testing.DiagnosticResult[]:this (FullOpts)
        -704 (-100.00 % of base) : 240198.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
        -124 (-100.00 % of base) : 81540.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)

Top method improvements (percentages):
        -732 (-100.00 % of base) : 16303.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult]:Rent(int):Microsoft.CodeAnalysis.Testing.DiagnosticResult[]:this (FullOpts)
        -814 (-100.00 % of base) : 16305.dasm - System.Buffers.SharedArrayPool`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult]:Return(Microsoft.CodeAnalysis.Testing.DiagnosticResult[],ubyte):this (FullOpts)
        -796 (-100.00 % of base) : 12348.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Rent(int):System.Collections.Immutable.ImmutableArray`1[System.__Canon][]:this (FullOpts)
        -804 (-100.00 % of base) : 12380.dasm - System.Buffers.SharedArrayPool`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:Return(System.Collections.Immutable.ImmutableArray`1[System.__Canon][],ubyte):this (FullOpts)
        -124 (-100.00 % of base) : 81540.dasm - System.ComponentModel.Composition.CompositionExceptionTests:Constructor1_ShouldSetErrorsPropertyToEmpty():this (FullOpts)
       -2650 (-100.00 % of base) : 99043.dasm - System.Diagnostics.Tests.ProcessWaitingTests+<SingleProcess_TryWaitAsyncMultipleTimesBeforeCompleting>d__9:MoveNext():this (FullOpts)
       -1578 (-100.00 % of base) : 143951.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
         -88 (-100.00 % of base) : 144291.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
        -704 (-100.00 % of base) : 240198.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:QueueStringSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.Queue`1[System.String]):this (FullOpts)
       -1840 (-100.00 % of base) : 24019.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<SetException_AfterOnCompleted_ResultAvailableAsynchronously>d__7:MoveNext():this (FullOpts)
       -1888 (-100.00 % of base) : 299659.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<SetException_AfterOnCompleted_ResultAvailableAsynchronously>d__7:MoveNext():this (FullOpts)
       -1840 (-100.00 % of base) : 299957.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<SetResult_AfterOnCompleted_ResultAvailableAsynchronously>d__5:MoveNext():this (FullOpts)
       -1832 (-100.00 % of base) : 24060.dasm - System.Threading.Tasks.Sources.Tests.ManualResetValueTaskSourceTests+<SetResult_AfterOnCompleted_ResultAvailableAsynchronously>d__5:MoveNext():this (FullOpts)
       -1054 (-100.00 % of base) : 301547.dasm - System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTest:RealRun():this (FullOpts)
       -1358 (-100.00 % of base) : 300502.dasm - System.Threading.Tasks.Tests.ParallelForEachAsyncTests+<Dop_NegativeTaskSchedulerLimitTreatedAsDefault_For>d__6:MoveNext():this (FullOpts)
       -1320 (-100.00 % of base) : 300439.dasm - System.Threading.Tasks.Tests.ParallelForEachAsyncTests+<Dop_WorkersCreatedRespectingLimit_For>d__2:MoveNext():this (FullOpts)
       -3400 (-100.00 % of base) : 302315.dasm - System.Threading.Tasks.Tests.Status.TaskStatusTest:RealRun():this (FullOpts)
       -1954 (-100.00 % of base) : 304045.dasm - System.Threading.Tests.TimerDisposeTests+<DisposeAsync_ThenDisposeWaitHandleReturnsFalse>d__8:MoveNext():this (FullOpts)
       -1070 (-100.00 % of base) : 101383.dasm - System.Xml.XmlBaseReader:IndexOfLocalName(System.Xml.XmlDictionaryString[],System.Xml.XmlDictionaryString):int:this (FullOpts)
       -1226 (-100.00 % of base) : 198938.dasm - XmlDictionaryWriterTest:XmlBaseWriter_WriteString() (FullOpts)

21 total methods with Code Size differences (21 improved, 0 regressed).



windows x86

Diffs are based on 2,299,277 contexts (841,817 MinOpts, 1,457,460 FullOpts).

MISSED contexts: base: 2,090 (0.09%), diff: 2,093 (0.09%)

Overall (-81 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch 43,746,356 -45
coreclr_tests.run.windows.x86.checked.mch 308,815,477 +159
libraries_tests.run.windows.x86.Release.mch 186,076,300 -175
librariestestsnotieredcompilation.run.windows.x86.Release.mch 102,171,676 -20

FullOpts (-81 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch 37,116,866 -45
coreclr_tests.run.windows.x86.checked.mch 107,143,708 +159
libraries_tests.run.windows.x86.Release.mch 87,744,793 -175
librariestestsnotieredcompilation.run.windows.x86.Release.mch 93,501,884 -20

Example diffs

benchmarks.run_pgo.windows.x86.checked.mch

-40 (-2.78%) : 78739.dasm - Microsoft.Cci.MetadataWriter:WriteInstructions(System.Reflection.Metadata.Blob,System.Collections.Immutable.ImmutableArray`1[ubyte],byref,byref):this (Tier0-FullOpts)

@@ -8,31 +8,31 @@
 ; 6 inlinees with PGO data; 53 single block inlinees; 17 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T07] ( 11, 32   )     ref  ->  [ebp-0x60]  this class-hnd single-def <Microsoft.Cci.MetadataWriter>
-;  V01 arg1         [V01,T40] (  3,  3   )  struct (12) [ebp+0x10]  do-not-enreg[S] single-def <System.Reflection.Metadata.Blob>
+;  V00 this         [V00,T06] ( 11, 32   )     ref  ->  [ebp-0x54]  this class-hnd single-def <Microsoft.Cci.MetadataWriter>
+;  V01 arg1         [V01,T39] (  3,  3   )  struct (12) [ebp+0x10]  do-not-enreg[S] single-def <System.Reflection.Metadata.Blob>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-;  V03 arg3         [V03,T10] (  5, 26   )   byref  ->  [ebp-0x64]  single-def
-;  V04 arg4         [V04,T27] (  1,  8   )   byref  ->  [ebp+0x08]  single-def
+;  V03 arg3         [V03,T09] (  5, 26   )   byref  ->  [ebp-0x58]  single-def
+;  V04 arg4         [V04,T26] (  1,  8   )   byref  ->  [ebp+0x08]  single-def
 ;  V05 loc0         [V05    ] ( 34,168   )  struct (16) [ebp-0x1C]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Metadata.BlobWriter>
 ;  V06 loc1         [V06,T00] ( 47,265   )     int  ->  [ebp-0x20]  ld-addr-op
 ;* V07 loc2         [V07    ] (  0,  0   )     int  ->  zero-ref   
 ;* V08 loc3         [V08    ] (  0,  0   )     int  ->  zero-ref   
-;  V09 loc4         [V09,T13] (  7, 14   )     int  ->  [ebp-0x24]  spill-single-def
-;  V10 loc5         [V10,T14] (  7, 14   )     int  ->  [ebp-0x28] 
-;  V11 loc6         [V11,T29] (  4,  6   )   ubyte  ->  [ebp-0x2C]  spill-single-def
-;  V12 loc7         [V12,T06] (  3, 40   )     int  ->  eax        
+;  V09 loc4         [V09,T12] (  7, 14   )     int  ->  [ebp-0x24]  spill-single-def
+;  V10 loc5         [V10,T13] (  7, 14   )     int  ->  ecx        
+;  V11 loc6         [V11,T28] (  4,  6   )   ubyte  ->  [ebp-0x28]  spill-single-def
+;  V12 loc7         [V12,T05] (  3, 40   )     int  ->  edx        
 ;* V13 loc8         [V13    ] (  0,  0   )  struct ( 4) zero-ref    <System.Reflection.Metadata.UserStringHandle>
-;  V14 loc9         [V14    ] (  3, 24   )  struct (16) [ebp-0x3C]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Metadata.ReservedBlob`1[System.Reflection.Metadata.UserStringHandle]>
+;  V14 loc9         [V14    ] (  3, 24   )  struct (16) [ebp-0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Metadata.ReservedBlob`1[System.Reflection.Metadata.UserStringHandle]>
 ;* V15 tmp0         [V15    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V16 tmp1         [V16    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.Handle>
-;  V17 tmp2         [V17,T50] (  3,  0   )     ref  ->  eax         class-hnd exact "Single-def Box Helper" <<unknown class>>
-;  V18 tmp3         [V18,T21] (  5, 10   )   byref  ->  esi        
+;  V17 tmp2         [V17,T49] (  3,  0   )     ref  ->  eax         class-hnd exact "Single-def Box Helper" <<unknown class>>
+;  V18 tmp3         [V18,T20] (  5, 10   )   byref  ->  [ebp-0x5C]  spill-single-def
 ;* V19 tmp4         [V19    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.EntityHandle>
 ;* V20 tmp5         [V20    ] (  0,  0   )   byref  ->  zero-ref   
-;  V21 tmp6         [V21,T30] (  3,  6   )     int  ->  [ebp-0x40] 
-;  V22 tmp7         [V22,T51] (  3,  0   )     ref  ->  eax         class-hnd exact "Single-def Box Helper" <<unknown class>>
+;  V21 tmp6         [V21,T29] (  3,  6   )     int  ->  [ebp-0x3C] 
+;  V22 tmp7         [V22,T50] (  3,  0   )     ref  ->  eax         class-hnd exact "Single-def Box Helper" <<unknown class>>
 ;* V23 tmp8         [V23    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.EntityHandle>
-;  V24 tmp9         [V24,T17] (  3, 12   )     ref  ->  [ebp-0x68]  class-hnd spill-single-def "impAppendStmt" <Microsoft.Cci.DynamicAnalysisDataWriter>
+;  V24 tmp9         [V24,T16] (  3, 12   )     ref  ->  [ebp-0x60]  class-hnd spill-single-def "impAppendStmt" <Microsoft.Cci.DynamicAnalysisDataWriter>
 ;* V25 tmp10        [V25    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Reflection.Metadata.EntityHandle>
 ;* V26 tmp11        [V26    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.Blob>
 ;* V27 tmp12        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <ubyte[]>
@@ -45,51 +45,51 @@
 ;* V34 tmp19        [V34    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V35 tmp20        [V35    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V36 tmp21        [V36    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
-;  V37 tmp22        [V37,T38] (  7,  4.50)     int  ->  [ebp-0x44]  spill-single-def "Inline stloc first use temp"
+;  V37 tmp22        [V37,T37] (  7,  4.50)     int  ->  [ebp-0x40]  spill-single-def "Inline stloc first use temp"
 ;* V38 tmp23        [V38    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp24        [V39    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
-;  V40 tmp25        [V40,T28] (  5,  7   )     ref  ->  edx         class-hnd single-def "Inlining Arg" <ubyte[]>
+;  V40 tmp25        [V40,T27] (  5,  7   )     ref  ->  edx         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V41 tmp26        [V41    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V42 tmp27        [V42    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
-;  V43 tmp28        [V43,T41] (  3,  3   )     int  ->  [ebp-0x48]  spill-single-def "Inlining Arg"
-;  V44 tmp29        [V44,T42] (  2,  2   )   byref  ->  [ebp-0x6C]  spill-single-def "Inlining Arg"
+;  V43 tmp28        [V43,T40] (  3,  3   )     int  ->  [ebp-0x44]  spill-single-def "Inlining Arg"
+;  V44 tmp29        [V44,T41] (  2,  2   )   byref  ->  [ebp-0x64]  spill-single-def "Inlining Arg"
 ;* V45 tmp30        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp31        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp32        [V47    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V48 tmp33        [V48    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V49 tmp34        [V49    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V50 tmp35        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V51 tmp36        [V51,T15] (  6, 14   )     int  ->  [ebp-0x4C]  "Inline return value spill temp"
+;  V51 tmp36        [V51,T14] (  6, 14   )     int  ->  [ebp-0x48]  "Inline return value spill temp"
 ;* V52 tmp37        [V52    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
-;  V53 tmp38        [V53,T11] (  8, 24   )     int  ->  ecx         "Inline stloc first use temp"
-;  V54 tmp39        [V54,T16] (  4, 12   )   ubyte  ->  ecx         "Inline stloc first use temp"
+;  V53 tmp38        [V53,T10] (  8, 24   )     int  ->  ecx         "Inline stloc first use temp"
+;  V54 tmp39        [V54,T15] (  4, 12   )   ubyte  ->  edx         "Inline stloc first use temp"
 ;* V55 tmp40        [V55    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
-;  V56 tmp41        [V56,T19] (  3, 12   )     int  ->  ecx         "Span.get_Item index"
+;  V56 tmp41        [V56,T18] (  3, 12   )     int  ->  edx         "Span.get_Item index"
 ;* V57 tmp42        [V57    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V58 tmp43        [V58    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V59 tmp44        [V59    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[ubyte]>
 ;* V60 tmp45        [V60    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V61 tmp46        [V61    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V62 tmp47        [V62    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V63 tmp48        [V63,T25] (  2,  8   )     int  ->  edi         "impAppendStmt"
+;  V63 tmp48        [V63,T24] (  2,  8   )     int  ->  edi         "impAppendStmt"
 ;* V64 tmp49        [V64    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V65 tmp50        [V65    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V66 tmp51        [V66    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V67 tmp52        [V67,T12] (  4, 16   )     int  ->  esi         "Inlining Arg"
+;  V67 tmp52        [V67,T11] (  4, 16   )     int  ->  ecx         "Inlining Arg"
 ;* V68 tmp53        [V68    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V69 tmp54        [V69,T22] (  5, 10   )     int  ->  ecx         "Inline stloc first use temp"
-;  V70 tmp55        [V70,T31] (  3,  6   )     int  ->  ecx         "Inline return value spill temp"
+;  V69 tmp54        [V69,T21] (  5, 10   )     int  ->  ecx         "Inline stloc first use temp"
+;  V70 tmp55        [V70,T30] (  3,  6   )     int  ->  ecx         "Inline return value spill temp"
 ;* V71 tmp56        [V71    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.EntityHandle>
-;  V72 tmp57        [V72,T32] (  3,  6   )     int  ->  eax         "Inline return value spill temp"
+;  V72 tmp57        [V72,T31] (  3,  6   )     int  ->  eax         "Inline return value spill temp"
 ;* V73 tmp58        [V73    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.EntityHandle>
 ;* V74 tmp59        [V74    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder>
 ;* V75 tmp60        [V75    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V76 tmp61        [V76    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <<unknown class>>
 ;* V77 tmp62        [V77    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V78 tmp63        [V78,T33] (  3,  6   )     int  ->  ecx         "Inline return value spill temp"
+;  V78 tmp63        [V78,T32] (  3,  6   )     int  ->  ecx         "Inline return value spill temp"
 ;* V79 tmp64        [V79    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.EntityHandle>
 ;* V80 tmp65        [V80    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V81 tmp66        [V81,T23] (  5, 10   )     int  ->  edi         "Inline stloc first use temp"
+;  V81 tmp66        [V81,T22] (  5, 10   )     int  ->  edi         "Inline stloc first use temp"
 ;* V82 tmp67        [V82    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <ubyte[]>
 ;* V83 tmp68        [V83    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V84 tmp69        [V84    ] (  0,  0   )   byref  ->  zero-ref   
@@ -99,17 +99,17 @@
 ;* V88 tmp73        [V88    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V89 tmp74        [V89    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V90 tmp75        [V90    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V91 tmp76        [V91,T05] (  2, 64   )     int  ->  ecx         "impAppendStmt"
+;  V91 tmp76        [V91,T04] (  2, 64   )     int  ->  edx         "impAppendStmt"
 ;* V92 tmp77        [V92    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V93 tmp78        [V93    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V94 tmp79        [V94    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V95 tmp80        [V95    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.Handle>
 ;* V96 tmp81        [V96    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V97 tmp82        [V97,T09] (  2, 32   )     int  ->  eax         "Inline return value spill temp"
+;  V97 tmp82        [V97,T08] (  2, 32   )     int  ->  edx         "Inline return value spill temp"
 ;* V98 tmp83        [V98    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Reflection.Metadata.Handle>
 ;* V99 tmp84        [V99    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V100 tmp85       [V100,T04] (  5, 80   )     int  ->  ecx         "Inline stloc first use temp"
-;  V101 tmp86       [V101,T01] (  3, 96   )     ref  ->  edi         class-hnd "Inlining Arg" <ubyte[]>
+;  V100 tmp85       [V100,T03] (  5, 80   )     int  ->  ecx         "Inline stloc first use temp"
+;  V101 tmp86       [V101,T02] (  3, 96   )     ref  ->  edi         class-hnd "Inlining Arg" <ubyte[]>
 ;* V102 tmp87       [V102    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V103 tmp88       [V103    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V104 tmp89       [V104    ] (  0,  0   )     int  ->  zero-ref   
@@ -117,37 +117,37 @@
 ;* V106 tmp91       [V106    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V107 tmp92       [V107    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V108 tmp93       [V108    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V109 tmp94       [V109,T26] (  2,  8   )     int  ->  [ebp-0x50]  spill-single-def "impAppendStmt"
+;  V109 tmp94       [V109,T25] (  2,  8   )     int  ->  edx         "impAppendStmt"
 ;* V110 tmp95       [V110    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V111 tmp96       [V111    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V112 tmp97       [V112    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V113 tmp98       [V113,T03] ( 17, 89   )     ref  ->  ebx         single-def "field V02.array (fldOffset=0x0)" P-INDEP
+;  V113 tmp98       [V113,T01] ( 33,180   )     ref  ->  ebx         single-def "field V02.array (fldOffset=0x0)" P-INDEP
 ;  V114 tmp99       [V114    ] (  6, 24   )     ref  ->  [ebp-0x1C]  do-not-enreg[X] addr-exposed "field V05._buffer (fldOffset=0x0)" P-DEP
 ;  V115 tmp100      [V115    ] ( 10, 45   )     int  ->  [ebp-0x18]  do-not-enreg[X] addr-exposed "field V05._start (fldOffset=0x4)" P-DEP
 ;  V116 tmp101      [V116    ] (  9, 43   )     int  ->  [ebp-0x14]  do-not-enreg[X] addr-exposed "field V05._end (fldOffset=0x8)" P-DEP
 ;  V117 tmp102      [V117    ] ( 12, 62   )     int  ->  [ebp-0x10]  do-not-enreg[X] addr-exposed "field V05._position (fldOffset=0xc)" P-DEP
-;  V118 tmp103      [V118,T08] (  3, 32   )     int  ->  eax         "field V13._offset (fldOffset=0x0)" P-INDEP
+;  V118 tmp103      [V118,T07] (  3, 32   )     int  ->  edx         "field V13._offset (fldOffset=0x0)" P-INDEP
 ;* V119 tmp104      [V119    ] (  0,  0   )     int  ->  zero-ref    "field V16._value (fldOffset=0x0)" P-INDEP
 ;* V120 tmp105      [V120    ] (  0,  0   )   ubyte  ->  zero-ref    "field V16._vType (fldOffset=0x4)" P-INDEP
-;  V121 tmp106      [V121,T34] (  3,  6   )     int  ->  eax         "field V19._vToken (fldOffset=0x0)" P-INDEP
-;  V122 tmp107      [V122,T35] (  3,  6   )     int  ->  eax         "field V23._vToken (fldOffset=0x0)" P-INDEP
-;  V123 tmp108      [V123,T36] (  3,  6   )     int  ->  eax         "field V25._vToken (fldOffset=0x0)" P-INDEP
-;  V124 tmp109      [V124,T43] (  2,  2   )     ref  ->  [ebp-0x70]  spill-single-def "field V26.Buffer (fldOffset=0x0)" P-INDEP
-;  V125 tmp110      [V125,T39] (  4,  4   )     int  ->  edx         single-def "field V26.Start (fldOffset=0x4)" P-INDEP
-;  V126 tmp111      [V126,T44] (  2,  2   )     int  ->  [ebp-0x54]  spill-single-def "field V26.<Length>k__BackingField (fldOffset=0x8)" P-INDEP
+;  V121 tmp106      [V121,T33] (  3,  6   )     int  ->  eax         "field V19._vToken (fldOffset=0x0)" P-INDEP
+;  V122 tmp107      [V122,T34] (  3,  6   )     int  ->  eax         "field V23._vToken (fldOffset=0x0)" P-INDEP
+;  V123 tmp108      [V123,T35] (  3,  6   )     int  ->  eax         "field V25._vToken (fldOffset=0x0)" P-INDEP
+;  V124 tmp109      [V124,T42] (  2,  2   )     ref  ->  [ebp-0x68]  spill-single-def "field V26.Buffer (fldOffset=0x0)" P-INDEP
+;  V125 tmp110      [V125,T38] (  4,  4   )     int  ->  edx         single-def "field V26.Start (fldOffset=0x4)" P-INDEP
+;  V126 tmp111      [V126,T43] (  2,  2   )     int  ->  [ebp-0x4C]  spill-single-def "field V26.<Length>k__BackingField (fldOffset=0x8)" P-INDEP
 ;* V127 tmp112      [V127    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V30.array (fldOffset=0x0)" P-INDEP
 ;* V128 tmp113      [V128    ] (  0,  0   )   byref  ->  zero-ref    "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V129 tmp114      [V129    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x4)" P-INDEP
-;  V130 tmp115      [V130,T45] (  3,  1.75)   byref  ->  [ebp-0x74]  spill-single-def "field V32._reference (fldOffset=0x0)" P-INDEP
-;  V131 tmp116      [V131,T37] (  6,  5.50)     int  ->  [ebp-0x58]  spill-single-def "field V32._length (fldOffset=0x4)" P-INDEP
+;  V130 tmp115      [V130,T44] (  3,  1.75)   byref  ->  [ebp-0x6C]  spill-single-def "field V32._reference (fldOffset=0x0)" P-INDEP
+;  V131 tmp116      [V131,T36] (  6,  5.50)     int  ->  [ebp-0x50]  spill-single-def "field V32._length (fldOffset=0x4)" P-INDEP
 ;* V132 tmp117      [V132    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V133 tmp118      [V133    ] (  0,  0   )     int  ->  zero-ref    single-def "field V34._length (fldOffset=0x4)" P-INDEP
 ;* V134 tmp119      [V134    ] (  0,  0   )   byref  ->  zero-ref    "field V36._reference (fldOffset=0x0)" P-INDEP
 ;* V135 tmp120      [V135    ] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0x4)" P-INDEP
-;  V136 tmp121      [V136,T47] (  4,  1.25)   byref  ->  [ebp-0x78]  "field V39._reference (fldOffset=0x0)" P-INDEP
-;  V137 tmp122      [V137,T46] (  3,  1.50)     int  ->  edx         "field V39._length (fldOffset=0x4)" P-INDEP
-;  V138 tmp123      [V138,T48] (  2,  1   )   byref  ->  eax         single-def "field V41._reference (fldOffset=0x0)" P-INDEP
-;  V139 tmp124      [V139,T49] (  2,  1   )     int  ->  edx         single-def "field V41._length (fldOffset=0x4)" P-INDEP
+;  V136 tmp121      [V136,T46] (  4,  1.25)   byref  ->  [ebp-0x70]  "field V39._reference (fldOffset=0x0)" P-INDEP
+;  V137 tmp122      [V137,T45] (  3,  1.50)     int  ->  edx         "field V39._length (fldOffset=0x4)" P-INDEP
+;  V138 tmp123      [V138,T47] (  2,  1   )   byref  ->  ecx         single-def "field V41._reference (fldOffset=0x0)" P-INDEP
+;  V139 tmp124      [V139,T48] (  2,  1   )     int  ->  edx         single-def "field V41._length (fldOffset=0x4)" P-INDEP
 ;* V140 tmp125      [V140    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V42._reference (fldOffset=0x0)" P-INDEP
 ;* V141 tmp126      [V141    ] (  0,  0   )     int  ->  zero-ref    single-def "field V42._length (fldOffset=0x4)" P-INDEP
 ;* V142 tmp127      [V142    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V47._reference (fldOffset=0x0)" P-INDEP
@@ -169,13 +169,12 @@
 ;* V158 tmp143      [V158    ] (  0,  0   )     int  ->  zero-ref    "field V98._value (fldOffset=0x0)" P-INDEP
 ;* V159 tmp144      [V159    ] (  0,  0   )   ubyte  ->  zero-ref    "field V98._vType (fldOffset=0x4)" P-INDEP
 ;* V160 tmp145      [V160    ] (  0,  0   )     ref  ->  zero-ref    "field V105.array (fldOffset=0x0)" P-INDEP
-;  V161 tmp146      [V161,T24] (  2,  8   )     ref  ->  edx         "argument with side effect"
-;  V162 tmp147      [V162,T18] (  3, 12   )     ref  ->  ecx         "arr expr"
-;  V163 cse0        [V163,T02] ( 18, 93   )     int  ->  [ebp-0x5C]  spill-single-def "CSE - aggressive"
-;  V164 rat0        [V164,T20] (  3, 12   )     int  ->  ecx         "ReplaceWithLclVar is creating a new local variable"
-;  TEMP_01                                     int  ->  [ebp-0x7C]
+;  V161 tmp146      [V161,T23] (  2,  8   )     ref  ->  edx         "argument with side effect"
+;  V162 tmp147      [V162,T17] (  3, 12   )     ref  ->  edx         "arr expr"
+;  V163 rat0        [V163,T19] (  3, 12   )     int  ->  ecx         "ReplaceWithLclVar is creating a new local variable"
+;  TEMP_01                                     int  ->  [ebp-0x74]
 ;
-; Lcl frame size = 112
+; Lcl frame size = 104
 
 G_M4677_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -183,358 +182,351 @@ G_M4677_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {},
        push     edi
        push     esi
        push     ebx
-       sub      esp, 112
+       sub      esp, 104
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [ebp-0x3C], ymm4
-       vmovdqu  xmmword ptr [ebp-0x1C], xmm4
-       mov      gword ptr [ebp-0x60], ecx
-       ; GC ptr vars +{V00}
-       mov      bword ptr [ebp-0x64], edx
+       vmovdqu  ymmword ptr [ebp-0x38], ymm4
+       xor      eax, eax
+       mov      dword ptr [ebp-0x18], eax
+       mov      dword ptr [ebp-0x14], eax
+       mov      dword ptr [ebp-0x10], eax
+       mov      bword ptr [ebp-0x58], edx
        ; GC ptr vars +{V03}
+       mov      esi, ecx
+       ; gcrRegs +[esi]
        mov      ebx, gword ptr [ebp+0x0C]
        ; gcrRegs +[ebx]
-                       ;; size=32 bbWeight=1 PerfScore 11.83
-G_M4677_IG02:        ; bbWeight=1, gcVars=0000000000000480 {V00 V03}, gcrefRegs=00000008 {ebx}, byrefRegs=00000000 {}, gcvars, byref, isz
+                       ;; size=37 bbWeight=1 PerfScore 12.33
+G_M4677_IG02:        ; bbWeight=1, gcVars=0000000000000200 {V03}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        mov      ecx, gword ptr [ebp+0x10]
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x70], ecx
+       mov      gword ptr [ebp-0x68], ecx
        ; GC ptr vars +{V124}
        mov      edx, dword ptr [ebp+0x14]
        mov      ecx, dword ptr [ebp+0x18]
        ; gcrRegs -[ecx]
-       mov      dword ptr [ebp-0x54], ecx
-       mov      ecx, gword ptr [ebp-0x70]
+       mov      dword ptr [ebp-0x4C], ecx
+       mov      ecx, gword ptr [ebp-0x68]
        ; gcrRegs +[ecx]
        mov      gword ptr [ebp-0x1C], ecx
        mov      dword ptr [ebp-0x18], edx
        mov      dword ptr [ebp-0x10], edx
...

-19 (-1.42%) : 14435.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0-FullOpts)

@@ -8,35 +8,35 @@
 ; 3 inlinees with PGO data; 11 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T13] ( 16, 23   )     ref  ->  [ebp-0x68]  this class-hnd single-def <System.Reflection.Emit.RuntimeMethodBuilder>
+;  V00 this         [V00,T13] ( 16, 23   )     ref  ->  [ebp-0x64]  this class-hnd single-def <System.Reflection.Emit.RuntimeMethodBuilder>
 ;  V01 arg1         [V01,T24] (  9,  4   )     ref  ->  edi         class-hnd single-def <System.Reflection.Emit.RuntimeILGenerator>
-;  V02 loc0         [V02,T21] (  6, 12   )     ref  ->  [ebp-0x6C]  class-hnd exact spill-single-def <System.Reflection.Emit.__ExceptionInfo[]>
+;  V02 loc0         [V02,T21] (  7, 16   )     ref  ->  [ebp-0x68]  class-hnd exact spill-single-def <System.Reflection.Emit.__ExceptionInfo[]>
 ;  V03 loc1         [V03,T10] (  9, 33   )     int  ->  [ebp-0x10] 
-;  V04 loc2         [V04,T14] (  9, 24.16)     ref  ->  [ebp-0x70]  class-hnd spill-single-def <int[]>
-;  V05 loc3         [V05,T15] (  9, 24.16)     ref  ->  [ebp-0x74]  class-hnd spill-single-def <int[]>
-;  V06 loc4         [V06,T16] (  9, 24.16)     ref  ->  [ebp-0x78]  class-hnd spill-single-def <int[]>
-;  V07 loc5         [V07,T17] (  6, 24.16)     ref  ->  [ebp-0x7C]  class-hnd spill-single-def <System.Type[]>
-;  V08 loc6         [V08,T18] (  6, 24.16)     ref  ->  [ebp-0x80]  class-hnd spill-single-def <int[]>
+;  V04 loc2         [V04,T14] (  9, 24.16)     ref  ->  [ebp-0x6C]  class-hnd spill-single-def <int[]>
+;  V05 loc3         [V05,T15] (  9, 24.16)     ref  ->  [ebp-0x70]  class-hnd spill-single-def <int[]>
+;  V06 loc4         [V06,T16] (  9, 24.16)     ref  ->  [ebp-0x74]  class-hnd spill-single-def <int[]>
+;  V07 loc5         [V07,T17] (  6, 24.16)     ref  ->  [ebp-0x78]  class-hnd spill-single-def <System.Type[]>
+;  V08 loc6         [V08,T18] (  6, 24.16)     ref  ->  [ebp-0x7C]  class-hnd spill-single-def <int[]>
 ;  V09 loc7         [V09,T09] (  9, 34   )     int  ->  [ebp-0x14]  spill-single-def
 ;  V10 loc8         [V10,T20] (  5, 20   )     int  ->  [ebp-0x18]  spill-single-def
 ;  V11 loc9         [V11,T22] (  3, 12   )     int  ->  [ebp-0x1C]  spill-single-def
-;  V12 loc10        [V12,T23] (  3,  9   )     ref  ->  [ebp-0x84]  class-hnd exact spill-single-def <<unknown class>>
-;  V13 loc11        [V13,T33] (  3,  0   )     int  ->  eax        
+;  V12 loc10        [V12,T23] (  3,  9   )     ref  ->  [ebp-0x80]  class-hnd exact spill-single-def <<unknown class>>
+;  V13 loc11        [V13,T32] (  3,  0   )     int  ->  eax        
 ;  V14 loc12        [V14,T19] (  7, 24   )     int  ->  [ebp-0x20] 
 ;  V15 loc13        [V15,T00] ( 31,132.80)     int  ->  edi        
 ;  V16 loc14        [V16,T06] (  8, 40   )     int  ->  [ebp-0x24] 
 ;* V17 loc15        [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;  V18 tmp0         [V18,T01] (  8, 64   )     int  ->  ebx         "impSpillLclRefs"
-;  V19 tmp1         [V19,T04] (  6, 48   )     ref  ->  [ebp-0x88]  class-hnd exact "impAppendStmt" <<unknown class>>
+;  V19 tmp1         [V19,T04] (  6, 48   )     ref  ->  [ebp-0x84]  class-hnd exact "impAppendStmt" <<unknown class>>
 ;  V20 tmp2         [V20    ] (  6, 48   )  struct (28) [ebp-0x40]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Reflection.Emit.ExceptionHandler>
 ;  V21 tmp3         [V21,T02] (  8, 64   )     int  ->  ebx         "impSpillLclRefs"
 ;  V22 tmp4         [V22    ] (  6, 48   )  struct (28) [ebp-0x5C]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Reflection.Emit.ExceptionHandler>
-;  V23 tmp5         [V23,T05] (  6, 48   )     ref  ->  [ebp-0x8C]  class-hnd exact "impAppendStmt" <<unknown class>>
-;  V24 tmp6         [V24,T30] (  3,  0   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V25 tmp7         [V25,T31] (  3,  0   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V26 tmp8         [V26,T32] (  3,  0   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V23 tmp5         [V23,T05] (  6, 48   )     ref  ->  [ebp-0x88]  class-hnd exact "impAppendStmt" <<unknown class>>
+;  V24 tmp6         [V24,T29] (  3,  0   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V25 tmp7         [V25,T30] (  3,  0   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V26 tmp8         [V26,T31] (  3,  0   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V27 tmp9         [V27,T25] (  5,  4.00)     ref  ->  ecx         class-hnd single-def "Inlining Arg" <System.Reflection.MethodInfo>
-;  V28 tmp10        [V28,T29] (  2,  0   )   ubyte  ->  eax         "Inline return value spill temp"
+;  V28 tmp10        [V28,T28] (  2,  0   )   ubyte  ->  eax         "Inline return value spill temp"
 ;* V29 tmp11        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Reflection.MethodInfo>
 ;* V30 tmp12        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V31 tmp13        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Reflection.Emit.__ExceptionInfo>
@@ -49,17 +49,16 @@
 ;* V38 tmp20        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Reflection.Emit.__ExceptionInfo>
 ;  V39 tmp21        [V39,T11] (  4, 32   )     ref  ->  edx         class-hnd exact "Inlining Arg" <System.Reflection.Emit.__ExceptionInfo>
 ;  V40 tmp22        [V40,T12] (  4, 32   )     ref  ->  eax         "argument with side effect"
-;  V41 tmp23        [V41,T34] (  2,  0   )     ref  ->  edx         single-def "argument with side effect"
-;  V42 tmp24        [V42,T35] (  2,  0   )     ref  ->  edx         single-def "argument with side effect"
-;  V43 tmp25        [V43,T36] (  2,  0   )     ref  ->  edx         single-def "argument with side effect"
-;  V44 cse0         [V44,T27] (  5,  0.64)     int  ->  [ebp-0x60]  spill-single-def "CSE - conservative"
-;  V45 cse1         [V45,T28] (  3,  0.40)     ref  ->  eax         "CSE - conservative"
+;  V41 tmp23        [V41,T33] (  2,  0   )     ref  ->  edx         single-def "argument with side effect"
+;  V42 tmp24        [V42,T34] (  2,  0   )     ref  ->  edx         single-def "argument with side effect"
+;  V43 tmp25        [V43,T35] (  2,  0   )     ref  ->  edx         single-def "argument with side effect"
+;  V44 cse0         [V44,T26] (  5,  0.64)     int  ->  [ebp-0x60]  spill-single-def "CSE - conservative"
+;  V45 cse1         [V45,T27] (  3,  0.40)     ref  ->  eax         "CSE - conservative"
 ;  V46 cse2         [V46,T08] (  9, 36   )     ref  ->  edx         "CSE - moderate"
 ;  V47 cse3         [V47,T03] (  5, 63.36)     int  ->  eax         "CSE - moderate"
 ;  V48 cse4         [V48,T07] (  3, 39.60)     ref  ->  eax         "CSE - moderate"
-;  V49 cse5         [V49,T26] (  3,  4   )     int  ->  [ebp-0x64]  spill-single-def "CSE - conservative"
 ;
-; Lcl frame size = 128
+; Lcl frame size = 124
 
 G_M41336_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -67,13 +66,13 @@ G_M41336_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 128
+       sub      esp, 124
        vzeroupper 
        mov      esi, ecx
        ; gcrRegs +[esi]
        mov      edi, edx
        ; gcrRegs +[edi]
-                       ;; size=19 bbWeight=1 PerfScore 6.00
+                       ;; size=16 bbWeight=1 PerfScore 6.00
 G_M41336_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        test     edi, edi
        jne      SHORT G_M41336_IG04
@@ -95,7 +94,7 @@ G_M41336_IG04:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        xor      ebx, ebx
        mov      eax, gword ptr [esi+0x08]
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x84], eax
+       mov      gword ptr [ebp-0x80], eax
        ; GC ptr vars +{V12}
        mov      ecx, gword ptr [esi+0x0C]
        ; gcrRegs +[ecx]
@@ -103,8 +102,8 @@ G_M41336_IG04:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        call     [System.Reflection.Emit.RuntimeTypeBuilder:ThrowIfCreated():this]
        ; gcrRegs -[eax ecx]
        cmp      byte  ptr [esi+0x58], 0
-       jne      G_M41336_IG44
-                       ;; size=32 bbWeight=1 PerfScore 15.25
+       jne      G_M41336_IG43
+                       ;; size=29 bbWeight=1 PerfScore 15.25
 G_M41336_IG05:        ; bbWeight=1.00, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [edi+0x28]
        ; gcrRegs +[ecx]
@@ -201,7 +200,7 @@ G_M41336_IG09:        ; bbWeight=0, gcVars=0000000000800000 {V12}, gcrefRegs=000
        ; gcrRegs -[ecx edi] +[eax]
        mov      edi, eax
        ; gcrRegs +[edi]
-       mov      gword ptr [ebp-0x6C], edi
+       mov      gword ptr [ebp-0x68], edi
        ; GC ptr vars +{V02}
        mov      ecx, edi
        ; gcrRegs +[ecx]
@@ -214,7 +213,7 @@ G_M41336_IG09:        ; bbWeight=0, gcVars=0000000000800000 {V12}, gcrefRegs=000
        mov      ecx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWARR_1_VC
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x68], esi
+       mov      gword ptr [ebp-0x64], esi
        ; GC ptr vars +{V00}
        lea      edx, bword ptr [esi+0x24]
        ; byrRegs +[edx]
@@ -222,29 +221,27 @@ G_M41336_IG09:        ; bbWeight=0, gcVars=0000000000800000 {V12}, gcrefRegs=000
        ; gcrRegs -[eax esi]
        ; byrRegs -[edx]
        xor      eax, eax
-       mov      ecx, dword ptr [edi+0x04]
-       mov      dword ptr [ebp-0x64], ecx
-       test     ecx, ecx
-       jle      G_M41336_IG43
-                       ;; size=100 bbWeight=0 PerfScore 0.00
+       cmp      dword ptr [edi+0x04], 0
+       jle      G_M41336_IG42
+                       ;; size=96 bbWeight=0 PerfScore 0.00
 G_M41336_IG10:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
        mov      dword ptr [ebp-0x20], eax
        mov      edx, gword ptr [edi+4*eax+0x08]
        ; gcrRegs +[edx]
        mov      ecx, gword ptr [edx+0x04]
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x70], ecx
+       mov      gword ptr [ebp-0x6C], ecx
        ; GC ptr vars +{V04}
        mov      edi, gword ptr [edx+0x08]
-       mov      gword ptr [ebp-0x74], edi
+       mov      gword ptr [ebp-0x70], edi
        ; GC ptr vars +{V05}
        mov      esi, gword ptr [edx+0x0C]
        ; gcrRegs +[esi]
-       mov      gword ptr [ebp-0x78], esi
+       mov      gword ptr [ebp-0x74], esi
        ; GC ptr vars +{V06}
        mov      eax, gword ptr [edx+0x14]
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x7C], eax
+       mov      gword ptr [ebp-0x78], eax
        ; GC ptr vars +{V07}
        mov      esi, dword ptr [edx+0x24]
        ; gcrRegs -[esi]
@@ -255,7 +252,7 @@ G_M41336_IG10:        ; bbWeight=4, gcrefRegs=00000080 {edi}, byrefRegs=00000000
        mov      edi, dword ptr [edx+0x1C]
        mov      dword ptr [ebp-0x1C], edi
        mov      edx, gword ptr [edx+0x10]
-       mov      gword ptr [ebp-0x80], edx
+       mov      gword ptr [ebp-0x7C], edx
        ; GC ptr vars +{V08}
        xor      edi, edi
        test     esi, esi
@@ -268,9 +265,9 @@ G_M41336_IG11:        ; bbWeight=2, gcVars=0000000000A7E000 {V00 V02 V04 V05 V06
        je       G_M41336_IG24
        test     ecx, ecx
        je       G_M41336_IG23
-       cmp      gword ptr [ebp-0x74], 0
+       cmp      gword ptr [ebp-0x70], 0
        je       G_M41336_IG22
-       cmp      gword ptr [ebp-0x78], 0
+       cmp      gword ptr [ebp-0x74], 0
        je       G_M41336_IG21
        cmp      dword ptr [eax+0x04], esi
        jl       G_M41336_IG20
@@ -278,10 +275,10 @@ G_M41336_IG11:        ; bbWeight=2, gcVars=0000000000A7E000 {V00 V02 V04 V05 V06
        jl       SHORT G_M41336_IG19
        cmp      dword ptr [ecx+0x04], esi
        jl       SHORT G_M41336_IG18
-       mov      ecx, gword ptr [ebp-0x74]
+       mov      ecx, gword ptr [ebp-0x70]
        cmp      dword ptr [ecx+0x04], esi
        jl       SHORT G_M41336_IG17
-       mov      ecx, gword ptr [ebp-0x78]
+       mov      ecx, gword ptr [ebp-0x74]
        cmp      dword ptr [ecx+0x04], esi
        jl       SHORT G_M41336_IG16
                        ;; size=79 bbWeight=2 PerfScore 63.50
@@ -296,15 +293,15 @@ G_M41336_IG13:        ; bbWeight=7.92, gcrefRegs=00000001 {eax}, byrefRegs=00000
        push     0
        mov      edx, eax
        ; gcrRegs +[edx]
-       mov      ecx, gword ptr [ebp-0x84]
+       mov      ecx, gword ptr [ebp-0x80]
        ; gcrRegs +[ecx]
        cmp      dword ptr [ecx], ecx
        call     [<unknown method>]
        ; gcrRegs -[eax ecx edx]
        mov      ecx, eax
-                       ;; size=20 bbWeight=7.92 PerfScore 67.32
+                       ;; size=17 bbWeight=7.92 PerfScore 67.32
 G_M41336_IG14:        ; bbWeight=15.84, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      edx, gword ptr [ebp-0x80]
+       mov      edx, gword ptr [ebp-0x7C]
        ; gcrRegs +[edx]
        mov      eax, dword ptr [edx+4*edi+0x08]
        cmp      eax, 4
@@ -317,32 +314,32 @@ G_M41336_IG14:        ; bbWeight=15.84, gcrefRegs=00000000 {}, byrefRegs=0000000
        jmp      esi
                        ;; size=35 bbWeight=15.84 PerfScore 158.40
 G_M41336_IG15:        ; bbWeight=7.92, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      edx, gword ptr [ebp-0x80]
+       mov      edx, gword ptr [ebp-0x7C]
        ; gcrRegs +[edx]
        mov      esi, dword ptr [ebp-0x14]
        jmp      G_M41336_IG28
                        ;; size=11 bbWeight=7.92 PerfScore 31.68
 G_M41336_IG16:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edx] +[eax]
-       mov      edx, gword ptr [ebp-0x80]
+       mov      edx, gword ptr [ebp-0x7C]
        ; gcrRegs +[edx]
        jmp      G_M41336_IG30
                        ;; size=8 bbWeight=1 PerfScore 3.00
 G_M41336_IG17:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edx]
-       mov      edx, gword ptr [ebp-0x80]
+       mov      edx, gword ptr [ebp-0x7C]
        ; gcrRegs +[edx]
        jmp      G_M41336_IG30
                        ;; size=8 bbWeight=1 PerfScore 3.00
 G_M41336_IG18:        ; bbWeight=1, gcrefRegs=00000001 {eax}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[edx]
-       mov      edx, gword ptr [ebp-0x80]
+       mov      edx, gword ptr [ebp-0x7C]
        ; gcrRegs +[edx]
        jmp      G_M41336_IG30
                        ;; size=8 bbWeight=1 PerfScore 3.00
...

-3 (-0.90%) : 75115.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c:<.ctor>b_171(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte:this (Tier1)

@@ -10,41 +10,40 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c>
-;  V01 arg1         [V01,T08] (  3,  2   )  struct (20) [ebp+0x08]  do-not-enreg[S] ld-addr-op single-def <Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]>
-;  V02 tmp0         [V02,T15] (  2,  0   )     ref  ->  ecx         class-hnd single-def "dup spill" <<unknown class>>
+;  V01 arg1         [V01,T07] (  3,  2   )  struct (20) [ebp+0x08]  do-not-enreg[S] ld-addr-op single-def <Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]>
+;  V02 tmp0         [V02,T14] (  2,  0   )     ref  ->  ecx         class-hnd single-def "dup spill" <<unknown class>>
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 4) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]>
-;  V04 tmp2         [V04,T12] (  4,  0   )     ref  ->  ecx        
-;  V05 tmp3         [V05,T13] (  4,  0   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V06 tmp4         [V06,T09] (  2,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
+;  V04 tmp2         [V04,T11] (  4,  0   )     ref  ->  ecx        
+;  V05 tmp3         [V05,T12] (  4,  0   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V06 tmp4         [V06,T08] (  2,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
 ;* V07 tmp5         [V07    ] (  0,  0   )  struct ( 4) zero-ref    "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]>
-;  V08 tmp6         [V08,T04] (  3,  3   )   ubyte  ->  eax         "Inline return value spill temp"
+;  V08 tmp6         [V08,T03] (  3,  3   )   ubyte  ->  eax         "Inline return value spill temp"
 ;* V09 tmp7         [V09    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]>
-;  V10 tmp8         [V10,T16] (  2,  0   )     ref  ->  ebx         class-hnd single-def "dup spill" <<unknown class>>
+;  V10 tmp8         [V10,T15] (  2,  0   )     ref  ->  edi         class-hnd single-def "dup spill" <<unknown class>>
 ;* V11 tmp9         [V11    ] (  0,  0   )  struct ( 4) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]>
 ;* V12 tmp10        [V12    ] (  0,  0   )  struct ( 4) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]>
-;  V13 tmp11        [V13,T01] (  6, 16   )     ref  ->  ebx        
-;  V14 tmp12        [V14,T11] (  5,  0   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V15 tmp13        [V15,T10] (  2,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
+;  V13 tmp11        [V13,T01] (  6, 16   )     ref  ->  edi        
+;  V14 tmp12        [V14,T10] (  5,  0   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V15 tmp13        [V15,T09] (  2,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
 ;* V16 tmp14        [V16    ] (  0,  0   )  struct ( 4) zero-ref    "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]>
-;  V17 tmp15        [V17,T14] (  3,  0   )     ref  ->  eax         class-hnd exact single-def "Inlining Arg" <<unknown class>>
-;  V18 tmp16        [V18,T05] (  3,  3   )   ubyte  ->  eax         "Inline return value spill temp"
+;  V17 tmp15        [V17,T13] (  3,  0   )     ref  ->  ebx         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V18 tmp16        [V18,T04] (  3,  3   )   ubyte  ->  eax         "Inline return value spill temp"
 ;* V19 tmp17        [V19    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]>
-;  V20 tmp18        [V20,T03] (  2,  8   )     ref  ->  esi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-;  V21 tmp19        [V21,T00] (  5, 32   )     int  ->  [ebp-0x10]  "Inline stloc first use temp"
+;  V20 tmp18        [V20,T02] (  4, 16   )     ref  ->  esi         class-hnd single-def "Inline stloc first use temp" <<unknown class>>
+;  V21 tmp19        [V21,T00] (  5, 32   )     int  ->  ebx         "Inline stloc first use temp"
 ;* V22 tmp20        [V22    ] (  0,  0   )  struct ( 8) zero-ref    "Inline stloc first use temp" <Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]>
-;  V23 tmp21        [V23,T17] (  2,  0   )     ref  ->  esi         single-def "field V03.array (fldOffset=0x0)" P-INDEP
-;  V24 tmp22        [V24,T07] (  3,  2   )     ref  ->  ecx         single-def "field V07.array (fldOffset=0x0)" P-INDEP
-;  V25 tmp23        [V25,T06] (  4,  2   )     ref  ->  esi         single-def "field V09.array (fldOffset=0x0)" P-INDEP
+;  V23 tmp21        [V23,T16] (  2,  0   )     ref  ->  esi         single-def "field V03.array (fldOffset=0x0)" P-INDEP
+;  V24 tmp22        [V24,T06] (  3,  2   )     ref  ->  ecx         single-def "field V07.array (fldOffset=0x0)" P-INDEP
+;  V25 tmp23        [V25,T05] (  5,  2   )     ref  ->  esi         single-def "field V09.array (fldOffset=0x0)" P-INDEP
 ;* V26 tmp24        [V26    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V11.array (fldOffset=0x0)" P-INDEP
 ;* V27 tmp25        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V12.array (fldOffset=0x0)" P-INDEP
 ;* V28 tmp26        [V28    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V16.array (fldOffset=0x0)" P-INDEP
 ;* V29 tmp27        [V29    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V19.array (fldOffset=0x0)" P-INDEP
 ;* V30 tmp28        [V30    ] (  0,  0   )     ref  ->  zero-ref    "field V22.Modifier (fldOffset=0x0)" P-INDEP
 ;* V31 tmp29        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "field V22.IsOptional (fldOffset=0x4)" P-INDEP
-;* V32 cse0         [V32,T18] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
-;  V33 cse1         [V33,T02] (  4,  8   )     int  ->  edi         "CSE - aggressive"
+;* V32 cse0         [V32,T17] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M10801_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -52,8 +51,7 @@ G_M10801_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       push     eax
-                       ;; size=7 bbWeight=1 PerfScore 5.25
+                       ;; size=6 bbWeight=1 PerfScore 4.25
 G_M10801_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, gword ptr [ebp+0x14]
        ; gcrRegs +[ecx]
@@ -74,47 +72,43 @@ G_M10801_IG04:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        je       SHORT G_M10801_IG06
                        ;; size=7 bbWeight=1 PerfScore 2.25
 G_M10801_IG05:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       mov      edi, dword ptr [esi+0x04]
        xor      ecx, ecx
-       test     edi, edi
+       cmp      dword ptr [esi+0x04], 0
        sete     cl
        jmp      G_M10801_IG14
-                       ;; size=15 bbWeight=0 PerfScore 0.00
+                       ;; size=14 bbWeight=0 PerfScore 0.00
 G_M10801_IG06:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi]
        xor      eax, eax
                        ;; size=2 bbWeight=1 PerfScore 0.25
 G_M10801_IG07:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
-       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      20
-                       ;; size=8 bbWeight=1 PerfScore 4.50
-G_M10801_IG08:        ; bbWeight=8, gcVars=00000000 {}, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, gcvars, byref, isz
-       ; gcrRegs +[ebx esi]
-       mov      dword ptr [ebp-0x10], eax
-       lea      ecx, [8*eax]
+                       ;; size=7 bbWeight=1 PerfScore 4.00
+G_M10801_IG08:        ; bbWeight=8, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+       ; gcrRegs +[esi edi]
+       lea      ecx, [8*ebx]
        add      ecx, 8
        add      ecx, esi
        ; byrRegs +[ecx]
        push     dword ptr [ecx+0x04]
        push     gword ptr [ecx]
-       mov      ecx, gword ptr [ebx+0x04]
+       mov      ecx, gword ptr [edi+0x04]
        ; gcrRegs +[ecx]
        ; byrRegs -[ecx]
-       call     [ebx+0x0C]<unknown method>
+       call     [edi+0x0C]<unknown method>
        ; gcrRegs -[ecx]
        test     eax, eax
        jne      SHORT G_M10801_IG10
-       mov      eax, dword ptr [ebp-0x10]
-       inc      eax
-       cmp      edi, eax
+       inc      ebx
+       cmp      dword ptr [esi+0x04], ebx
        jg       SHORT G_M10801_IG08
-                       ;; size=38 bbWeight=8 PerfScore 118.00
+                       ;; size=33 bbWeight=8 PerfScore 124.00
 G_M10801_IG09:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[ebx esi]
+       ; gcrRegs -[esi edi]
        xor      eax, eax
        jmp      SHORT G_M10801_IG11
                        ;; size=4 bbWeight=1 PerfScore 2.25
@@ -168,66 +162,67 @@ G_M10801_IG14:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      ecx, 0xD1FFAB1E
        mov      edx, 104
        call     CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
-       mov      ebx, gword ptr [D1FFAB1EH]      ; static handle
-       ; gcrRegs +[ebx]
-       test     ebx, ebx
+       mov      edi, gword ptr [D1FFAB1EH]      ; static handle
+       ; gcrRegs +[edi]
+       test     edi, edi
        jne      SHORT G_M10801_IG16
        mov      ecx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs -[ebx] +[eax]
-       mov      ebx, eax
+       ; gcrRegs -[edi] +[eax]
+       mov      edi, eax
+       ; gcrRegs +[edi]
+       mov      ebx, gword ptr [D1FFAB1EH]      ; static handle
        ; gcrRegs +[ebx]
-       mov      eax, gword ptr [D1FFAB1EH]      ; static handle
-       test     eax, eax
+       test     ebx, ebx
        jne      SHORT G_M10801_IG15
        call     [System.MulticastDelegate:ThrowNullThisInDelegateToInstance()]
-       ; gcrRegs -[eax ebx esi]
+       ; gcrRegs -[eax ebx esi edi]
        int3     
-                       ;; size=61 bbWeight=0 PerfScore 0.00
-G_M10801_IG15:        ; bbWeight=0, gcrefRegs=00000049 {eax ebx esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs +[eax ebx esi]
-       lea      edx, bword ptr [ebx+0x04]
+                       ;; size=62 bbWeight=0 PerfScore 0.00
+G_M10801_IG15:        ; bbWeight=0, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[ebx esi edi]
+       lea      edx, bword ptr [edi+0x04]
        ; byrRegs +[edx]
-       call     CORINFO_HELP_ASSIGN_REF_EAX
-       ; gcrRegs -[eax]
-       ; byrRegs -[edx]
-       mov      dword ptr [ebx+0x0C], 0xD1FFAB1E
-       mov      edx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        call     CORINFO_HELP_ASSIGN_REF_EBX
+       ; gcrRegs -[ebx]
+       ; byrRegs -[edx]
+       mov      dword ptr [edi+0x0C], 0xD1FFAB1E
+       mov      edx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
+       call     CORINFO_HELP_ASSIGN_REF_EDI
                        ;; size=25 bbWeight=0 PerfScore 0.00
-G_M10801_IG16:        ; bbWeight=0, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
-       test     ebx, ebx
+G_M10801_IG16:        ; bbWeight=0, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, dword ptr [esi+0x04]
+       test     edi, edi
        jne      SHORT G_M10801_IG17
        mov      ecx, 939
        mov      edx, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
-       ; gcrRegs -[ebx esi] +[eax]
+       ; gcrRegs -[esi edi] +[eax]
        mov      ecx, eax
        ; gcrRegs +[ecx]
        call     [System.Collections.Immutable.Requires:FailArgumentNullException(System.String)]
        ; gcrRegs -[eax ecx]
        int3     
-                       ;; size=28 bbWeight=0 PerfScore 0.00
-G_M10801_IG17:        ; bbWeight=0, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs +[ebx esi]
-       xor      eax, eax
-       test     edi, edi
+                       ;; size=31 bbWeight=0 PerfScore 0.00
+G_M10801_IG17:        ; bbWeight=0, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
+       ; gcrRegs +[esi edi]
+       xor      ebx, ebx
+       cmp      dword ptr [esi+0x04], 0
        jle      G_M10801_IG09
        jmp      G_M10801_IG08
-                       ;; size=15 bbWeight=0 PerfScore 0.00
+                       ;; size=17 bbWeight=0 PerfScore 0.00
 G_M10801_IG18:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[ebx esi]
+       ; gcrRegs -[esi edi]
        mov      eax, 1
                        ;; size=5 bbWeight=0 PerfScore 0.00
 G_M10801_IG19:        ; bbWeight=0, epilog, nogc, extend
-       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      20
-                       ;; size=8 bbWeight=0 PerfScore 0.00
+                       ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 334, prolog size 7, PerfScore 137.00, instruction count 108, allocated bytes for code 334 (MethodHash=b48cd5ce) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c:<.ctor>b__17_1(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte:this (Tier1)
+Total bytes of code 331, prolog size 6, PerfScore 141.50, instruction count 103, allocated bytes for code 331 (MethodHash=b48cd5ce) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c:<.ctor>b__17_1(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte:this (Tier1)
 ; ============================================================
 

+0 (0.00%) : 89589.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.Canon]:Populate(System.String,int,int):System.Canon[]:this (Tier1)

@@ -10,7 +10,7 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  6,  4   )     ref  ->  edi         this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
-;  V01 arg1         [V01,T00] (  8,  4   )     ref  ->  esi         class-hnd single-def <System.String>
+;  V01 arg1         [V01,T00] ( 10,  4   )     ref  ->  esi         class-hnd single-def <System.String>
 ;  V02 arg2         [V02,T02] (  4,  2   )     int  ->  ebx         single-def
 ;  V03 arg3         [V03,T05] (  4,  1   )     int  ->  [ebp+0x08]  single-def
 ;  V04 loc0         [V04    ] (  5,  3   )     ref  ->  [ebp-0x14]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.__Canon[]>
@@ -21,13 +21,13 @@
 ;* V09 loc5         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <<unknown class>>
 ;* V10 loc6         [V10    ] (  0,  0   )     int  ->  zero-ref   
 ;  V11 loc7         [V11    ] (  3,  0   )   byref  ->  [ebp-0x20]  do-not-enreg[P] must-init pinned
-;  V12 loc8         [V12,T17] (  2,  0   )     int  ->  ecx        
+;  V12 loc8         [V12,T16] (  2,  0   )     int  ->  ecx        
 ;  V13 tmp0         [V13,T06] (  7,  0   )     int  ->  [ebp-0x24]  spill-single-def
-;  V14 tmp1         [V14,T12] (  3,  0   )     ref  ->  [ebp-0x3C]  class-hnd exact spill-single-def "spilling ret_expr" <System.Text.UTF8Encoding+UTF8EncodingSealed>
+;  V14 tmp1         [V14,T11] (  3,  0   )     ref  ->  [ebp-0x3C]  class-hnd exact spill-single-def "spilling ret_expr" <System.Text.UTF8Encoding+UTF8EncodingSealed>
 ;  V15 tmp2         [V15,T08] (  6,  0   )     int  ->  [ebp-0x28]  spill-single-def "guarded devirt return temp"
 ;* V16 tmp3         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Text.UTF8Encoding+UTF8EncodingSealed>
 ;  V17 tmp4         [V17,T03] (  2,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
-;* V18 tmp5         [V18,T23] (  0,  0   )     int  ->  zero-ref   
+;* V18 tmp5         [V18,T22] (  0,  0   )     int  ->  zero-ref   
 ;* V19 tmp6         [V19    ] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
 ;  V20 tmp7         [V20,T09] (  5,  0   )     int  ->  [ebp-0x2C]  "Inline stloc first use temp"
 ;* V21 tmp8         [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -39,18 +39,17 @@
 ;* V27 tmp14        [V27    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V28 tmp15        [V28,T10] (  4,  0   )     int  ->  ecx         "Inline stloc first use temp"
 ;* V29 tmp16        [V29    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V30 tmp17        [V30,T18] (  2,  0   )     int  ->  ecx         "Cast away GC"
-;  V31 tmp18        [V31,T13] (  3,  0   )     ref  ->  eax         single-def "arr expr"
-;  V32 tmp19        [V32,T19] (  2,  0   )     int  ->  ecx         "Cast away GC"
-;* V33 tmp20        [V33,T22] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V34 tmp21        [V34,T20] (  2,  0   )     int  ->  edx         "argument with side effect"
+;  V30 tmp17        [V30,T17] (  2,  0   )     int  ->  ecx         "Cast away GC"
+;  V31 tmp18        [V31,T12] (  3,  0   )     ref  ->  eax         single-def "arr expr"
+;  V32 tmp19        [V32,T18] (  2,  0   )     int  ->  ecx         "Cast away GC"
+;* V33 tmp20        [V33,T21] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V34 tmp21        [V34,T19] (  2,  0   )     int  ->  edx         "argument with side effect"
 ;  V35 GsCookie     [V35    ] (  1,  1   )     int  ->  [ebp-0x40]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
 ;  V36 LocAllocSP   [V36,T04] (  1,  1   )     int  ->  [ebp-0x10]  "LocAllocSPvar"
-;  V37 cse0         [V37,T11] (  4,  0   )     int  ->  eax         "CSE - conservative"
-;  V38 rat0         [V38,T14] (  3,  0   )     int  ->  eax         "field V29.lo (fldOffset=0x0)" P-INDEP
-;  V39 rat1         [V39,T21] (  2,  0   )     int  ->  edx         "field V29.hi (fldOffset=0x4)" P-INDEP
-;  V40 rat2         [V40,T15] (  3,  0   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
-;  V41 rat3         [V41,T16] (  3,  0   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
+;  V37 rat0         [V37,T13] (  3,  0   )     int  ->  eax         "field V29.lo (fldOffset=0x0)" P-INDEP
+;  V38 rat1         [V38,T20] (  2,  0   )     int  ->  edx         "field V29.hi (fldOffset=0x4)" P-INDEP
+;  V39 rat2         [V39,T14] (  3,  0   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
+;  V40 rat3         [V40,T15] (  3,  0   )     int  ->  eax         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 56
 
@@ -121,51 +120,50 @@ G_M22299_IG06:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
                        ;; size=5 bbWeight=0 PerfScore 0.00
 G_M22299_IG07:        ; bbWeight=0, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs +[esi edi]
-       mov      eax, dword ptr [esi+0x04]
        xor      ecx, ecx
-       test     eax, eax
+       cmp      dword ptr [esi+0x04], 0
        sete     cl
        test     ecx, ecx
        jne      SHORT G_M22299_IG03
        cmp      dword ptr [ebp+0x08], 1
        jne      SHORT G_M22299_IG08
-       test     eax, eax
-       je       SHORT G_M22299_IG06
+       cmp      dword ptr [esi+0x04], 0
+       jbe      SHORT G_M22299_IG06
        cmp      word  ptr [esi+0x08], 46
        je       SHORT G_M22299_IG08
        cmp      word  ptr [esi+0x08], 42
        je       SHORT G_M22299_IG08
        jmp      SHORT G_M22299_IG03
-                       ;; size=40 bbWeight=0 PerfScore 0.00
+                       ;; size=41 bbWeight=0 PerfScore 0.00
 G_M22299_IG08:        ; bbWeight=0, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      dword ptr [ebp-0x18], eax
+       mov      edx, dword ptr [esi+0x04]
+       mov      dword ptr [ebp-0x18], edx
        lea      ecx, bword ptr [esi+0x08]
        ; byrRegs +[ecx]
        mov      bword ptr [ebp-0x1C], ecx
        mov      ecx, bword ptr [ebp-0x1C]
        mov      dword ptr [ebp-0x24], ecx
-       mov      edx, gword ptr [D1FFAB1EH]      ; static handle
-       ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x3C], edx
+       mov      eax, gword ptr [D1FFAB1EH]      ; static handle
+       ; gcrRegs +[eax]
+       mov      gword ptr [ebp-0x3C], eax
        ; GC ptr vars +{V14}
-       cmp      byte  ptr [edx], dl
+       cmp      byte  ptr [eax], al
        test     ecx, ecx
        jne      SHORT G_M22299_IG09
        mov      ecx, 14
        ; byrRegs -[ecx]
        ; GC ptr vars -{V14}
        call     [System.ThrowHelper:ThrowArgumentNullException(int)]
-       ; gcrRegs -[edx esi edi]
+       ; gcrRegs -[eax esi edi]
        int3     
-                       ;; size=42 bbWeight=0 PerfScore 0.00
-G_M22299_IG09:        ; bbWeight=0, gcVars=00001000 {V14}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
+                       ;; size=44 bbWeight=0 PerfScore 0.00
+G_M22299_IG09:        ; bbWeight=0, gcVars=00000800 {V14}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[esi edi]
-       ; GC ptr vars +{V12 V14}
+       ; GC ptr vars +{V14}
        lea      eax, [ebp-0x34]
        push     eax
        lea      eax, [ebp-0x38]
        push     eax
-       mov      edx, dword ptr [ebp-0x18]
        call     [<unknown method>]
        sub      eax, dword ptr [ebp-0x24]
        mov      ecx, eax
@@ -189,14 +187,14 @@ G_M22299_IG09:        ; bbWeight=0, gcVars=00001000 {V14}, gcrefRegs=000000C0 {e
        mov      ecx, gword ptr [ebp-0x3C]
        ; gcrRegs +[ecx]
        mov      edx, dword ptr [ebp-0x24]
-       ; GC ptr vars -{V12 V14}
+       ; GC ptr vars -{V14}
        call     [<unknown method>]
        ; gcrRegs -[ecx]
        add      eax, dword ptr [ebp-0x2C]
        mov      dword ptr [ebp-0x2C], eax
        mov      edx, dword ptr [ebp-0x18]
        jns      SHORT G_M22299_IG11
-                       ;; size=87 bbWeight=0 PerfScore 0.00
+                       ;; size=84 bbWeight=0 PerfScore 0.00
 G_M22299_IG10:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi edi]
        call     [System.Text.Encoding:ThrowConversionOverflow()]
@@ -278,6 +276,6 @@ G_M22299_IG15:        ; bbWeight=0, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        jmp      G_M22299_IG04
                        ;; size=10 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 433, prolog size 30, PerfScore 37.25, instruction count 156, allocated bytes for code 433 (MethodHash=98ada8e4) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:Populate(System.String,int,int):System.__Canon[]:this (Tier1)
+Total bytes of code 433, prolog size 30, PerfScore 37.25, instruction count 155, allocated bytes for code 433 (MethodHash=98ada8e4) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:Populate(System.String,int,int):System.__Canon[]:this (Tier1)
 ; ============================================================
 

+8 (+0.22%) : 82042.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:AddSynthesizedReturnTypeAttributes(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,byref):this (Tier1)

@@ -9,180 +9,180 @@
 ; 48 inlinees with PGO data; 80 single block inlinees; 11 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T15] ( 32, 13   )     ref  ->  ebx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
-;  V01 arg1         [V01,T59] (  9,  2.67)     ref  ->  [ebp-0xBC]  class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder>
-;  V02 arg2         [V02,T108] (  7,  1.42)   byref  ->  [ebp+0x08]  single-def
+;  V00 this         [V00,T16] ( 32, 13   )     ref  ->  ebx         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
+;  V01 arg1         [V01,T58] (  9,  2.67)     ref  ->  [ebp-0xB8]  class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder>
+;  V02 arg2         [V02,T107] (  7,  1.42)   byref  ->  [ebp+0x08]  single-def
 ;* V03 loc0         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.CSharpCompilation>
 ;  V04 loc1         [V04    ] ( 19,  7   )  struct (12) [ebp-0x18]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;* V05 loc2         [V05    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]>
 ;* V06 tmp0         [V06    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Nullable`1[ubyte]>
 ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
 ;* V08 tmp2         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
-;  V09 tmp3         [V09,T149] (  2,  0   )     ref  ->  [ebp-0xC0]  class-hnd spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-;  V10 tmp4         [V10,T167] (  2,  0   )     int  ->  [ebp-0x1C]  spill-single-def "non-inline candidate call"
+;  V09 tmp3         [V09,T148] (  2,  0   )     ref  ->  [ebp-0xBC]  class-hnd spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V10 tmp4         [V10,T166] (  2,  0   )     int  ->  [ebp-0x1C]  spill-single-def "non-inline candidate call"
 ;* V11 tmp5         [V11    ] (  0,  0   )     int  ->  zero-ref    "non-inline candidate call"
-;  V12 tmp6         [V12,T41] ( 17,  6.50)     ref  ->  [ebp-0xC4]  "guarded devirt return temp"
+;  V12 tmp6         [V12,T40] ( 17,  6.50)     ref  ->  [ebp-0xC0]  "guarded devirt return temp"
 ;* V13 tmp7         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol+SourceOrdinaryMethodSymbolSimple>
 ;* V14 tmp8         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol+SourceOrdinaryMethodSymbolSimple>
 ;  V15 tmp9         [V15    ] (  5,  0   )  struct ( 4) [ebp-0x20]  do-not-enreg[SB] must-init "guarded devirt return temp" <System.Nullable`1[ubyte]>
 ;* V16 tmp10        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedInstanceConstructor>
-;  V17 tmp11        [V17,T84] (  2,  2   )     int  ->  eax         "guarded devirt return temp"
+;  V17 tmp11        [V17,T83] (  2,  2   )     int  ->  eax         "guarded devirt return temp"
 ;* V18 tmp12        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedInstanceConstructor>
-;  V19 tmp13        [V19,T93] (  3,  2   )     ref  ->  ecx         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-;  V20 tmp14        [V20,T42] (  5,  6   )     ref  ->  ecx         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+Extensions>
+;  V19 tmp13        [V19,T92] (  3,  2   )     ref  ->  ecx         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V20 tmp14        [V20,T41] (  5,  6   )     ref  ->  ecx         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+Extensions>
 ;* V21 tmp15        [V21    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V22 tmp16        [V22,T94] (  3,  2   )     ref  ->  ecx         "guarded devirt return temp"
+;  V22 tmp16        [V22,T93] (  3,  2   )     ref  ->  ecx         "guarded devirt return temp"
 ;* V23 tmp17        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+NonLazyType>
-;  V24 tmp18        [V24,T64] (  2,  4   )     ref  ->  ecx         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V24 tmp18        [V24,T63] (  2,  4   )     ref  ->  ecx         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V25 tmp19        [V25    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V26 tmp20        [V26,T65] (  2,  4   )     ref  ->  edx         class-hnd exact single-def "Inlining Arg" <<unknown class>>
-;  V27 tmp21        [V27,T111] (  3,  1   )     ref  ->  [ebp-0xC8]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-;  V28 tmp22        [V28,T43] (  5,  6   )     ref  ->  ecx         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+Extensions>
+;  V26 tmp20        [V26,T64] (  2,  4   )     ref  ->  edx         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V27 tmp21        [V27,T110] (  3,  1   )     ref  ->  [ebp-0xC4]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V28 tmp22        [V28,T42] (  5,  6   )     ref  ->  ecx         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+Extensions>
 ;* V29 tmp23        [V29    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V30 tmp24        [V30,T95] (  3,  2   )     ref  ->  registers   "guarded devirt return temp"
+;  V30 tmp24        [V30,T94] (  3,  2   )     ref  ->  registers   "guarded devirt return temp"
 ;* V31 tmp25        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+NonLazyType>
-;  V32 tmp26        [V32,T66] (  2,  4   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-;  V33 tmp27        [V33,T113] (  2,  0   )   ubyte  ->  eax         "Inline return value spill temp"
-;  V34 tmp28        [V34,T101] (  2,  2   )   ubyte  ->  ecx         "Inline return value spill temp"
-;  V35 tmp29        [V35,T31] (  4,  8   )     ref  ->  [ebp-0xCC]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol>
-;  V36 tmp30        [V36,T102] (  3,  2   )   ubyte  ->  ecx         "Inline return value spill temp"
+;  V32 tmp26        [V32,T65] (  2,  4   )     ref  ->  edi         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V33 tmp27        [V33,T112] (  2,  0   )   ubyte  ->  eax         "Inline return value spill temp"
+;  V34 tmp28        [V34,T100] (  2,  2   )   ubyte  ->  ecx         "Inline return value spill temp"
+;  V35 tmp29        [V35,T31] (  4,  8   )     ref  ->  [ebp-0xC8]  class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol>
+;  V36 tmp30        [V36,T101] (  3,  2   )   ubyte  ->  ecx         "Inline return value spill temp"
 ;* V37 tmp31        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
-;  V38 tmp32        [V38,T103] (  3,  2   )     int  ->  eax         "guarded devirt return temp"
+;  V38 tmp32        [V38,T102] (  3,  2   )     int  ->  eax         "guarded devirt return temp"
 ;* V39 tmp33        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol+PENamedTypeSymbolNonGeneric>
-;  V40 tmp34        [V40,T76] (  2,  2   )     int  ->  eax         "guarded devirt return temp"
+;  V40 tmp34        [V40,T75] (  2,  2   )     int  ->  eax         "guarded devirt return temp"
 ;* V41 tmp35        [V41    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol+PENamedTypeSymbolNonGeneric>
-;  V42 tmp36        [V42,T29] (  8,  8   )     ref  ->  [ebp-0xD0]  class-hnd spill-single-def "spilling ret_expr" <Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol>
+;  V42 tmp36        [V42,T29] (  8,  8   )     ref  ->  [ebp-0xCC]  class-hnd spill-single-def "spilling ret_expr" <Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol>
 ;  V43 tmp37        [V43,T28] ( 11,  8   )     ref  ->  edi         "guarded devirt return temp"
 ;* V44 tmp38        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEAssemblySymbol>
 ;  V45 tmp39        [V45    ] (  3,  0   )  struct (68) [ebp-0x64]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.CodeAnalysis.MetadataTypeName>
 ;* V46 tmp40        [V46    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ModuleSymbol]>
-;  V47 tmp41        [V47,T131] (  4,  0   )     ref  ->  [ebp-0xD4]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.ModuleSymbol>
-;  V48 tmp42        [V48,T126] (  6,  0   )     ref  ->  [ebp-0xD8]  class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
-;  V49 tmp43        [V49,T140] (  3,  0   )     ref  ->  [ebp-0xDC]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Symbols.MissingMetadataTypeSymbol+TopLevel>
-;  V50 tmp44        [V50,T96] (  3,  2   )     ref  ->  eax         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbol>
-;  V51 tmp45        [V51,T61] (  3,  4   )     ref  ->  eax         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.CSharpCompilation>
-;  V52 tmp46        [V52,T114] (  2,  0   )   ubyte  ->  eax         "Inline return value spill temp"
+;  V47 tmp41        [V47,T130] (  4,  0   )     ref  ->  [ebp-0xD0]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.ModuleSymbol>
+;  V48 tmp42        [V48,T125] (  6,  0   )     ref  ->  [ebp-0xD4]  class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
+;  V49 tmp43        [V49,T139] (  3,  0   )     ref  ->  [ebp-0xD8]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Symbols.MissingMetadataTypeSymbol+TopLevel>
+;  V50 tmp44        [V50,T95] (  3,  2   )     ref  ->  eax         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbol>
+;  V51 tmp45        [V51,T60] (  3,  4   )     ref  ->  eax         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.CSharpCompilation>
+;  V52 tmp46        [V52,T113] (  2,  0   )   ubyte  ->  eax         "Inline return value spill temp"
 ;* V53 tmp47        [V53    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V54 tmp48        [V54,T141] (  3,  0   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.SmallDictionary`2[int,ubyte]>
+;  V54 tmp48        [V54,T140] (  3,  0   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.SmallDictionary`2[int,ubyte]>
 ;* V55 tmp49        [V55    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V56 tmp50        [V56    ] (  1,  0   )   ubyte  ->  [ebp-0x68]  do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;* V57 tmp51        [V57    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling ret_expr" <Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol>
-;  V58 tmp52        [V58,T97] (  3,  2   )     ref  ->  ecx         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-;  V59 tmp53        [V59,T44] (  5,  6   )     ref  ->  ecx         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+Extensions>
+;  V58 tmp52        [V58,T96] (  3,  2   )     ref  ->  ecx         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V59 tmp53        [V59,T43] (  5,  6   )     ref  ->  ecx         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+Extensions>
 ;* V60 tmp54        [V60    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V61 tmp55        [V61,T98] (  3,  2   )     ref  ->  ecx         "guarded devirt return temp"
+;  V61 tmp55        [V61,T97] (  3,  2   )     ref  ->  ecx         "guarded devirt return temp"
 ;* V62 tmp56        [V62    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+NonLazyType>
-;  V63 tmp57        [V63,T67] (  2,  4   )     ref  ->  ecx         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-;  V64 tmp58        [V64,T137] (  2,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
+;  V63 tmp57        [V63,T66] (  2,  4   )     ref  ->  ecx         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V64 tmp58        [V64,T136] (  2,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
 ;* V65 tmp59        [V65    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbol>
-;  V66 tmp60        [V66,T60] (  6,  4   )     ref  ->  edi         class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.ModuleSymbol>
+;  V66 tmp60        [V66,T59] (  6,  4   )     ref  ->  edi         class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.ModuleSymbol>
 ;  V67 tmp61        [V67    ] (  2,  0   )   ubyte  ->  [ebp-0x6C]  do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
 ;* V68 tmp62        [V68    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol+SourceOrdinaryMethodSymbolSimple>
-;  V69 tmp63        [V69,T89] (  6,  2   )     ref  ->  ecx         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
-;  V70 tmp64        [V70,T112] (  3,  1   )     ref  ->  edi         "guarded devirt return temp"
+;  V69 tmp63        [V69,T88] (  6,  2   )     ref  ->  ecx         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
+;  V70 tmp64        [V70,T111] (  3,  1   )     ref  ->  edi         "guarded devirt return temp"
 ;* V71 tmp65        [V71    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol>
-;  V72 tmp66        [V72,T68] (  2,  4   )     ref  ->  ecx         class-hnd exact single-def "spilling ret_expr" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol>
+;  V72 tmp66        [V72,T67] (  2,  4   )     ref  ->  ecx         class-hnd exact single-def "spilling ret_expr" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol>
 ;* V73 tmp67        [V73    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ModuleSymbol]>
 ;* V74 tmp68        [V74    ] (  0,  0   )  struct ( 4) zero-ref    single-def "guarded devirt return temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ModuleSymbol]>
 ;* V75 tmp69        [V75    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol>
-;  V76 tmp70        [V76,T110] (  3,  0   )   ubyte  ->  edx         "Inline return value spill temp"
-;  V77 tmp71        [V77,T45] (  4,  6   )     ref  ->  ecx         class-hnd single-def "Inlining Arg" <System.__Canon>
-;  V78 tmp72        [V78,T132] (  4,  0   )     ref  ->  edi         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol>
+;  V76 tmp70        [V76,T109] (  3,  0   )   ubyte  ->  edx         "Inline return value spill temp"
+;  V77 tmp71        [V77,T44] (  4,  6   )     ref  ->  ecx         class-hnd single-def "Inlining Arg" <System.__Canon>
+;  V78 tmp72        [V78,T131] (  4,  0   )     ref  ->  edi         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol>
 ;* V79 tmp73        [V79    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Nullable`1[ubyte]>
-;  V80 tmp74        [V80,T127] (  6,  0   )     ref  ->  ecx         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
+;  V80 tmp74        [V80,T126] (  6,  0   )     ref  ->  ecx         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
 ;* V81 tmp75        [V81    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V82 tmp76        [V82    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[ubyte]>
 ;  V83 tmp77        [V83    ] (  3,  0   )  struct ( 4) [ebp-0x70]  do-not-enreg[SB] must-init "guarded devirt return temp" <System.Nullable`1[ubyte]>
 ;* V84 tmp78        [V84    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceModuleSymbol>
 ;* V85 tmp79        [V85    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[ubyte]>
-;  V86 tmp80        [V86,T83] (  4,  2.57)     ref  ->  ebx         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedAttributeData>
-;  V87 tmp81        [V87,T150] (  2,  0   )     ref  ->  [ebp-0xE0]  class-hnd spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.ModuleSymbol>
+;  V86 tmp80        [V86,T82] (  4,  2.57)     ref  ->  ebx         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedAttributeData>
+;  V87 tmp81        [V87,T149] (  2,  0   )     ref  ->  [ebp-0xDC]  class-hnd spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.ModuleSymbol>
 ;  V88 tmp82        [V88,T22] (  9, 10.95)     ref  ->  ebx         class-hnd exact single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
 ;* V89 tmp83        [V89    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;* V90 tmp84        [V90    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Nullable`1[ubyte]>
-;  V91 tmp85        [V91,T130] (  5,  0   )     ref  ->  edi         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
+;  V91 tmp85        [V91,T129] (  5,  0   )     ref  ->  edi         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
 ;* V92 tmp86        [V92    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]>
-;  V93 tmp87        [V93,T151] (  2,  0   )     ref  ->  [ebp-0xE4]  class-hnd spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol>
+;  V93 tmp87        [V93,T150] (  2,  0   )     ref  ->  [ebp-0xE0]  class-hnd spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol>
 ;  V94 tmp88        [V94    ] (  2,  0   )  struct (12) [ebp-0x7C]  do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V95 tmp89        [V95,T152] (  2,  0   )     ref  ->  [ebp-0xE8]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.ArrayTypeSymbol>
-;  V96 tmp90        [V96,T153] (  2,  0   )     ref  ->  edx         class-hnd single-def "dup spill" <<unknown class>>
+;  V95 tmp89        [V95,T151] (  2,  0   )     ref  ->  [ebp-0xE4]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.ArrayTypeSymbol>
+;  V96 tmp90        [V96,T152] (  2,  0   )     ref  ->  edx         class-hnd single-def "dup spill" <<unknown class>>
 ;* V97 tmp91        [V97    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V98 tmp92        [V98,T133] (  4,  0   )     ref  ->  edx        
+;  V98 tmp92        [V98,T132] (  4,  0   )     ref  ->  edx        
 ;* V99 tmp93        [V99    ] (  0,  0   )  struct ( 4) zero-ref    single-def "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant]>
 ;  V100 tmp94       [V100    ] (  2,  0   )  struct (12) [ebp-0x88]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.TypedConstant>
 ;* V101 tmp95       [V101    ] (  0,  0   )  struct ( 4) zero-ref    single-def "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.TypedConstant]>
-;  V102 tmp96       [V102,T92] (  4,  2   )     ref  ->  [ebp-0xEC]  class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedAttributeData>
-;  V103 tmp97       [V103,T134] (  4,  0   )     ref  ->  [ebp-0xF0]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
-;  V104 tmp98       [V104,T135] (  4,  0   )     ref  ->  ebx         "guarded devirt return temp"
+;  V102 tmp96       [V102,T91] (  4,  2   )     ref  ->  [ebp-0xE8]  class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedAttributeData>
+;  V103 tmp97       [V103,T133] (  4,  0   )     ref  ->  [ebp-0xEC]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
+;  V104 tmp98       [V104,T134] (  4,  0   )     ref  ->  ebx         "guarded devirt return temp"
 ;* V105 tmp99       [V105    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedInstanceConstructor>
-;  V106 tmp100      [V106,T128] (  6,  0   )     ref  ->  [ebp-0xF4]  class-hnd spill-single-def "Inlining Arg" <System.__Canon>
-;  V107 tmp101      [V107,T154] (  2,  0   )     ref  ->  ecx         class-hnd exact single-def "spilling ret_expr" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol>
+;  V106 tmp100      [V106,T127] (  6,  0   )     ref  ->  [ebp-0xF0]  class-hnd spill-single-def "Inlining Arg" <System.__Canon>
+;  V107 tmp101      [V107,T153] (  2,  0   )     ref  ->  ecx         class-hnd exact single-def "spilling ret_expr" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol>
 ;* V108 tmp102      [V108    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ModuleSymbol]>
 ;* V109 tmp103      [V109    ] (  0,  0   )  struct ( 4) zero-ref    single-def "guarded devirt return temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ModuleSymbol]>
 ;* V110 tmp104      [V110    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol>
-;  V111 tmp105      [V111,T129] (  6,  0   )     ref  ->  ebx         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
-;  V112 tmp106      [V112,T142] (  3,  0   )     ref  ->  ebx         "guarded devirt return temp"
+;  V111 tmp105      [V111,T128] (  6,  0   )     ref  ->  ebx         class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
+;  V112 tmp106      [V112,T141] (  3,  0   )     ref  ->  ebx         "guarded devirt return temp"
 ;* V113 tmp107      [V113    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol>
 ;* V114 tmp108      [V114    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
-;  V115 tmp109      [V115,T91] (  5,  2   )     ref  ->  ebx         class-hnd exact single-def "Inlining Arg" <<unknown class>>
-;  V116 tmp110      [V116,T90] (  6,  2   )     ref  ->  [ebp-0xF8]  class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
+;  V115 tmp109      [V115,T90] (  5,  2   )     ref  ->  ebx         class-hnd exact single-def "Inlining Arg" <<unknown class>>
+;  V116 tmp110      [V116,T89] (  6,  2   )     ref  ->  [ebp-0xF4]  class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
 ;* V117 tmp111      [V117    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
-;  V118 tmp112      [V118,T143] (  3,  0   )   byref  ->  eax         single-def "impAppendStmt"
+;  V118 tmp112      [V118,T142] (  3,  0   )   byref  ->  eax         single-def "impAppendStmt"
 ;* V119 tmp113      [V119    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
-;  V120 tmp114      [V120,T71] (  3,  3   )     ref  ->  ecx         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
-;  V121 tmp115      [V121,T20] (  4, 12   )     ref  ->  [ebp-0xFC]  class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V120 tmp114      [V120,T70] (  3,  3   )     ref  ->  ecx         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
+;  V121 tmp115      [V121,T15] (  5, 20   )     ref  ->  [ebp-0xF8]  class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
 ;  V122 tmp116      [V122,T05] (  6, 36   )     int  ->  [ebp-0x8C]  "Inline stloc first use temp"
-;  V123 tmp117      [V123,T11] (  5, 25   )     ref  ->  edi         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
+;  V123 tmp117      [V123,T11] (  5, 25   )     ref  ->  [ebp-0xFC]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
 ;* V124 tmp118      [V124    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
-;  V125 tmp119      [V125,T12] (  3, 24   )   byref  ->  esi         "impAppendStmt"
-;* V126 tmp120      [V126,T33] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
+;  V125 tmp119      [V125,T12] (  3, 24   )   byref  ->  edi         "impAppendStmt"
+;* V126 tmp120      [V126,T32] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[ubyte]>
 ;* V127 tmp121      [V127    ] (  0,  0   )  struct (12) zero-ref    ld-addr-op "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;  V128 tmp122      [V128,T04] ( 17, 50   )     ref  ->  edi         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V129 tmp123      [V129,T06] (  3, 36   )     int  ->  ecx         "fgMakeTemp is creating a new local variable"
 ;  V130 tmp124      [V130,T03] (  5, 56   )     ref  ->  eax         class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.Symbols.ArrayTypeSymbol>
 ;  V131 tmp125      [V131,T21] (  3, 12   )   ubyte  ->  [ebp-0x90]  spill-single-def "Inline stloc first use temp"
-;  V132 tmp126      [V132,T16] (  4, 13   )   ubyte  ->  [ebp-0x94]  "Inline stloc first use temp"
-;  V133 tmp127      [V133,T99] (  3,  2   )     ref  ->  edi         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V132 tmp126      [V132,T17] (  4, 13   )   ubyte  ->  [ebp-0x94]  "Inline stloc first use temp"
+;  V133 tmp127      [V133,T98] (  3,  2   )     ref  ->  edi         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V134 tmp128      [V134    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+Extensions>
 ;* V135 tmp129      [V135    ] (  0,  0   )     ref  ->  zero-ref   
-;  V136 tmp130      [V136,T100] (  3,  2   )     ref  ->  edi         "guarded devirt return temp"
+;  V136 tmp130      [V136,T99] (  3,  2   )     ref  ->  edi         "guarded devirt return temp"
 ;* V137 tmp131      [V137    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+NonLazyType>
 ;* V138 tmp132      [V138    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
-;  V139 tmp133      [V139,T17] (  3, 13   )   ubyte  ->  eax         "Inline return value spill temp"
-;  V140 tmp134      [V140,T46] (  3,  6   )     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
-;  V141 tmp135      [V141,T78] (  4,  2.67)     int  ->  eax         "guarded devirt return temp"
+;  V139 tmp133      [V139,T18] (  3, 13   )   ubyte  ->  eax         "Inline return value spill temp"
+;  V140 tmp134      [V140,T45] (  3,  6   )     ref  ->  eax         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
+;  V141 tmp135      [V141,T77] (  4,  2.67)     int  ->  eax         "guarded devirt return temp"
 ;* V142 tmp136      [V142    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol+PENamedTypeSymbolNonGeneric>
-;* V143 tmp137      [V143,T57] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V143 tmp137      [V143,T56] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V144 tmp138      [V144,T00] (  6,164   )     ref  ->  [ebp-0x100]  class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol>
 ;* V145 tmp139      [V145    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
-;  V146 tmp140      [V146,T79] (  3,  2.67)   ubyte  ->  eax         "Inline stloc first use temp"
+;  V146 tmp140      [V146,T78] (  3,  2.67)   ubyte  ->  eax         "Inline stloc first use temp"
 ;  V147 tmp141      [V147,T07] (  8, 34   )     ref  ->  [ebp-0x104]  class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[ubyte]>
 ;  V148 tmp142      [V148,T24] (  5, 10.29)     int  ->  [ebp-0x98]  spill-single-def "Inline stloc first use temp"
 ;* V149 tmp143      [V149    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V150 tmp144      [V150,T53] (  8,  5.50)     int  ->  [ebp-0x9C]  "Inline return value spill temp"
-;  V151 tmp145      [V151,T54] (  3,  5.43)     int  ->  esi         "Inlining Arg"
+;  V150 tmp144      [V150,T52] (  8,  5.50)     int  ->  [ebp-0x9C]  "Inline return value spill temp"
+;  V151 tmp145      [V151,T53] (  3,  5.43)     int  ->  esi         "Inlining Arg"
 ;  V152 tmp146      [V152,T30] (  5,  8   )   byref  ->  [ebp-0x108]  spill-single-def "Inlining Arg"
-;  V153 tmp147      [V153,T55] (  5,  5   )     ref  ->  esi         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V154 tmp148      [V154,T72] (  3,  3   )     ref  ->  [ebp-0x10C]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
-;  V155 tmp149      [V155,T62] (  3,  4   )   byref  ->  ecx         "impAppendStmt"
-;  V156 tmp150      [V156,T63] (  3,  4   )   byref  ->  edx         "impAppendStmt"
-;  V157 tmp151      [V157,T85] (  4,  2.50)     int  ->  esi         "Inline return value spill temp"
-;  V158 tmp152      [V158,T56] (  3,  5   )     int  ->  esi         "Inlining Arg"
+;  V153 tmp147      [V153,T54] (  5,  5   )     ref  ->  esi         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V154 tmp148      [V154,T71] (  3,  3   )     ref  ->  [ebp-0x10C]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V155 tmp149      [V155,T61] (  3,  4   )   byref  ->  ecx         "impAppendStmt"
+;  V156 tmp150      [V156,T62] (  3,  4   )   byref  ->  edx         "impAppendStmt"
+;  V157 tmp151      [V157,T84] (  4,  2.50)     int  ->  esi         "Inline return value spill temp"
+;  V158 tmp152      [V158,T55] (  3,  5   )     int  ->  esi         "Inlining Arg"
 ;* V159 tmp153      [V159    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V160 tmp154      [V160    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[ubyte]>
 ;* V161 tmp155      [V161    ] (  0,  0   )  struct ( 4) zero-ref    "Inline return value spill temp" <System.Nullable`1[ubyte]>
-;  V162 tmp156      [V162,T38] (  3,  6.67)     int  ->  [ebp-0xA0]  spill-single-def "Inline stloc first use temp"
-;  V163 tmp157      [V163,T39] (  3,  6.67)   ubyte  ->  edx         single-def "Inline stloc first use temp"
+;  V162 tmp156      [V162,T37] (  3,  6.67)     int  ->  [ebp-0xA0]  spill-single-def "Inline stloc first use temp"
...

+9 (+0.27%) : 106617.dasm - System.Numerics.BigIntegerCalculator:Divide(System.ReadOnlySpan1[uint],System.ReadOnlySpan1[uint],System.Span`1[uint]) (Tier1)

@@ -9,31 +9,31 @@
 ; 13 inlinees with PGO data; 41 single block inlinees; 15 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T85] (  2,  2.00)  struct ( 8) [ebp+0x18]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[uint]>
-;  V01 arg1         [V01,T86] (  2,  2.00)  struct ( 8) [ebp+0x10]  do-not-enreg[S] single-def <System.ReadOnlySpan`1[uint]>
-;  V02 arg2         [V02,T87] (  2,  2.00)  struct ( 8) [ebp+0x08]  do-not-enreg[S] single-def <System.Span`1[uint]>
-;  V03 loc0         [V03,T43] ( 14,  8.97)     ref  ->  [ebp-0x11C]  class-hnd <uint[]>
+;  V00 arg0         [V00,T83] (  2,  2.00)  struct ( 8) [ebp+0x18]  do-not-enreg[SF] ld-addr-op single-def <System.ReadOnlySpan`1[uint]>
+;  V01 arg1         [V01,T84] (  2,  2.00)  struct ( 8) [ebp+0x10]  do-not-enreg[S] single-def <System.ReadOnlySpan`1[uint]>
+;  V02 arg2         [V02,T85] (  2,  2.00)  struct ( 8) [ebp+0x08]  do-not-enreg[S] single-def <System.Span`1[uint]>
+;  V03 loc0         [V03,T43] ( 14,  8.97)     ref  ->  [ebp-0x114]  class-hnd <uint[]>
 ;* V04 loc1         [V04    ] (  0,  0   )  struct ( 8) zero-ref    <System.Span`1[uint]>
 ;* V05 loc2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Span`1[uint]>
 ;* V06 loc3         [V06    ] (  0,  0   )  struct ( 8) zero-ref    <System.Span`1[uint]>
 ;  V07 tmp0         [V07,T45] (  3,  6.00)     ref  ->  edi         class-hnd exact single-def "spilling ret_expr" <System.Buffers.SharedArrayPool`1[uint]>
 ;* V08 tmp1         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <uint[]>
-;  V09 tmp2         [V09,T62] (  2,  4.00)     ref  ->  ebx         class-hnd exact single-def "spilling ret_expr" <System.Buffers.SharedArrayPool`1[uint]>
+;  V09 tmp2         [V09,T60] (  2,  4.00)     ref  ->  ebx         class-hnd exact single-def "spilling ret_expr" <System.Buffers.SharedArrayPool`1[uint]>
 ;* V10 tmp3         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
-;  V11 tmp4         [V11,T78] (  3,  2.00)     ref  ->  edi         "guarded devirt return temp"
-;  V12 tmp5         [V12,T77] (  7,  2.00)     ref  ->  registers   class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[uint]>
-;  V13 tmp6         [V13,T82] (  8,  2.00)     ref  ->  ebx         class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[uint]>
-;  V14 tmp7         [V14,T98] (  2,  0.00)     int  ->  ebx         "Inlining Arg"
-;  V15 tmp8         [V15,T69] (  8,  3.00)     ref  ->  [ebp-0x120]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.ArrayPoolEventSource>
+;  V11 tmp4         [V11,T76] (  3,  2.00)     ref  ->  edi         "guarded devirt return temp"
+;  V12 tmp5         [V12,T75] (  7,  2.00)     ref  ->  registers   class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[uint]>
+;  V13 tmp6         [V13,T80] (  8,  2.00)     ref  ->  ebx         class-hnd exact single-def "guarded devirt this exact temp" <System.Buffers.SharedArrayPool`1[uint]>
+;  V14 tmp7         [V14,T96] (  2,  0.00)     int  ->  ebx         "Inlining Arg"
+;  V15 tmp8         [V15,T67] (  8,  3.00)     ref  ->  [ebp-0x118]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Buffers.ArrayPoolEventSource>
 ;  V16 tmp9         [V16,T54] (  6,  4.00)     int  ->  [ebp-0x14]  "Inlining Arg"
 ;  V17 tmp10        [V17,T47] ( 10,  5.00)     int  ->  [ebp-0x18]  spill-single-def "Inline stloc first use temp"
 ;  V18 tmp11        [V18,T49] (  5,  5.00)     ref  ->  ecx         class-hnd exact single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V19 tmp12        [V19,T101] (  3,  0.00)     ref  ->  ecx         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
-;  V20 tmp13        [V20,T48] ( 14,  5.00)     ref  ->  [ebp-0x124]  class-hnd "Inline stloc first use temp" <uint[]>
-;  V21 tmp14        [V21,T124] (  3,  0   )     int  ->  [ebp-0x1C]  spill-single-def "Inline stloc first use temp"
-;  V22 tmp15        [V22,T138] (  2,  0   )     int  ->  ecx         "impAppendStmt"
-;  V23 tmp16        [V23,T139] (  2,  0   )     int  ->  [ebp-0x20]  spill-single-def "impAppendStmt"
-;  V24 tmp17        [V24,T140] (  2,  0   )     int  ->  [ebp-0x24]  spill-single-def "impAppendStmt"
+;  V19 tmp12        [V19,T99] (  3,  0.00)     ref  ->  ecx         class-hnd exact single-def "Inline stloc first use temp" <<unknown class>>
+;  V20 tmp13        [V20,T48] ( 14,  5.00)     ref  ->  [ebp-0x11C]  class-hnd "Inline stloc first use temp" <uint[]>
+;  V21 tmp14        [V21,T122] (  3,  0   )     int  ->  [ebp-0x1C]  spill-single-def "Inline stloc first use temp"
+;  V22 tmp15        [V22,T136] (  2,  0   )     int  ->  ecx         "impAppendStmt"
+;  V23 tmp16        [V23,T137] (  2,  0   )     int  ->  [ebp-0x20]  spill-single-def "impAppendStmt"
+;  V24 tmp17        [V24,T138] (  2,  0   )     int  ->  [ebp-0x24]  spill-single-def "impAppendStmt"
 ;* V25 tmp18        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V26 tmp19        [V26    ] (  0,  0   )     int  ->  zero-ref   
 ;* V27 tmp20        [V27    ] (  0,  0   )     int  ->  zero-ref   
@@ -44,33 +44,33 @@
 ;* V32 tmp25        [V32    ] (  0,  0   )     int  ->  zero-ref   
 ;* V33 tmp26        [V33    ] (  0,  0   )     int  ->  zero-ref   
 ;* V34 tmp27        [V34    ] (  0,  0   )     int  ->  zero-ref   
-;  V35 tmp28        [V35,T141] (  2,  0   )     int  ->  edx        
-;  V36 tmp29        [V36,T102] (  3,  0.00)     ref  ->  eax         class-hnd exact single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions>
+;  V35 tmp28        [V35,T139] (  2,  0   )     int  ->  edx        
+;  V36 tmp29        [V36,T100] (  3,  0.00)     ref  ->  eax         class-hnd exact single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions>
 ;* V37 tmp30        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <uint[]>
-;  V38 tmp31        [V38,T142] (  2,  0   )     int  ->  [ebp-0x28]  spill-single-def "impAppendStmt"
-;  V39 tmp32        [V39,T143] (  2,  0   )     int  ->  ecx         "impAppendStmt"
+;  V38 tmp31        [V38,T140] (  2,  0   )     int  ->  [ebp-0x28]  spill-single-def "impAppendStmt"
+;  V39 tmp32        [V39,T141] (  2,  0   )     int  ->  ecx         "impAppendStmt"
 ;* V40 tmp33        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <uint[]>
 ;  V41 tmp34        [V41,T55] (  2,  4.00)     int  ->  [ebp-0x2C]  spill-single-def "impAppendStmt"
 ;  V42 tmp35        [V42,T56] (  2,  4.00)     int  ->  ecx         "impAppendStmt"
 ;* V43 tmp36        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V44 tmp37        [V44    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V45 tmp38        [V45,T120] (  3,  0   )     ref  ->  eax         class-hnd "Inline return value spill temp" <System.Array>
-;  V46 tmp39        [V46,T109] (  5,  0   )     ref  ->  [ebp-0x128]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
-;  V47 tmp40        [V47,T107] (  7,  0   )     int  ->  [ebp-0x30]  "Inline stloc first use temp"
-;  V48 tmp41        [V48,T116] (  4,  0   )     int  ->  [ebp-0x34]  "Inline stloc first use temp"
+;  V45 tmp38        [V45,T118] (  3,  0   )     ref  ->  eax         class-hnd "Inline return value spill temp" <System.Array>
+;  V46 tmp39        [V46,T107] (  5,  0   )     ref  ->  [ebp-0x120]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V47 tmp40        [V47,T105] (  7,  0   )     int  ->  [ebp-0x30]  "Inline stloc first use temp"
+;  V48 tmp41        [V48,T114] (  4,  0   )     int  ->  [ebp-0x34]  "Inline stloc first use temp"
 ;* V49 tmp42        [V49    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "dup spill" <System.Array>
 ;* V50 tmp43        [V50    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Array>
-;  V51 tmp44        [V51,T144] (  2,  0   )     int  ->  eax         "dup spill"
-;  V52 tmp45        [V52,T125] (  3,  0   )     int  ->  [ebp-0x38]  "Inline return value spill temp"
-;  V53 tmp46        [V53,T126] (  3,  0   )     int  ->  edx         "Inline return value spill temp"
-;  V54 tmp47        [V54,T117] (  4,  0   )     int  ->  [ebp-0x3C]  spill-single-def "dup spill"
+;  V51 tmp44        [V51,T142] (  2,  0   )     int  ->  eax         "dup spill"
+;  V52 tmp45        [V52,T123] (  3,  0   )     int  ->  [ebp-0x38]  "Inline return value spill temp"
+;  V53 tmp46        [V53,T124] (  3,  0   )     int  ->  edx         "Inline return value spill temp"
+;  V54 tmp47        [V54,T115] (  4,  0   )     int  ->  [ebp-0x3C]  spill-single-def "dup spill"
 ;* V55 tmp48        [V55    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V56 tmp49        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Array>
-;  V57 tmp50        [V57,T113] (  4,  0   )     ref  ->  [ebp-0x12C]  class-hnd "Inline stloc first use temp" <System.Array>
-;  V58 tmp51        [V58,T106] (  7,  0   )     ref  ->  [ebp-0x130]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
-;  V59 tmp52        [V59,T114] (  4,  0   )     ref  ->  ecx         class-hnd "Inline stloc first use temp" <<unknown class>>
-;  V60 tmp53        [V60,T111] (  5,  0   )     int  ->  edx         "Inline stloc first use temp"
-;  V61 tmp54        [V61,T103] (  3,  0.00)     int  ->  [ebp-0x40]  spill-single-def "Inline stloc first use temp"
+;  V57 tmp50        [V57,T111] (  4,  0   )     ref  ->  [ebp-0x124]  class-hnd "Inline stloc first use temp" <System.Array>
+;  V58 tmp51        [V58,T104] (  7,  0   )     ref  ->  [ebp-0x128]  class-hnd exact spill-single-def "Inlining Arg" <System.Buffers.SharedArrayPoolPartitions+Partition>
+;  V59 tmp52        [V59,T112] (  4,  0   )     ref  ->  ecx         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V60 tmp53        [V60,T109] (  5,  0   )     int  ->  edx         "Inline stloc first use temp"
+;  V61 tmp54        [V61,T101] (  3,  0.00)     int  ->  [ebp-0x40]  spill-single-def "Inline stloc first use temp"
 ;* V62 tmp55        [V62    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <uint[]>
 ;* V63 tmp56        [V63    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V64 tmp57        [V64    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <uint[]>
@@ -82,20 +82,20 @@
 ;* V70 tmp63        [V70    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V71 tmp64        [V71    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[uint]>
 ;* V72 tmp65        [V72    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V73 tmp66        [V73,T63] (  2,  4.00)   byref  ->  edx         single-def "Inlining Arg"
+;  V73 tmp66        [V73,T61] (  2,  4.00)   byref  ->  edx         single-def "Inlining Arg"
 ;* V74 tmp67        [V74    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V75 tmp68        [V75    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[uint]>
 ;  V76 tmp69        [V76,T46] (  3,  6.00)     int  ->  edi         "Span.get_Item index"
 ;  V77 tmp70        [V77,T35] (  6, 13.00)     int  ->  [ebp-0x44]  "Inline stloc first use temp"
-;  V78 tmp71        [V78,T65] (  2,  4.00)     int  ->  ecx         "Span.get_Item index"
+;  V78 tmp71        [V78,T63] (  2,  4.00)     int  ->  ecx         "Span.get_Item index"
 ;  V79 tmp72        [V79,T50] (  5,  5.00)     int  ->  [ebp-0x48] 
-;  V80 tmp73        [V80,T72] (  3,  3.00)     int  ->  [ebp-0x4C]  "Inline stloc first use temp"
+;  V80 tmp73        [V80,T70] (  3,  3.00)     int  ->  [ebp-0x4C]  "Inline stloc first use temp"
 ;  V81 tmp74        [V81,T30] (  8, 21.00)     int  ->  [ebp-0x50]  spill-single-def "Inline stloc first use temp"
 ;  V82 tmp75        [V82,T41] (  5, 11.00)     int  ->  [ebp-0x54]  spill-single-def "Inline stloc first use temp"
 ;* V83 tmp76        [V83    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[uint]>
 ;  V84 tmp77        [V84,T05] ( 17,101.00)     int  ->  edi         "Inline stloc first use temp"
-;  V85 tmp78        [V85,T28] (  7, 24.00)     int  ->  [ebp-0x58]  spill-single-def "Inline stloc first use temp"
-;  V86 tmp79        [V86,T33] (  3, 16.00)     int  ->  ecx        
+;  V85 tmp78        [V85,T22] (  9, 32.00)     int  ->  [ebp-0x58]  spill-single-def "Inline stloc first use temp"
+;  V86 tmp79        [V86,T33] (  3, 16.00)     int  ->  ebx        
 ;  V87 tmp80        [V87,T31] (  3, 20.00)     int  ->  [ebp-0x5C]  spill-single-def "Inline stloc first use temp"
 ;* V88 tmp81        [V88    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V89 tmp82        [V89,T29] (  5, 24.00)     int  ->  [ebp-0x60] 
@@ -107,56 +107,56 @@
 ;* V95 tmp88        [V95    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Span`1[uint]>
 ;  V96 tmp89        [V96,T38] (  3, 12.00)     int  ->  [ebp-0x70] 
 ;* V97 tmp90        [V97    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V98 tmp91        [V98,T66] (  2,  4.00)     int  ->  edi         "Span.get_Item index"
-;  V99 tmp92        [V99,T73] (  3,  3.00)     int  ->  [ebp-0x74] 
+;  V98 tmp91        [V98,T64] (  2,  4.00)     int  ->  edi         "Span.get_Item index"
+;  V99 tmp92        [V99,T71] (  3,  3.00)     int  ->  [ebp-0x74] 
 ;* V100 tmp93       [V100    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V101 tmp94       [V101,T145] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V101 tmp94       [V101,T143] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V102 tmp95       [V102    ] (  1,  1.00)    long  ->  [ebp-0x7C]  multireg-ret "Inline stloc first use temp"
 ;  V103 tmp96       [V103    ] (  1,  1.00)    long  ->  [ebp-0x84]  multireg-ret "Inline stloc first use temp"
 ;* V104 tmp97       [V104    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
-;  V105 tmp98       [V105,T127] (  3,  0   )     int  ->  [ebp-0x88]  spill-single-def "Inlining Arg"
-;  V106 tmp99       [V106,T134] (  2,  0   )   byref  ->  [ebp-0x134]  spill-single-def "Inlining Arg"
+;  V105 tmp98       [V105,T125] (  3,  0   )     int  ->  [ebp-0x88]  spill-single-def "Inlining Arg"
+;  V106 tmp99       [V106,T132] (  2,  0   )   byref  ->  [ebp-0x12C]  spill-single-def "Inlining Arg"
 ;* V107 tmp100      [V107    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V108 tmp101      [V108    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V109 tmp102      [V109    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V110 tmp103      [V110    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V111 tmp104      [V111,T01] (  7,192.00)     int  ->  [ebp-0x8C]  "Inline stloc first use temp"
+;  V111 tmp104      [V111,T01] (  7,192.00)     int  ->  esi         "Inline stloc first use temp"
 ;* V112 tmp105      [V112    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[uint]>
 ;  V113 tmp106      [V113,T08] (  3, 96.00)     int  ->  edx         "Inline stloc first use temp"
 ;* V114 tmp107      [V114    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[uint]>
-;  V115 tmp108      [V115,T06] (  3, 96.00)   byref  ->  [ebp-0x138]  spill-single-def "Inline stloc first use temp"
+;  V115 tmp108      [V115,T06] (  3, 96.00)   byref  ->  [ebp-0x130]  spill-single-def "Inline stloc first use temp"
 ;* V116 tmp109      [V116    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[uint]>
-;  V117 tmp110      [V117,T32] (  3, 18.00)     int  ->  [ebp-0x90]  spill-single-def "Inlining Arg"
-;  V118 tmp111      [V118,T42] (  2, 10.00)   byref  ->  [ebp-0x13C]  spill-single-def "Inlining Arg"
+;  V117 tmp110      [V117,T32] (  3, 18.00)     int  ->  [ebp-0x8C]  spill-single-def "Inlining Arg"
+;  V118 tmp111      [V118,T42] (  2, 10.00)   byref  ->  [ebp-0x134]  spill-single-def "Inlining Arg"
 ;* V119 tmp112      [V119    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V120 tmp113      [V120    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V121 tmp114      [V121    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V122 tmp115      [V122    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V123 tmp116      [V123,T00] (  8,225.00)     int  ->  ecx         "Inline stloc first use temp"
+;  V123 tmp116      [V123,T00] (  8,225.00)     int  ->  edx         "Inline stloc first use temp"
 ;* V124 tmp117      [V124    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[uint]>
 ;* V125 tmp118      [V125    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[uint]>
-;  V126 tmp119      [V126,T07] (  3, 96.00)   byref  ->  ebx         "Inline stloc first use temp"
+;  V126 tmp119      [V126,T07] (  3, 96.00)   byref  ->  eax         "Inline stloc first use temp"
 ;* V127 tmp120      [V127    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V128 tmp121      [V128,T53] (  9,  4.95)     int  ->  esi         "Inline stloc first use temp"
-;  V129 tmp122      [V129,T64] (  2,  4.00)     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V130 tmp123      [V130,T52] (  6,  4.97)     ref  ->  [ebp-0x140] 
+;  V129 tmp122      [V129,T62] (  2,  4.00)     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
+;  V130 tmp123      [V130,T52] (  6,  4.97)     ref  ->  [ebp-0x138] 
 ;* V131 tmp124      [V131    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.Buffers.SharedArrayPoolThreadLocalArray[]>
-;  V132 tmp125      [V132,T90] (  4,  1.98)   ubyte  ->  [ebp-0x94]  "Inline stloc first use temp"
-;  V133 tmp126      [V133,T93] (  3,  1   )   ubyte  ->  [ebp-0x98]  "Inline stloc first use temp"
-;  V134 tmp127      [V134,T83] (  4,  2   )     ref  ->  [ebp-0x144]  class-hnd exact single-def "Inline stloc first use temp" <System.Buffers.ArrayPoolEventSource>
-;  V135 tmp128      [V135,T146] (  2,  0   )     int  ->  [ebp-0x9C]  spill-single-def "impAppendStmt"
-;  V136 tmp129      [V136,T147] (  2,  0   )     int  ->  [ebp-0xA0]  spill-single-def "impAppendStmt"
-;  V137 tmp130      [V137,T148] (  2,  0   )     int  ->  [ebp-0xA4]  spill-single-def "impAppendStmt"
-;  V138 tmp131      [V138,T149] (  2,  0   )     int  ->  edi         "impAppendStmt"
+;  V132 tmp125      [V132,T88] (  4,  1.98)   ubyte  ->  [ebp-0x90]  "Inline stloc first use temp"
+;  V133 tmp126      [V133,T91] (  3,  1   )   ubyte  ->  [ebp-0x94]  "Inline stloc first use temp"
+;  V134 tmp127      [V134,T81] (  4,  2   )     ref  ->  [ebp-0x13C]  class-hnd exact single-def "Inline stloc first use temp" <System.Buffers.ArrayPoolEventSource>
+;  V135 tmp128      [V135,T144] (  2,  0   )     int  ->  [ebp-0x98]  spill-single-def "impAppendStmt"
+;  V136 tmp129      [V136,T145] (  2,  0   )     int  ->  [ebp-0x9C]  spill-single-def "impAppendStmt"
+;  V137 tmp130      [V137,T146] (  2,  0   )     int  ->  [ebp-0xA0]  spill-single-def "impAppendStmt"
+;  V138 tmp131      [V138,T147] (  2,  0   )     int  ->  edi         "impAppendStmt"
 ;* V139 tmp132      [V139    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V140 tmp133      [V140    ] (  0,  0   )     int  ->  zero-ref   
 ;* V141 tmp134      [V141    ] (  0,  0   )     int  ->  zero-ref   
-;  V142 tmp135      [V142,T150] (  2,  0   )     int  ->  eax        
+;  V142 tmp135      [V142,T148] (  2,  0   )     int  ->  eax        
 ;* V143 tmp136      [V143    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V144 tmp137      [V144    ] (  0,  0   )     int  ->  zero-ref   
 ;* V145 tmp138      [V145    ] (  0,  0   )     int  ->  zero-ref   
 ;* V146 tmp139      [V146    ] (  0,  0   )     int  ->  zero-ref   
-;  V147 tmp140      [V147,T128] (  3,  0   )     int  ->  ecx        
+;  V147 tmp140      [V147,T126] (  3,  0   )     int  ->  ecx        
 ;* V148 tmp141      [V148    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V149 tmp142      [V149    ] (  0,  0   )     int  ->  zero-ref   
 ;* V150 tmp143      [V150    ] (  0,  0   )     int  ->  zero-ref   
@@ -167,110 +167,108 @@
 ;* V155 tmp148      [V155    ] (  0,  0   )     int  ->  zero-ref   
 ;* V156 tmp149      [V156    ] (  0,  0   )     int  ->  zero-ref   
 ;* V157 tmp150      [V157    ] (  0,  0   )     int  ->  zero-ref   
-;  V158 tmp151      [V158,T129] (  3,  0   )     int  ->  edx        
-;  V159 tmp152      [V159,T68] (  2,  3.94)     int  ->  [ebp-0xA8]  spill-single-def "impAppendStmt"
-;  V160 tmp153      [V160,T67] (  4,  3.94)   byref  ->  ecx         single-def "Inline stloc first use temp"
-;  V161 tmp154      [V161,T91] (  3,  1.97)     ref  ->  [ebp-0x148]  class-hnd single-def "Inline stloc first use temp" <System.Array>
+;  V158 tmp151      [V158,T127] (  3,  0   )     int  ->  edx        
+;  V159 tmp152      [V159,T66] (  2,  3.94)     int  ->  [ebp-0xA4]  spill-single-def "impAppendStmt"
+;  V160 tmp153      [V160,T65] (  4,  3.94)   byref  ->  ecx         single-def "Inline stloc first use temp"
+;  V161 tmp154      [V161,T89] (  3,  1.97)     ref  ->  [ebp-0x140]  class-hnd single-def "Inline stloc first use temp" <System.Array>
 ;* V162 tmp155      [V162    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Buffers.SharedArrayPoolThreadLocalArray>
-;  V163 tmp156      [V163,T135] (  2,  0   )     ref  ->  ecx         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
-;  V164 tmp157      [V164,T115] (  4,  0   )     ref  ->  ecx        
+;  V163 tmp156      [V163,T133] (  2,  0   )     ref  ->  ecx         class-hnd exact single-def "dup spill" <System.Buffers.SharedArrayPoolPartitions>
+;  V164 tmp157      [V164,T113] (  4,  0   )     ref  ->  ecx        
 ;* V165 tmp158      [V165    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Buffers.SharedArrayPoolPartitions>
-;  V166 tmp159      [V166,T121] (  3,  0   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V166 tmp159      [V166,T119] (  3,  0   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;* V167 tmp160      [V167    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V168 tmp161      [V168    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V169 tmp162      [V169    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V170 tmp163      [V170,T74] (  3,  2.95)     int  ->  [ebp-0xAC]  spill-single-def "Inline stloc first use temp"
+;  V170 tmp163      [V170,T72] (  3,  2.95)     int  ->  [ebp-0xA8]  spill-single-def "Inline stloc first use temp"
 ;* V171 tmp164      [V171    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V172 tmp165      [V172    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V173 tmp166      [V173,T130] (  3,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
-;  V174 tmp167      [V174,T110] (  5,  0   )     ref  ->  [ebp-0x14C]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
-;  V175 tmp168      [V175,T108] (  7,  0   )     int  ->  [ebp-0xB0]  "Inline stloc first use temp"
-;  V176 tmp169      [V176,T118] (  4,  0   )     int  ->  [ebp-0xB4]  "Inline stloc first use temp"
-;  V177 tmp170      [V177,T151] (  2,  0   )     int  ->  eax         "dup spill"
-;  V178 tmp171      [V178,T131] (  3,  0   )     int  ->  [ebp-0xB8]  "Inline return value spill temp"
-;  V179 tmp172      [V179,T132] (  3,  0   )     int  ->  edx         "Inline return value spill temp"
-;  V180 tmp173      [V180,T119] (  4,  0   )     int  ->  [ebp-0xBC]  spill-single-def "dup spill"
+;  V173 tmp166      [V173,T128] (  3,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
+;  V174 tmp167      [V174,T108] (  5,  0   )     ref  ->  [ebp-0x144]  class-hnd exact spill-single-def "Inline stloc first use temp" <<unknown class>>
+;  V175 tmp168      [V175,T106] (  7,  0   )     int  ->  [ebp-0xAC]  "Inline stloc first use temp"
+;  V176 tmp169      [V176,T116] (  4,  0   )     int  ->  [ebp-0xB0]  "Inline stloc first use temp"
+;  V177 tmp170      [V177,T149] (  2,  0   )     int  ->  eax         "dup spill"
+;  V178 tmp171      [V178,T129] (  3,  0   )     int  ->  [ebp-0xB4]  "Inline return value spill temp"
+;  V179 tmp172      [V179,T130] (  3,  0   )     int  ->  edx         "Inline return value spill temp"
+;  V180 tmp173      [V180,T117] (  4,  0   )     int  ->  [ebp-0xB8]  spill-single-def "dup spill"
 ;* V181 tmp174      [V181    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V182 tmp175      [V182    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V183 tmp176      [V183,T133] (  3,  0   )   ubyte  ->  [ebp-0xC0]  "Inline stloc first use temp"
...

coreclr_tests.run.windows.x86.checked.mch

-33 (-18.75%) : 517553.dasm - AA:reset() (FullOpts)

@@ -2,7 +2,7 @@
 ; Emitting BLENDED_CODE for X86 with AVX512 - Windows
 ; FullOpts code
 ; optimized code
-; ebp based frame
+; esp based frame
 ; partially interruptible
 ; No matching PGO data
 ; 0 inlinees with PGO data; 8 single block inlinees; 0 inlinees without PGO data
@@ -10,19 +10,18 @@
 ;
 ;  V00 tmp0         [V00,T00] (  3,  6   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <AA>
 ;  V01 tmp1         [V01,T04] (  2,  4   )     ref  ->  edi         class-hnd single-def "impAppendStmt" <<unknown class>>
-;  V02 tmp2         [V02,T01] (  3,  6   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <AA>
-;  V03 tmp3         [V03,T05] (  2,  4   )     ref  ->  esi         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V02 tmp2         [V02,T01] (  3,  6   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <AA>
+;  V03 tmp3         [V03,T05] (  2,  4   )     ref  ->  edi         class-hnd single-def "impAppendStmt" <<unknown class>>
 ;  V04 tmp4         [V04,T02] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "NewObj constructor temp" <QQ>
 ;  V05 tmp5         [V05,T03] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "NewObj constructor temp" <QQ>
+;* V06 cse0         [V06,T06] (  0,  0   )     int  ->  zero-ref    "CSE - unknown"
 ;
 ; Lcl frame size = 0
 
 G_M27028_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
-       push     ebp
-       mov      ebp, esp
        push     edi
        push     esi
-                       ;; size=5 bbWeight=1 PerfScore 3.25
+                       ;; size=2 bbWeight=1 PerfScore 2.00
 G_M27028_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
        mov      ecx, 0xD1FFAB1E      ; AA
        call     CORINFO_HELP_NEWSFAST
@@ -30,15 +29,16 @@ G_M27028_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        mov      esi, eax
        ; gcrRegs +[esi]
        test     byte  ptr [D1FFAB1EH], 1      ; global ptr
-       je       SHORT G_M27028_IG06
+       je       SHORT G_M27028_IG05
                        ;; size=21 bbWeight=1 PerfScore 5.50
-G_M27028_IG03:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
+G_M27028_IG03:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax]
        mov      edi, gword ptr [D1FFAB1EH]      ; static handle
        ; gcrRegs +[edi]
        mov      ecx, 0xD1FFAB1E      ; QQ
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[eax]
+       ; gcr arg pop 0
        mov      dword ptr [eax+0x04], 1
        lea      edx, bword ptr [esi+0x0C]
        ; byrRegs +[edx]
@@ -46,60 +46,52 @@ G_M27028_IG03:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; gcrRegs -[eax]
        ; byrRegs -[edx]
        push     esi
+       ; gcr arg push 0
        mov      ecx, edi
        ; gcrRegs +[ecx]
        mov      edx, 100
        call     CORINFO_HELP_ARRADDR_ST
        ; gcrRegs -[ecx esi edi]
+       ; gcr arg pop 1
        mov      ecx, 0xD1FFAB1E      ; AA
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[eax]
-       mov      edi, eax
-       ; gcrRegs +[edi]
-       test     byte  ptr [D1FFAB1EH], 1      ; global ptr
-       je       SHORT G_M27028_IG07
-                       ;; size=65 bbWeight=1 PerfScore 13.75
-G_M27028_IG04:        ; bbWeight=1, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[eax]
-       mov      esi, gword ptr [D1FFAB1EH]      ; static handle
+       mov      esi, eax
        ; gcrRegs +[esi]
+       mov      edi, gword ptr [D1FFAB1EH]      ; static handle
+       ; gcrRegs +[edi]
        mov      ecx, 0xD1FFAB1E      ; QQ
        call     CORINFO_HELP_NEWSFAST
-       ; gcrRegs +[eax]
+       ; gcr arg pop 0
        mov      dword ptr [eax+0x04], 2
-       lea      edx, bword ptr [edi+0x0C]
+       lea      edx, bword ptr [esi+0x0C]
        ; byrRegs +[edx]
        call     CORINFO_HELP_ASSIGN_REF_EAX
        ; gcrRegs -[eax]
        ; byrRegs -[edx]
-       push     edi
-       mov      ecx, esi
+       push     esi
+       ; gcr arg push 0
+       mov      ecx, edi
        ; gcrRegs +[ecx]
        mov      edx, 100
        call     CORINFO_HELP_ARRADDR_ST
        ; gcrRegs -[ecx esi edi]
-                       ;; size=44 bbWeight=1 PerfScore 8.25
-G_M27028_IG05:        ; bbWeight=1, epilog, nogc, extend
+       ; gcr arg pop 1
+                       ;; size=100 bbWeight=1 PerfScore 18.00
+G_M27028_IG04:        ; bbWeight=1, epilog, nogc, extend
        pop      esi
        pop      edi
-       pop      ebp
        ret      
-                       ;; size=4 bbWeight=1 PerfScore 2.50
-G_M27028_IG06:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
+                       ;; size=3 bbWeight=1 PerfScore 2.00
+G_M27028_IG05:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[esi]
        mov      ecx, 0xD1FFAB1E
        mov      edx, 1
        call     CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
-       jmp      G_M27028_IG03
-                       ;; size=20 bbWeight=0 PerfScore 0.00
-G_M27028_IG07:        ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[esi] +[edi]
-       mov      ecx, 0xD1FFAB1E
-       mov      edx, 1
-       call     CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
-       jmp      SHORT G_M27028_IG04
+       ; gcr arg pop 0
+       jmp      SHORT G_M27028_IG03
                        ;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 176, prolog size 5, PerfScore 33.25, instruction count 46, allocated bytes for code 176 (MethodHash=b512966b) for method AA:reset() (FullOpts)
+Total bytes of code 143, prolog size 2, PerfScore 27.50, instruction count 37, allocated bytes for code 143 (MethodHash=b512966b) for method AA:reset() (FullOpts)
 ; ============================================================
 

-13 (-6.16%) : 281383.dasm - System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)

@@ -8,18 +8,17 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] ( 10,  3.65)     ref  ->  ebx         this class-hnd single-def <System.RuntimeType>
+;  V00 this         [V00,T04] ( 10,  3.65)     ref  ->  ebx         this class-hnd single-def <System.RuntimeType>
 ;  V01 arg1         [V01,T02] ( 11, 11.33)     ref  ->  esi         class-hnd single-def <System.Type>
-;  V02 loc0         [V02,T07] (  4,  0.60)     ref  ->  ecx         class-hnd exact <System.RuntimeType>
-;  V03 loc1         [V03,T04] (  3,  5.60)     ref  ->  edi         class-hnd single-def <System.Type[]>
+;  V02 loc0         [V02,T06] (  4,  0.60)     ref  ->  ecx         class-hnd exact <System.RuntimeType>
+;  V03 loc1         [V03,T03] (  4, 10   )     ref  ->  edi         class-hnd single-def <System.Type[]>
 ;  V04 loc2         [V04,T01] (  5, 18.80)     int  ->  ebx        
-;  V05 tmp0         [V05,T06] (  2,  0.96)     ref  ->  ecx         single-def "CASTCLASS eval op1"
+;  V05 tmp0         [V05,T05] (  2,  0.96)     ref  ->  ecx         single-def "CASTCLASS eval op1"
 ;* V06 tmp1         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
-;  V07 tmp2         [V07,T08] (  3,  0   )     int  ->  eax         "Single return block return value"
+;  V07 tmp2         [V07,T07] (  3,  0   )     int  ->  eax         "Single return block return value"
 ;  V08 tmp3         [V08,T00] (  3, 33.60)     ref  ->  ecx         "argument with side effect"
-;  V09 cse0         [V09,T05] (  3,  4.40)     int  ->  [ebp-0x10]  "CSE - moderate"
 ;
-; Lcl frame size = 4
+; Lcl frame size = 0
 
 G_M35267_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
        push     ebp
@@ -27,12 +26,11 @@ G_M35267_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        push     edi
        push     esi
        push     ebx
-       push     eax
        mov      ebx, ecx
        ; gcrRegs +[ebx]
        mov      esi, edx
        ; gcrRegs +[esi]
-                       ;; size=11 bbWeight=1 PerfScore 5.75
+                       ;; size=10 bbWeight=1 PerfScore 4.75
 G_M35267_IG02:        ; bbWeight=1, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref
        test     esi, esi
        je       G_M35267_IG14
@@ -118,13 +116,11 @@ G_M35267_IG09:        ; bbWeight=0, gcrefRegs=00000048 {ebx esi}, byrefRegs=0000
        mov      edi, eax
        ; gcrRegs +[edi]
        xor      ebx, ebx
-       mov      eax, dword ptr [edi+0x04]
-       ; gcrRegs -[eax]
-       mov      dword ptr [ebp-0x10], eax
-       test     eax, eax
+       cmp      dword ptr [edi+0x04], 0
        jle      SHORT G_M35267_IG12
-                       ;; size=35 bbWeight=0 PerfScore 0.00
+                       ;; size=31 bbWeight=0 PerfScore 0.00
 G_M35267_IG10:        ; bbWeight=5.60, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax]
        mov      ecx, gword ptr [edi+4*ebx+0x08]
        ; gcrRegs +[ecx]
        mov      edx, esi
@@ -137,47 +133,42 @@ G_M35267_IG10:        ; bbWeight=5.60, gcrefRegs=000000C0 {esi edi}, byrefRegs=0
        je       SHORT G_M35267_IG14
                        ;; size=18 bbWeight=5.60 PerfScore 58.80
 G_M35267_IG11:        ; bbWeight=4.40, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, dword ptr [ebp-0x10]
        inc      ebx
-       cmp      eax, ebx
-       mov      dword ptr [ebp-0x10], eax
-       jg       SHORT G_M35267_IG10
-                       ;; size=11 bbWeight=4.40 PerfScore 15.40
+       cmp      ebx, dword ptr [edi+0x04]
+       jl       SHORT G_M35267_IG10
+                       ;; size=6 bbWeight=4.40 PerfScore 18.70
 G_M35267_IG12:        ; bbWeight=2.36, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi edi]
        mov      eax, 1
                        ;; size=5 bbWeight=2.36 PerfScore 0.59
 G_M35267_IG13:        ; bbWeight=2.36, epilog, nogc, extend
-       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      
-                       ;; size=6 bbWeight=2.36 PerfScore 8.26
+                       ;; size=5 bbWeight=2.36 PerfScore 7.08
 G_M35267_IG14:        ; bbWeight=30.24, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        xor      eax, eax
                        ;; size=2 bbWeight=30.24 PerfScore 7.56
 G_M35267_IG15:        ; bbWeight=30.24, epilog, nogc, extend
-       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      
-                       ;; size=6 bbWeight=30.24 PerfScore 105.84
+                       ;; size=5 bbWeight=30.24 PerfScore 90.72
 G_M35267_IG16:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
        movzx    eax, al
                        ;; size=3 bbWeight=0 PerfScore 0.00
 G_M35267_IG17:        ; bbWeight=0, epilog, nogc, extend
-       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      
-                       ;; size=6 bbWeight=0 PerfScore 0.00
+                       ;; size=5 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 211, prolog size 7, PerfScore 210.94, instruction count 90, allocated bytes for code 211 (MethodHash=dbae763c) for method System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
+Total bytes of code 198, prolog size 6, PerfScore 196.94, instruction count 82, allocated bytes for code 198 (MethodHash=dbae763c) for method System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
 ; ============================================================
 

-1 (-0.08%) : 498009.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)

@@ -12,53 +12,53 @@
 ;  V01 loc1         [V01,T28] (  3,  3   )     ref  ->  eax         class-hnd single-def <System.Reflection.Emit.AssemblyBuilder>
 ;  V02 loc2         [V02,T29] (  3,  3   )     ref  ->  eax         class-hnd single-def <System.Reflection.Emit.ModuleBuilder>
 ;  V03 loc3         [V03,T04] ( 11,  8.68)     ref  ->  esi         class-hnd single-def <System.Reflection.Emit.TypeBuilder>
-;  V04 loc4         [V04,T30] (  3,  3   )     ref  ->  [ebp-0x18]  class-hnd spill-single-def <System.Reflection.Emit.FieldBuilder>
-;  V05 loc5         [V05,T07] ( 11,  7.92)     ref  ->  [ebp-0x1C]  class-hnd spill-single-def <System.Reflection.Emit.PropertyBuilder>
+;  V04 loc4         [V04,T30] (  3,  3   )     ref  ->  [ebp-0x14]  class-hnd spill-single-def <System.Reflection.Emit.FieldBuilder>
+;  V05 loc5         [V05,T05] ( 12,  8   )     ref  ->  [ebp-0x18]  class-hnd spill-single-def <System.Reflection.Emit.PropertyBuilder>
 ;* V06 loc6         [V06    ] (  0,  0   )     int  ->  zero-ref    single-def
-;  V07 loc7         [V07,T09] ( 12,  6   )     ref  ->  [ebp-0x20]  class-hnd spill-single-def <System.Reflection.Emit.MethodBuilder>
+;  V07 loc7         [V07,T09] ( 12,  6   )     ref  ->  [ebp-0x1C]  class-hnd spill-single-def <System.Reflection.Emit.MethodBuilder>
 ;* V08 loc8         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Reflection.Emit.ILGenerator>
 ;  V09 loc9         [V09,T18] ( 12,  4.92)     ref  ->  edi         class-hnd single-def <System.Reflection.Emit.MethodBuilder>
 ;* V10 loc10        [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Reflection.Emit.ILGenerator>
-;* V11 loc11        [V11,T40] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <<unknown class>>
+;* V11 loc11        [V11,T39] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <<unknown class>>
 ;* V12 loc12        [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Reflection.Emit.CustomAttributeBuilder>
-;* V13 loc13        [V13,T41] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <<unknown class>>
+;* V13 loc13        [V13,T40] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <<unknown class>>
 ;* V14 loc14        [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Reflection.Emit.CustomAttributeBuilder>
 ;* V15 loc15        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Type>
 ;  V16 tmp0         [V16,T03] (  5, 10   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <System.Reflection.AssemblyName>
 ;  V17 tmp1         [V17,T00] (  6, 12   )     ref  ->  eax         class-hnd exact single-def "NewObj constructor temp" <System.Version>
 ;  V18 tmp2         [V18,T11] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
 ;* V19 tmp3         [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V20 tmp4         [V20,T12] (  3,  6   )     ref  ->  [ebp-0x24]  class-hnd exact spill-single-def "dup spill" <System.Reflection.PropertyInfo[]>
+;  V20 tmp4         [V20,T12] (  3,  6   )     ref  ->  [ebp-0x20]  class-hnd exact spill-single-def "dup spill" <System.Reflection.PropertyInfo[]>
 ;  V21 tmp5         [V21,T21] (  2,  4   )     ref  ->  edi         class-hnd single-def "impAppendStmt" <System.Reflection.ConstructorInfo>
-;  V22 tmp6         [V22,T22] (  2,  4   )     ref  ->  [ebp-0x28]  class-hnd exact spill-single-def "impAppendStmt" <System.Object[]>
+;  V22 tmp6         [V22,T22] (  2,  4   )     ref  ->  [ebp-0x24]  class-hnd exact spill-single-def "impAppendStmt" <System.Object[]>
 ;  V23 tmp7         [V23,T23] (  2,  4   )     ref  ->  eax         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Reflection.PropertyInfo>
-;  V24 tmp8         [V24,T13] (  3,  6   )     ref  ->  [ebp-0x2C]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
-;  V25 tmp9         [V25,T14] (  3,  6   )     ref  ->  [ebp-0x30]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
-;  V26 tmp10        [V26,T05] (  4,  8   )     ref  ->  [ebp-0x34]  class-hnd exact spill-single-def "dup spill" <System.Reflection.PropertyInfo[]>
+;  V24 tmp8         [V24,T13] (  3,  6   )     ref  ->  [ebp-0x28]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V25 tmp9         [V25,T14] (  3,  6   )     ref  ->  [ebp-0x2C]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
+;  V26 tmp10        [V26,T06] (  4,  8   )     ref  ->  [ebp-0x30]  class-hnd exact spill-single-def "dup spill" <System.Reflection.PropertyInfo[]>
 ;  V27 tmp11        [V27,T24] (  2,  4   )     ref  ->  edi         class-hnd single-def "impAppendStmt" <System.Reflection.ConstructorInfo>
-;  V28 tmp12        [V28,T25] (  2,  4   )     ref  ->  [ebp-0x38]  class-hnd exact spill-single-def "impAppendStmt" <System.Object[]>
+;  V28 tmp12        [V28,T25] (  2,  4   )     ref  ->  [ebp-0x34]  class-hnd exact spill-single-def "impAppendStmt" <System.Object[]>
 ;  V29 tmp13        [V29,T26] (  2,  4   )     ref  ->  eax         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Reflection.PropertyInfo>
 ;  V30 tmp14        [V30,T27] (  2,  4   )     ref  ->  eax         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Reflection.PropertyInfo>
-;  V31 tmp15        [V31,T06] (  4,  8   )     ref  ->  [ebp-0x3C]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V31 tmp15        [V31,T07] (  4,  8   )     ref  ->  [ebp-0x38]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
 ;* V32 tmp16        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <<unknown class>>
-;  V33 tmp17        [V33,T15] (  3,  6   )     ref  ->  [ebp-0x40]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
+;  V33 tmp17        [V33,T15] (  3,  6   )     ref  ->  [ebp-0x3C]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
 ;* V34 tmp18        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V35 tmp19        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V36 tmp20        [V36    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V37 tmp21        [V37    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V38 tmp22        [V38    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V39 tmp23        [V39,T10] (  7,  6   )     ref  ->  [ebp-0x44]  "guarded devirt return temp"
+;  V39 tmp23        [V39,T10] (  7,  6   )     ref  ->  [ebp-0x40]  "guarded devirt return temp"
 ;* V40 tmp24        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Reflection.Emit.RuntimeMethodBuilder>
-;  V41 tmp25        [V41,T36] (  2,  2   )     ref  ->  edx         class-hnd single-def "dup spill" <System.Reflection.Emit.RuntimeILGenerator>
+;  V41 tmp25        [V41,T35] (  2,  2   )     ref  ->  edx         class-hnd single-def "dup spill" <System.Reflection.Emit.RuntimeILGenerator>
 ;  V42 tmp26        [V42,T32] (  4,  2.25)     ref  ->  edx        
-;  V43 tmp27        [V43,T34] (  4,  2   )     ref  ->  [ebp-0x48]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.RuntimeILGenerator>
+;  V43 tmp27        [V43,T33] (  4,  2   )     ref  ->  [ebp-0x44]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.RuntimeILGenerator>
 ;* V44 tmp28        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.Emit.RuntimeILGenerator>
 ;* V45 tmp29        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V46 tmp30        [V46,T08] (  8,  6.50)     ref  ->  ebx         "guarded devirt return temp"
 ;* V47 tmp31        [V47    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Reflection.Emit.RuntimeMethodBuilder>
-;  V48 tmp32        [V48,T37] (  2,  2   )     ref  ->  ebx         class-hnd single-def "dup spill" <System.Reflection.Emit.RuntimeILGenerator>
-;  V49 tmp33        [V49,T38] (  4,  1.75)     ref  ->  ebx        
-;  V50 tmp34        [V50,T35] (  4,  2   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <System.Reflection.Emit.RuntimeILGenerator>
+;  V48 tmp32        [V48,T36] (  2,  2   )     ref  ->  ebx         class-hnd single-def "dup spill" <System.Reflection.Emit.RuntimeILGenerator>
+;  V49 tmp33        [V49,T37] (  4,  1.75)     ref  ->  ebx        
+;  V50 tmp34        [V50,T34] (  4,  2   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <System.Reflection.Emit.RuntimeILGenerator>
 ;* V51 tmp35        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.Reflection.Emit.RuntimeILGenerator>
 ;* V52 tmp36        [V52    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Reflection.Emit.RuntimePropertyBuilder>
 ;* V53 tmp37        [V53    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Reflection.Emit.RuntimePropertyBuilder>
@@ -70,7 +70,7 @@
 ;* V59 tmp43        [V59,T02] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V60 tmp44        [V60    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Type>
 ;* V61 tmp45        [V61    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <<unknown class>>
-;  V62 tmp46        [V62,T39] (  3,  1.50)     ref  ->  eax         "guarded devirt return temp"
+;  V62 tmp46        [V62,T38] (  3,  1.50)     ref  ->  eax         "guarded devirt return temp"
 ;* V63 tmp47        [V63    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Reflection.Emit.RuntimeTypeBuilder>
 ;* V64 tmp48        [V64    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V65 tmp49        [V65    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
@@ -84,17 +84,16 @@
 ;* V73 tmp57        [V73    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V74 tmp58        [V74    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
 ;* V75 tmp59        [V75    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V76 cse0         [V76,T42] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
-;* V77 cse1         [V77,T43] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
-;* V78 cse2         [V78,T44] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
+;* V76 cse0         [V76,T41] (  0,  0   )     int  ->  zero-ref    "CSE - moderate"
+;* V77 cse1         [V77,T42] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
+;* V78 cse2         [V78,T43] (  0,  0   )     int  ->  zero-ref    "CSE - conservative"
 ;  V79 cse3         [V79,T19] (  4,  4   )     int  ->  ebx         "CSE - conservative"
 ;  V80 cse4         [V80,T20] (  4,  4   )     int  ->  [ebp-0x10]  spill-single-def "CSE - conservative"
 ;  V81 cse5         [V81,T31] (  3,  3   )     int  ->  edi         "CSE - conservative"
-;  V82 cse6         [V82,T33] (  3,  2.08)     int  ->  [ebp-0x14]  spill-single-def "CSE - conservative"
-;  TEMP_02                                     ref  ->  [ebp-0x4C]
-;  TEMP_01                                     int  ->  [ebp-0x50]
+;  TEMP_02                                     ref  ->  [ebp-0x48]
+;  TEMP_01                                     int  ->  [ebp-0x4C]
 ;
-; Lcl frame size = 68
+; Lcl frame size = 64
 
 G_M60100_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -102,9 +101,9 @@ G_M60100_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 68
+       sub      esp, 64
        xor      eax, eax
-       mov      dword ptr [ebp-0x4C], eax
+       mov      dword ptr [ebp-0x48], eax
                        ;; size=14 bbWeight=1 PerfScore 5.75
 G_M60100_IG02:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, 0xD1FFAB1E      ; System.Reflection.AssemblyName
@@ -180,7 +179,7 @@ G_M60100_IG04:        ; bbWeight=1, gcrefRegs=00000041 {eax esi}, byrefRegs=0000
        call     [eax+0x18]<unknown method>
        ; gcrRegs -[ecx edx] +[eax]
        ; gcr arg pop 3
-       mov      gword ptr [ebp-0x18], eax
+       mov      gword ptr [ebp-0x14], eax
        ; GC ptr vars +{V04}
        push     0x1000
        push     0
@@ -206,7 +205,7 @@ G_M60100_IG04:        ; bbWeight=1, gcrefRegs=00000041 {eax esi}, byrefRegs=0000
        call     [ebx+0x14]<unknown method>
        ; gcrRegs -[ecx edx] +[eax]
        ; gcr arg pop 6
-       mov      gword ptr [ebp-0x1C], eax
+       mov      gword ptr [ebp-0x18], eax
        ; GC ptr vars +{V05}
        push     0x886
        push     1
@@ -229,23 +228,23 @@ G_M60100_IG04:        ; bbWeight=1, gcrefRegs=00000041 {eax esi}, byrefRegs=0000
        call     [ebx+0x04]<unknown method>
        ; gcrRegs -[ecx edx]
        ; gcr arg pop 6
-       mov      gword ptr [ebp-0x20], eax
+       mov      gword ptr [ebp-0x1C], eax
        ; GC ptr vars +{V07}
        cmp      dword ptr [eax], 0xD1FFAB1E
                        ;; size=184 bbWeight=1 PerfScore 70.75
 G_M60100_IG05:        ; bbWeight=1, extend
        jne      G_M60100_IG25
                        ;; size=6 bbWeight=1 PerfScore 1.00
-G_M60100_IG06:        ; bbWeight=0.50, gcVars=0000000040000280 {V04 V05 V07}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
+G_M60100_IG06:        ; bbWeight=0.50, gcVars=0000000040000220 {V04 V05 V07}, gcrefRegs=00000041 {eax esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        mov      ecx, eax
        ; gcrRegs +[ecx]
        call     [System.Reflection.Emit.RuntimeMethodBuilder:ThrowIfGeneric():this]
        ; gcrRegs -[eax ecx]
-       mov      ecx, gword ptr [ebp-0x20]
+       mov      ecx, gword ptr [ebp-0x1C]
        ; gcrRegs +[ecx]
        call     [System.Reflection.Emit.RuntimeMethodBuilder:ThrowIfShouldNotHaveBody():this]
        ; gcrRegs -[ecx]
-       mov      eax, gword ptr [ebp-0x20]
+       mov      eax, gword ptr [ebp-0x1C]
        ; gcrRegs +[eax]
        mov      edx, gword ptr [eax+0x1C]
        ; gcrRegs +[edx]
@@ -259,19 +258,19 @@ G_M60100_IG07:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000
        ; gcrRegs +[eax]
        mov      edx, eax
        ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x48], edx
+       mov      gword ptr [ebp-0x44], edx
        ; GC ptr vars +{V43}
        push     64
        mov      ecx, edx
        ; gcrRegs +[ecx]
-       mov      edx, gword ptr [ebp-0x20]
+       mov      edx, gword ptr [ebp-0x1C]
        call     [System.Reflection.Emit.RuntimeILGenerator:.ctor(System.Reflection.MethodInfo,int):this]
        ; gcrRegs -[eax ecx edx]
-       mov      eax, gword ptr [ebp-0x20]
+       mov      eax, gword ptr [ebp-0x1C]
        ; gcrRegs +[eax]
        lea      edx, bword ptr [eax+0x1C]
        ; byrRegs +[edx]
-       mov      ecx, gword ptr [ebp-0x48]
+       mov      ecx, gword ptr [ebp-0x44]
        ; gcrRegs +[ecx]
        call     CORINFO_HELP_ASSIGN_REF_ECX
        ; gcrRegs -[eax]
@@ -279,7 +278,7 @@ G_M60100_IG07:        ; bbWeight=0.25, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      edx, ecx
        ; gcrRegs +[edx]
                        ;; size=44 bbWeight=0.25 PerfScore 2.88
-G_M60100_IG08:        ; bbWeight=1, gcVars=0000000040000280 {V04 V05 V07}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, gcvars, byref
+G_M60100_IG08:        ; bbWeight=1, gcVars=0000000040000220 {V04 V05 V07}, gcrefRegs=00000044 {edx esi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs -[ecx]
        ; GC ptr vars -{V43}
        test     byte  ptr [D1FFAB1EH], 1      ; global ptr
@@ -291,7 +290,7 @@ G_M60100_IG09:        ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=0000
        push     dword ptr [ecx]
        mov      ecx, edx
        ; gcrRegs +[ecx]
-       mov      gword ptr [ebp-0x44], edx
+       mov      gword ptr [ebp-0x40], edx
        ; GC ptr vars +{V39}
        mov      edi, dword ptr [edx]
        mov      edi, dword ptr [edi+0x2C]
@@ -300,11 +299,11 @@ G_M60100_IG09:        ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=0000
        mov      ecx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        push     dword ptr [ecx+0x04]
        push     dword ptr [ecx]
-       mov      ecx, gword ptr [ebp-0x44]
+       mov      ecx, gword ptr [ebp-0x40]
        ; gcrRegs +[ecx]
-       mov      edx, gword ptr [ebp-0x18]
+       mov      edx, gword ptr [ebp-0x14]
        ; gcrRegs +[edx]
-       mov      gword ptr [ebp-0x44], ecx
+       mov      gword ptr [ebp-0x40], ecx
        mov      eax, dword ptr [ecx]
        mov      eax, dword ptr [eax+0x34]
        call     [eax+0x10]<unknown method>
@@ -312,7 +311,7 @@ G_M60100_IG09:        ; bbWeight=1, gcrefRegs=00000044 {edx esi}, byrefRegs=0000
        mov      ecx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
        push     dword ptr [ecx+0x04]
        push     dword ptr [ecx]
-       mov      ecx, gword ptr [ebp-0x44]
+       mov      ecx, gword ptr [ebp-0x40]
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V39}
        call     [edi+0x10]<unknown method>
@@ -406,7 +405,7 @@ G_M60100_IG12:        ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
        push     dword ptr [ecx]
        mov      ecx, ebx
        ; gcrRegs +[ecx]
-       mov      edx, gword ptr [ebp-0x18]
+       mov      edx, gword ptr [ebp-0x14]
        ; gcrRegs +[edx]
        mov      eax, dword ptr [ebx]
        mov      eax, dword ptr [eax+0x34]
@@ -422,7 +421,7 @@ G_M60100_IG12:        ; bbWeight=1, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=
        ; gcrRegs -[ebx]
        call     [ebx+0x10]<unknown method>
        ; gcrRegs -[ecx]
-       mov      ebx, gword ptr [ebp-0x1C]
+       mov      ebx, gword ptr [ebp-0x18]
        ; gcrRegs +[ebx]
        cmp      dword ptr [ebx], 0xD1FFAB1E
        jne      SHORT G_M60100_IG15
@@ -431,13 +430,13 @@ G_M60100_IG13:        ; bbWeight=0.50, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        push     2
...

+2 (+0.35%) : 342492.dasm - System.String:Concat(System.String,System.String,System.String):System.String (Tier1)

@@ -9,71 +9,68 @@
 ; 12 inlinees with PGO data; 25 single block inlinees; 15 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  8,  3   )     ref  ->  esi         class-hnd single-def <System.String>
-;  V01 arg1         [V01,T01] (  7,  2   )     ref  ->  [ebp-0x24]  class-hnd single-def <System.String>
-;  V02 arg2         [V02,T06] (  7,  0   )     ref  ->  [ebp+0x08]  class-hnd single-def <System.String>
+;  V00 arg0         [V00,T00] ( 17,  3   )     ref  ->  esi         class-hnd single-def <System.String>
+;  V01 arg1         [V01,T01] ( 11,  2   )     ref  ->  edi         class-hnd single-def <System.String>
+;  V02 arg2         [V02,T03] ( 13,  0   )     ref  ->  [ebp+0x08]  class-hnd single-def <System.String>
 ;* V03 loc0         [V03    ] (  0,  0   )    long  ->  zero-ref   
-;  V04 loc1         [V04,T05] (  9,  0   )     ref  ->  [ebp-0x28]  class-hnd exact spill-single-def <System.String>
+;  V04 loc1         [V04,T04] (  9,  0   )     ref  ->  [ebp-0x14]  class-hnd exact spill-single-def <System.String>
 ;  V05 tmp0         [V05,T02] (  2,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
-;  V06 tmp1         [V06,T12] (  2,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
-;  V07 tmp2         [V07,T11] (  3,  0   )     ref  ->  eax         class-hnd "Inline return value spill temp" <System.String>
-;  V08 tmp3         [V08,T10] (  4,  0   )     int  ->  [ebp-0x10]  spill-single-def "Inline stloc first use temp"
-;  V09 tmp4         [V09,T13] (  3,  0   )     int  ->  ecx         "Inline stloc first use temp"
-;  V10 tmp5         [V10,T07] (  7,  0   )     ref  ->  [ebp-0x2C]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
-;* V11 tmp6         [V11,T34] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V06 tmp1         [V06,T09] (  2,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
+;  V07 tmp2         [V07,T08] (  3,  0   )     ref  ->  registers   class-hnd "Inline return value spill temp" <System.String>
+;  V08 tmp3         [V08,T07] (  4,  0   )     int  ->  edi         "Inline stloc first use temp"
+;  V09 tmp4         [V09,T10] (  3,  0   )     int  ->  ecx         "Inline stloc first use temp"
+;  V10 tmp5         [V10,T05] (  7,  0   )     ref  ->  [ebp-0x18]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
+;* V11 tmp6         [V11,T31] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V13 tmp8         [V13,T14] (  2,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
+;  V13 tmp8         [V13,T11] (  2,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
 ;* V14 tmp9         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp10        [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp11        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp12        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp13        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V19 tmp14        [V19,T18] (  2,  0   )   byref  ->  ecx         single-def "Inlining Arg"
-;  V20 tmp15        [V20,T19] (  2,  0   )   byref  ->  edx         single-def "Inlining Arg"
-;* V21 tmp16        [V21,T35] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V19 tmp14        [V19,T15] (  2,  0   )   byref  ->  ecx         single-def "Inlining Arg"
+;  V20 tmp15        [V20,T16] (  2,  0   )   byref  ->  edx         single-def "Inlining Arg"
+;* V21 tmp16        [V21,T32] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp17        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp18        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V24 tmp19        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp20        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp21        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V27 tmp22        [V27,T20] (  2,  0   )   byref  ->  ecx         single-def "Inlining Arg"
-;  V28 tmp23        [V28,T21] (  2,  0   )   byref  ->  edx         single-def "Inlining Arg"
-;  V29 tmp24        [V29,T28] (  2,  0   )     int  ->  esi         "Inlining Arg"
-;  V30 tmp25        [V30,T15] (  2,  0   )   ubyte  ->  edx         "Inline return value spill temp"
+;  V27 tmp22        [V27,T17] (  2,  0   )   byref  ->  ecx         single-def "Inlining Arg"
+;  V28 tmp23        [V28,T18] (  2,  0   )   byref  ->  edx         single-def "Inlining Arg"
+;  V29 tmp24        [V29,T25] (  2,  0   )     int  ->  ebx         "Inlining Arg"
+;  V30 tmp25        [V30,T12] (  2,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
 ;* V31 tmp26        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V32 tmp27        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp28        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp29        [V34    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V35 tmp30        [V35    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V36 tmp31        [V36,T22] (  2,  0   )   byref  ->  ecx         single-def "Inlining Arg"
-;  V37 tmp32        [V37,T23] (  2,  0   )   byref  ->  edx         single-def "Inlining Arg"
-;  V38 tmp33        [V38,T29] (  2,  0   )     int  ->  esi         "Inlining Arg"
-;  V39 tmp34        [V39,T30] (  2,  0   )     int  ->  ecx         "Inlining Arg"
+;  V36 tmp31        [V36,T19] (  2,  0   )   byref  ->  ecx         single-def "Inlining Arg"
+;  V37 tmp32        [V37,T20] (  2,  0   )   byref  ->  edx         single-def "Inlining Arg"
+;  V38 tmp33        [V38,T26] (  2,  0   )     int  ->  ebx         "Inlining Arg"
+;  V39 tmp34        [V39,T27] (  2,  0   )     int  ->  ecx         "Inlining Arg"
 ;* V40 tmp35        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V41 tmp36        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V42 tmp37        [V42    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V43 tmp38        [V43    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp39        [V44    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V45 tmp40        [V45,T24] (  2,  0   )   byref  ->  edx         single-def "Inlining Arg"
-;  V46 tmp41        [V46,T25] (  2,  0   )   byref  ->  esi         single-def "Inlining Arg"
-;  V47 tmp42        [V47,T31] (  2,  0   )     int  ->  ebx         "Inlining Arg"
-;  V48 tmp43        [V48,T16] (  3,  0   )     int  ->  ebx         "Inlining Arg"
+;  V45 tmp40        [V45,T21] (  2,  0   )   byref  ->  ecx         single-def "Inlining Arg"
+;  V46 tmp41        [V46,T22] (  2,  0   )   byref  ->  edx         single-def "Inlining Arg"
+;  V47 tmp42        [V47,T28] (  2,  0   )     int  ->  ebx         "Inlining Arg"
+;  V48 tmp43        [V48,T13] (  3,  0   )     int  ->  esi         "Inlining Arg"
 ;* V49 tmp44        [V49    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V50 tmp45        [V50    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V51 tmp46        [V51    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V52 tmp47        [V52    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V53 tmp48        [V53    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V54 tmp49        [V54,T26] (  2,  0   )   byref  ->  ecx         single-def "Inlining Arg"
-;  V55 tmp50        [V55,T27] (  2,  0   )   byref  ->  edx         single-def "Inlining Arg"
-;  V56 tmp51        [V56,T32] (  2,  0   )     int  ->  eax         "Inlining Arg"
-;  V57 cse0         [V57,T08] (  6,  0   )     int  ->  registers   multi-def "CSE - moderate"
-;  V58 cse1         [V58,T03] (  9,  0   )     int  ->  [ebp-0x14]  "CSE - moderate"
-;  V59 cse2         [V59,T04] ( 10,  0   )     int  ->  [ebp-0x18]  multi-def "CSE - conservative"
-;  V60 cse3         [V60,T09] (  6,  0   )     int  ->  [ebp-0x1C]  "CSE - conservative"
-;  V61 rat0         [V61,T17] (  3,  0   )     int  ->  [ebp-0x20]  "field V03.lo (fldOffset=0x0)" P-INDEP
-;  V62 rat1         [V62,T33] (  2,  0   )     int  ->  ecx         "field V03.hi (fldOffset=0x4)" P-INDEP
+;  V54 tmp49        [V54,T23] (  2,  0   )   byref  ->  ecx         single-def "Inlining Arg"
+;  V55 tmp50        [V55,T24] (  2,  0   )   byref  ->  edx         single-def "Inlining Arg"
+;  V56 tmp51        [V56,T29] (  2,  0   )     int  ->  eax         "Inlining Arg"
+;  V57 cse0         [V57,T06] (  6,  0   )     int  ->  [ebp-0x10]  multi-def "CSE - moderate"
+;  V58 rat0         [V58,T14] (  3,  0   )     int  ->  ecx         "field V03.lo (fldOffset=0x0)" P-INDEP
+;  V59 rat1         [V59,T30] (  2,  0   )     int  ->  eax         "field V03.hi (fldOffset=0x4)" P-INDEP
 ;
-; Lcl frame size = 32
+; Lcl frame size = 12
 
 G_M21105_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -81,7 +78,7 @@ G_M21105_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 32
+       sub      esp, 12
        mov      esi, ecx
        ; gcrRegs +[esi]
        mov      edi, edx
@@ -92,13 +89,12 @@ G_M21105_IG02:        ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        je       SHORT G_M21105_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.25
 G_M21105_IG03:        ; bbWeight=0, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      ebx, dword ptr [esi+0x04]
        xor      ecx, ecx
-       test     ebx, ebx
+       cmp      dword ptr [esi+0x04], 0
        sete     cl
        test     ecx, ecx
        je       SHORT G_M21105_IG06
-                       ;; size=14 bbWeight=0 PerfScore 0.00
+                       ;; size=13 bbWeight=0 PerfScore 0.00
 G_M21105_IG04:        ; bbWeight=0, gcrefRegs=00000080 {edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[esi]
        mov      ecx, edi
@@ -120,43 +116,40 @@ G_M21105_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=000000
        ; gcrRegs -[eax] +[esi edi]
        test     edi, edi
        je       SHORT G_M21105_IG07
-       mov      eax, dword ptr [edi+0x04]
        xor      ecx, ecx
-       test     eax, eax
+       cmp      dword ptr [edi+0x04], 0
        sete     cl
        test     ecx, ecx
        je       G_M21105_IG14
-                       ;; size=22 bbWeight=0 PerfScore 0.00
+                       ;; size=21 bbWeight=0 PerfScore 0.00
 G_M21105_IG07:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        ; gcrRegs -[edi]
-       mov      edi, gword ptr [ebp+0x08]
-       ; gcrRegs +[edi]
-       test     edi, edi
+       mov      ecx, dword ptr [esi+0x04]
+       mov      ebx, gword ptr [ebp+0x08]
+       ; gcrRegs +[ebx]
+       test     ebx, ebx
        je       SHORT G_M21105_IG08
-       mov      eax, dword ptr [edi+0x04]
        xor      ecx, ecx
-       test     eax, eax
+       cmp      dword ptr [ebx+0x04], 0
        sete     cl
        test     ecx, ecx
        je       SHORT G_M21105_IG09
-                       ;; size=21 bbWeight=0 PerfScore 0.00
+                       ;; size=23 bbWeight=0 PerfScore 0.00
 G_M21105_IG08:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[edi]
+       ; gcrRegs -[ebx]
        mov      eax, esi
        ; gcrRegs +[eax]
        jmp      G_M21105_IG13
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M21105_IG09:        ; bbWeight=0, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       ; gcrRegs -[eax] +[edi]
-       mov      edx, ebx
-       mov      dword ptr [ebp-0x10], edx
-       mov      dword ptr [ebp-0x18], eax
-       lea      ecx, [eax+edx]
-       test     ecx, ecx
-       jl       G_M21105_IG18
+G_M21105_IG09:        ; bbWeight=0, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       ; gcrRegs -[eax] +[ebx]
+       mov      edi, dword ptr [esi+0x04]
+       mov      ecx, edi
+       add      ecx, dword ptr [ebx+0x04]
+       js       G_M21105_IG18
        call     <unknown method>
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x2C], eax
+       mov      gword ptr [ebp-0x18], eax
        ; GC ptr vars +{V10}
        test     eax, eax
        jne      SHORT G_M21105_IG10
@@ -166,40 +159,41 @@ G_M21105_IG09:        ; bbWeight=0, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[eax ecx edx]
-                       ;; size=47 bbWeight=0 PerfScore 0.00
-G_M21105_IG10:        ; bbWeight=0, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, gword ptr [ebp-0x2C]
+                       ;; size=42 bbWeight=0 PerfScore 0.00
+G_M21105_IG10:        ; bbWeight=0, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       mov      ecx, dword ptr [esi+0x04]
+       mov      eax, gword ptr [ebp-0x18]
        ; gcrRegs +[eax]
-       cmp      dword ptr [eax+0x04], ebx
-       jge      SHORT G_M21105_IG11
+       cmp      ecx, dword ptr [eax+0x04]
+       jle      SHORT G_M21105_IG11
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
        ; gcrRegs +[edx]
        call     [<unknown method>]
        ; gcrRegs -[eax ecx edx]
-                       ;; size=24 bbWeight=0 PerfScore 0.00
-G_M21105_IG11:        ; bbWeight=0, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       mov      eax, gword ptr [ebp-0x2C]
+                       ;; size=27 bbWeight=0 PerfScore 0.00
+G_M21105_IG11:        ; bbWeight=0, gcrefRegs=00000048 {ebx esi}, byrefRegs=00000000 {}, byref, isz
+       mov      eax, gword ptr [ebp-0x18]
        ; gcrRegs +[eax]
        lea      ecx, bword ptr [eax+0x08]
        ; byrRegs +[ecx]
        lea      edx, bword ptr [esi+0x08]
        ; byrRegs +[edx]
-       mov      esi, dword ptr [ebp-0x10]
+       mov      esi, dword ptr [esi+0x04]
        ; gcrRegs -[esi]
-       lea      ebx, [esi+esi]
-       push     ebx
+       lea      esi, [edi+edi]
+       push     esi
        call     [<unknown method>]
        ; gcrRegs -[eax]
        ; byrRegs -[ecx edx]
-       mov      eax, gword ptr [ebp-0x2C]
+       mov      ecx, dword ptr [ebx+0x04]
+       mov      eax, gword ptr [ebp-0x18]
        ; gcrRegs +[eax]
-       mov      ecx, dword ptr [eax+0x04]
-       sub      ecx, esi
-       mov      esi, dword ptr [ebp-0x18]
-       cmp      ecx, esi
-       jge      SHORT G_M21105_IG12
+       mov      edx, dword ptr [eax+0x04]
+       sub      edx, edi
+       cmp      ecx, edx
+       jle      SHORT G_M21105_IG12
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
        mov      edx, 0xD1FFAB1E
@@ -207,25 +201,27 @@ G_M21105_IG11:        ; bbWeight=0, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000
...

+5 (+1.81%) : 370780.dasm - ILCompiler.ReadyToRunCompilerContext:ComputeHasGCStaticBase(Internal.TypeSystem.FieldDesc):ubyte:this (Tier1)

@@ -10,7 +10,7 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <ILCompiler.ReadyToRunCompilerContext>
-;  V01 arg1         [V01,T00] ( 11,  5.96)     ref  ->  esi         class-hnd single-def <Internal.TypeSystem.FieldDesc>
+;  V01 arg1         [V01,T00] ( 12,  5.96)     ref  ->  esi         class-hnd single-def <Internal.TypeSystem.FieldDesc>
 ;* V02 loc0         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Internal.TypeSystem.TypeDesc>
 ;* V03 tmp0         [V03    ] (  0,  0   )     int  ->  zero-ref    "guarded devirt return temp"
 ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
@@ -31,7 +31,6 @@
 ;* V19 tmp16        [V19    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V20 tmp17        [V20,T08] (  5,  1.42)     int  ->  eax         "Inline return value spill temp"
 ;  V21 tmp18        [V21,T09] (  3,  1.21)     int  ->  eax         single-def "Inline stloc first use temp"
-;  V22 cse0         [V22,T14] (  3,  0   )     int  ->  edi         "CSE - conservative"
 ;
 ; Lcl frame size = 0
 
@@ -51,8 +50,8 @@ G_M5978_IG03:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      eax, dword ptr [esi]
-       mov      edi, dword ptr [eax+0x30]
-       call     [edi+0x0C]<unknown method>
+       mov      eax, dword ptr [eax+0x30]
+       call     [eax+0x0C]<unknown method>
        ; gcrRegs -[ecx]
        mov      ecx, eax
        call     [<unknown method>]
@@ -221,13 +220,15 @@ G_M5978_IG32:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; gcrRegs +[esi]
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       call     [edi]<unknown method>
+       mov      eax, dword ptr [esi]
+       mov      eax, dword ptr [eax+0x30]
+       call     [eax]<unknown method>
        ; gcrRegs -[ecx esi] +[eax]
        mov      edi, eax
        ; gcrRegs +[edi]
        jmp      G_M5978_IG12
-                       ;; size=11 bbWeight=0 PerfScore 0.00
+                       ;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 276, prolog size 5, PerfScore 45.71, instruction count 98, allocated bytes for code 276 (MethodHash=ac23e8a5) for method ILCompiler.ReadyToRunCompilerContext:ComputeHasGCStaticBase(Internal.TypeSystem.FieldDesc):ubyte:this (Tier1)
+Total bytes of code 281, prolog size 5, PerfScore 45.71, instruction count 100, allocated bytes for code 281 (MethodHash=ac23e8a5) for method ILCompiler.ReadyToRunCompilerContext:ComputeHasGCStaticBase(Internal.TypeSystem.FieldDesc):ubyte:this (Tier1)
 ; ============================================================
 

+17 (+4.26%) : 371910.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,uint,int,int):ubyte (Tier1)

@@ -9,11 +9,11 @@
 ; 11 inlinees with PGO data; 13 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] ( 19,  9   )     ref  ->  esi         class-hnd single-def <Internal.TypeSystem.FieldDesc>
+;  V00 arg0         [V00,T00] ( 18,  9   )     ref  ->  esi         class-hnd single-def <Internal.TypeSystem.FieldDesc>
 ;  V01 arg1         [V01,T03] (  4,  4   )     int  ->  ebx         single-def
 ;  V02 arg2         [V02,T02] (  7,  7   )     int  ->  edi         single-def
 ;  V03 arg3         [V03,T05] (  5,  5   )     int  ->  [ebp+0x08]  single-def
-;  V04 loc0         [V04,T12] (  2,  2   )     ref  ->  ecx         class-hnd exact <Internal.TypeSystem.Ecma.EcmaField>
+;  V04 loc0         [V04,T13] (  2,  2   )     ref  ->  ecx         class-hnd exact <Internal.TypeSystem.Ecma.EcmaField>
 ;* V05 loc1         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ubyte]>
 ;* V06 loc2         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ubyte]>
 ;* V07 tmp0         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <Internal.TypeSystem.Ecma.EcmaField>
@@ -22,23 +22,23 @@
 ;* V10 tmp3         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
 ;* V11 tmp4         [V11    ] (  0,  0   )     int  ->  zero-ref    "guarded devirt return temp"
 ;* V12 tmp5         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
-;  V13 tmp6         [V13,T20] (  2,  0   )     int  ->  eax         "guarded devirt return temp"
+;  V13 tmp6         [V13,T21] (  2,  0   )     int  ->  eax         "guarded devirt return temp"
 ;* V14 tmp7         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
 ;* V15 tmp8         [V15,T22] (  0,  0   )     int  ->  zero-ref    "guarded devirt return temp"
 ;* V16 tmp9         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Internal.TypeSystem.Ecma.EcmaField>
-;  V17 tmp10        [V17,T14] (  3,  2   )     int  ->  eax         "Inline return value spill temp"
+;  V17 tmp10        [V17,T15] (  3,  2   )     int  ->  eax         "Inline return value spill temp"
 ;  V18 tmp11        [V18,T07] (  3,  3   )     int  ->  eax         single-def "Inline stloc first use temp"
 ;* V19 tmp12        [V19    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V20 tmp13        [V20,T15] (  3,  2   )     int  ->  eax         "Inline return value spill temp"
+;  V20 tmp13        [V20,T16] (  3,  2   )     int  ->  eax         "Inline return value spill temp"
 ;  V21 tmp14        [V21,T08] (  3,  3   )     int  ->  eax         single-def "Inline stloc first use temp"
 ;* V22 tmp15        [V22    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V23 tmp16        [V23,T16] (  3,  2   )     int  ->  eax         "Inline return value spill temp"
+;  V23 tmp16        [V23,T17] (  3,  2   )     int  ->  eax         "Inline return value spill temp"
 ;  V24 tmp17        [V24,T09] (  3,  3   )     int  ->  eax         single-def "Inline stloc first use temp"
 ;* V25 tmp18        [V25    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V26 tmp19        [V26,T17] (  3,  2   )     int  ->  edx         "Inline return value spill temp"
+;  V26 tmp19        [V26,T18] (  3,  2   )     int  ->  edx         "Inline return value spill temp"
 ;  V27 tmp20        [V27,T10] (  3,  3   )     int  ->  edx         single-def "Inline stloc first use temp"
 ;* V28 tmp21        [V28    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V29 tmp22        [V29,T18] (  3,  2   )     int  ->  ecx         "Inline return value spill temp"
+;  V29 tmp22        [V29,T19] (  3,  2   )     int  ->  ecx         "Inline return value spill temp"
 ;  V30 tmp23        [V30,T11] (  3,  3   )     int  ->  ecx         single-def "Inline stloc first use temp"
 ;* V31 tmp24        [V31    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V32 tmp25        [V32,T01] (  4,  8   )     ref  ->  eax         class-hnd single-def "Inlining Arg" <ubyte[]>
@@ -53,17 +53,17 @@
 ;* V41 tmp34        [V41    ] (  0,  0   )     int  ->  zero-ref    single-def "field V05._length (fldOffset=0x4)" P-INDEP
 ;* V42 tmp35        [V42    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V43 tmp36        [V43    ] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0x4)" P-INDEP
-;  V44 tmp37        [V44,T19] (  2,  2   )   byref  ->  ecx         single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+;  V44 tmp37        [V44,T20] (  2,  2   )   byref  ->  ecx         single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V45 tmp38        [V45    ] (  0,  0   )     int  ->  zero-ref    single-def "field V08._length (fldOffset=0x4)" P-INDEP
-;  V46 tmp39        [V46,T13] (  3,  2   )   byref  ->  esi         "field V33._reference (fldOffset=0x0)" P-INDEP
+;  V46 tmp39        [V46,T14] (  3,  2   )   byref  ->  esi         "field V33._reference (fldOffset=0x0)" P-INDEP
 ;  V47 tmp40        [V47,T04] (  6,  5   )     int  ->  ecx         "field V33._length (fldOffset=0x4)" P-INDEP
 ;* V48 tmp41        [V48    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )     int  ->  zero-ref    single-def "field V34._length (fldOffset=0x4)" P-INDEP
 ;* V50 tmp43        [V50    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V36._reference (fldOffset=0x0)" P-INDEP
 ;* V51 tmp44        [V51    ] (  0,  0   )     int  ->  zero-ref    single-def "field V36._length (fldOffset=0x4)" P-INDEP
-;  V52 cse0         [V52,T21] (  5,  0   )     int  ->  edi         "CSE - conservative"
+;  V52 cse0         [V52,T12] (  6,  2   )     int  ->  [ebp-0x10]  spill-single-def "CSE - moderate"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 4
 
 G_M10272_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -71,11 +71,12 @@ G_M10272_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
+       push     eax
        mov      esi, ecx
        ; gcrRegs +[esi]
        mov      ebx, edx
        mov      edi, dword ptr [ebp+0x0C]
-                       ;; size=13 bbWeight=1 PerfScore 5.75
+                       ;; size=14 bbWeight=1 PerfScore 6.75
 G_M10272_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref, isz
        xor      ecx, ecx
        test     ebx, ebx
@@ -89,20 +90,21 @@ G_M10272_IG02:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        cmp      dword ptr [ebp+0x08], 0
        setge    cl
        call     [<unknown method>]
-       cmp      dword ptr [esi], 0xD1FFAB1E
+       mov      eax, dword ptr [esi]
+       mov      dword ptr [ebp-0x10], eax
+       cmp      eax, 0xD1FFAB1E
        je       SHORT G_M10272_IG04
-                       ;; size=49 bbWeight=1 PerfScore 19.25
+                       ;; size=53 bbWeight=1 PerfScore 19.50
 G_M10272_IG03:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       mov      eax, dword ptr [esi]
-       mov      edi, dword ptr [eax+0x30]
-       call     [edi+0x0C]<unknown method>
+       mov      edx, dword ptr [eax+0x30]
+       call     [edx+0x0C]<unknown method>
        ; gcrRegs -[ecx]
        mov      ecx, eax
        call     [<unknown method>]
        jmp      G_M10272_IG30
-                       ;; size=23 bbWeight=0 PerfScore 0.00
+                       ;; size=21 bbWeight=0 PerfScore 0.00
 G_M10272_IG04:        ; bbWeight=1, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, byref
        mov      eax, dword ptr [esi+0x18]
        and      eax, 3
@@ -171,12 +173,13 @@ G_M10272_IG13:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        xor      eax, eax
                        ;; size=2 bbWeight=0 PerfScore 0.00
 G_M10272_IG14:        ; bbWeight=0, epilog, nogc, extend
+       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      8
-                       ;; size=7 bbWeight=0 PerfScore 0.00
+                       ;; size=8 bbWeight=0 PerfScore 0.00
 G_M10272_IG15:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; gcrRegs +[esi]
        jmp      SHORT G_M10272_IG12
@@ -273,33 +276,38 @@ G_M10272_IG28:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000040 {e
        mov      eax, 1
                        ;; size=16 bbWeight=1 PerfScore 4.75
 G_M10272_IG29:        ; bbWeight=1, epilog, nogc, extend
+       pop      ecx
        pop      ebx
        pop      esi
        pop      edi
        pop      ebp
        ret      8
-                       ;; size=7 bbWeight=1 PerfScore 4.00
+                       ;; size=8 bbWeight=1 PerfScore 4.50
 G_M10272_IG30:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000040 {esi}, byrefRegs=00000000 {}, gcvars, byref
        ; gcrRegs +[esi]
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       call     [edi+0x18]<unknown method>
+       mov      edi, dword ptr [ebp-0x10]
+       mov      eax, dword ptr [edi+0x30]
+       call     [eax+0x18]<unknown method>
        ; gcrRegs -[ecx]
        mov      ecx, eax
        call     [<unknown method>]
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       call     [edi+0x14]<unknown method>
+       mov      eax, dword ptr [edi+0x30]
+       call     [eax+0x14]<unknown method>
        ; gcrRegs -[ecx]
        test     eax, eax
        jne      G_M10272_IG13
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       call     [edi+0x10]<unknown method>
+       mov      eax, dword ptr [edi+0x30]
+       call     [eax+0x10]<unknown method>
        ; gcrRegs -[ecx esi]
        jmp      G_M10272_IG13
-                       ;; size=36 bbWeight=0 PerfScore 0.00
+                       ;; size=48 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 399, prolog size 6, PerfScore 94.00, instruction count 138, allocated bytes for code 399 (MethodHash=7063d7df) for method Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,uint,int,int):ubyte (Tier1)
+Total bytes of code 416, prolog size 7, PerfScore 95.75, instruction count 146, allocated bytes for code 416 (MethodHash=7063d7df) for method Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,uint,int,int):ubyte (Tier1)
 ; ============================================================
 

libraries_tests.run.windows.x86.Release.mch

-14 (-4.52%) : 46706.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)

@@ -9,16 +9,16 @@
 ; 3 inlinees with PGO data; 17 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] ( 24, 13.21)     ref  ->  esi         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
-;  V01 loc0         [V01,T09] (  3,  1.49)     ref  ->  ebx         class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+;  V00 arg0         [V00,T00] ( 25, 13.35)     ref  ->  esi         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+;  V01 loc0         [V01,T08] (  3,  1.49)     ref  ->  ebx         class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticInfo[]>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode]>
 ;  V04 tmp0         [V04,T02] (  2,  4   )     int  ->  edi         "impAppendStmt"
-;  V05 tmp1         [V05,T12] (  2,  0   )     ref  ->  edi         class-hnd single-def "non-inline candidate call" <Microsoft.CodeAnalysis.GreenNode>
-;  V06 tmp2         [V06,T13] (  2,  0   )     int  ->  ebx         "impAppendStmt"
-;  V07 tmp3         [V07,T08] (  4,  1.49)     ref  ->  edi        
+;  V05 tmp1         [V05,T11] (  2,  0   )     ref  ->  edi         class-hnd single-def "non-inline candidate call" <Microsoft.CodeAnalysis.GreenNode>
+;  V06 tmp2         [V06,T12] (  2,  0   )     int  ->  ebx         "impAppendStmt"
+;  V07 tmp3         [V07,T07] (  4,  1.49)     ref  ->  edi        
 ;* V08 tmp4         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.GreenNode>
-;  V09 tmp5         [V09,T01] (  3,  4.48)     int  ->  [ebp-0x10]  "impAppendStmt"
+;  V09 tmp5         [V09,T01] (  3,  4.48)     int  ->  ebx         "impAppendStmt"
 ;  V10 tmp6         [V10,T05] (  3,  2   )     int  ->  ebx         "guarded devirt return temp"
 ;* V11 tmp7         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
@@ -26,22 +26,21 @@
 ;  V14 tmp10        [V14,T03] (  3,  2.24)     ref  ->  edi         "guarded devirt return temp"
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
 ;* V16 tmp12        [V16    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode]>
-;  V17 tmp13        [V17,T06] (  3,  1.63)     ref  ->  edx         "guarded devirt return temp"
+;  V17 tmp13        [V17,T06] (  3,  1.63)     ref  ->  eax         "guarded devirt return temp"
 ;* V18 tmp14        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
 ;* V19 tmp15        [V19    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp16        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
 ;* V21 tmp17        [V21    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp18        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
 ;* V23 tmp19        [V23    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V24 tmp20        [V24,T11] (  3,  0   )     ref  ->  [ebp-0x18]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
+;  V24 tmp20        [V24,T10] (  3,  0   )     ref  ->  [ebp-0x14]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
 ;  V25 tmp21        [V25,T04] (  5,  2.23)     ref  ->  edx         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.DiagnosticInfo[]>
-;  V26 tmp22        [V26    ] (  3,  0.75)     ref  ->  [ebp-0x14]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.DiagnosticInfo[]>
-;  V27 tmp23        [V27,T10] (  4,  0   )     ref  ->  [ebp-0x1C]  "field V03._node (fldOffset=0x0)" P-INDEP
+;  V26 tmp22        [V26    ] (  3,  0.75)     ref  ->  [ebp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.DiagnosticInfo[]>
+;  V27 tmp23        [V27,T09] (  4,  0   )     ref  ->  [ebp-0x18]  "field V03._node (fldOffset=0x0)" P-INDEP
 ;* V28 tmp24        [V28    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V13._node (fldOffset=0x0)" P-INDEP
 ;* V29 tmp25        [V29    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V16._node (fldOffset=0x0)" P-INDEP
-;  V30 cse0         [V30,T07] (  3,  1.63)     int  ->  ebx         "CSE - conservative"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 12
 
 G_M12665_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
        push     ebp
@@ -49,9 +48,9 @@ G_M12665_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        push     edi
        push     esi
        push     ebx
-       sub      esp, 16
+       sub      esp, 12
        xor      eax, eax
-       mov      dword ptr [ebp-0x14], eax
+       mov      dword ptr [ebp-0x10], eax
        mov      esi, ecx
        ; gcrRegs +[esi]
                        ;; size=16 bbWeight=1 PerfScore 6.00
@@ -90,32 +89,32 @@ G_M12665_IG06:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; gcrRegs +[ecx]
        call     [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:get_TrailingTrivia():Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode]:this]
        ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x1C], eax
+       mov      gword ptr [ebp-0x18], eax
        ; GC ptr vars +{V27}
        mov      ecx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [ebp-0x18], eax
+       mov      gword ptr [ebp-0x14], eax
        ; GC ptr vars +{V24}
        push     edi
-       push     gword ptr [ebp-0x1C]
+       push     gword ptr [ebp-0x18]
        movzx    edx, bx
        mov      ecx, eax
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V27}
        call     [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:.ctor(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):this]
        ; gcrRegs -[eax ecx edi]
-       mov      edi, gword ptr [ebp-0x18]
+       mov      edi, gword ptr [ebp-0x14]
        ; gcrRegs +[edi]
                        ;; size=64 bbWeight=0 PerfScore 0.00
-G_M12665_IG07:        ; bbWeight=0.75, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M12665_IG07:        ; bbWeight=0.75, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; GC ptr vars -{V24}
        mov      ebx, edi
        ; gcrRegs +[ebx]
        test     byte  ptr [esi+0x0A], 1
-       je       G_M12665_IG15
-                       ;; size=12 bbWeight=0.75 PerfScore 3.17
+       je       SHORT G_M12665_IG15
+                       ;; size=8 bbWeight=0.75 PerfScore 3.17
 G_M12665_IG08:        ; bbWeight=0.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       lea      ecx, [ebp-0x14]
+       lea      ecx, [ebp-0x10]
        push     ecx
        mov      ecx, gword ptr [D1FFAB1EH]      ; static handle
        ; gcrRegs +[ecx]
@@ -126,7 +125,7 @@ G_M12665_IG08:        ; bbWeight=0.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        ; gcrRegs -[ecx edx esi]
        test     eax, eax
        je       SHORT G_M12665_IG15
-       mov      edx, gword ptr [ebp-0x14]
+       mov      edx, gword ptr [ebp-0x10]
        ; gcrRegs +[edx]
        jmp      SHORT G_M12665_IG16
                        ;; size=29 bbWeight=0.00 PerfScore 0.00
@@ -153,8 +152,8 @@ G_M12665_IG11:        ; bbWeight=0.75, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      eax, dword ptr [esi]
-       mov      ebx, dword ptr [eax+0x3C]
-       call     [ebx+0x10]<unknown method>
+       mov      eax, dword ptr [eax+0x3C]
+       call     [eax+0x10]<unknown method>
        ; gcrRegs -[ecx] +[eax]
        mov      edi, eax
        ; gcrRegs +[edi]
@@ -165,38 +164,35 @@ G_M12665_IG11:        ; bbWeight=0.75, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      eax, dword ptr [eax+0x40]
        call     [eax+0x08]<unknown method>
        ; gcrRegs -[ecx]
+       mov      ebx, eax
        jmp      SHORT G_M12665_IG13
-                       ;; size=24 bbWeight=0.75 PerfScore 12.50
+                       ;; size=26 bbWeight=0.75 PerfScore 12.68
 G_M12665_IG12:        ; bbWeight=0.75, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       movzx    eax, word  ptr [esi+0x14]
-       mov      dword ptr [ebp-0x10], eax
-       mov      edx, gword ptr [esi+0x1C]
-       ; gcrRegs +[edx]
-       mov      eax, dword ptr [ebp-0x10]
+       movzx    ebx, word  ptr [esi+0x14]
+       mov      eax, gword ptr [esi+0x1C]
+       ; gcrRegs +[eax]
        jmp      SHORT G_M12665_IG14
-                       ;; size=15 bbWeight=0.75 PerfScore 5.97
+                       ;; size=9 bbWeight=0.75 PerfScore 4.48
 G_M12665_IG13:        ; bbWeight=0.14, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[edx]
-       mov      dword ptr [ebp-0x10], eax
+       ; gcrRegs -[eax]
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       call     [ebx+0x14]<unknown method>
+       mov      eax, dword ptr [esi]
+       mov      eax, dword ptr [eax+0x3C]
+       call     [eax+0x14]<unknown method>
        ; gcrRegs -[ecx] +[eax]
-       mov      edx, eax
-       ; gcrRegs +[edx]
-       mov      eax, dword ptr [ebp-0x10]
-       ; gcrRegs -[eax]
-                       ;; size=13 bbWeight=0.14 PerfScore 0.78
-G_M12665_IG14:        ; bbWeight=0.75, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
-       push     edx
-       mov      ecx, eax
+                       ;; size=10 bbWeight=0.14 PerfScore 1.03
+G_M12665_IG14:        ; bbWeight=0.75, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
+       push     eax
+       mov      ecx, ebx
        mov      edx, edi
+       ; gcrRegs +[edx]
        call     [<unknown method>]
-       ; gcrRegs -[edx edi] +[eax]
+       ; gcrRegs -[edx edi]
        mov      edi, eax
        ; gcrRegs +[edi]
-       jmp      G_M12665_IG07
-                       ;; size=18 bbWeight=0.75 PerfScore 5.04
+       jmp      SHORT G_M12665_IG07
+                       ;; size=15 bbWeight=0.75 PerfScore 5.04
 G_M12665_IG15:        ; bbWeight=0.75, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax esi] +[ebx]
        mov      edx, 0xD1FFAB1E
@@ -205,7 +201,7 @@ G_M12665_IG15:        ; bbWeight=0.75, gcrefRegs=00000088 {ebx edi}, byrefRegs=0
 G_M12665_IG16:        ; bbWeight=0.75, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref, isz
        xor      eax, eax
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x14], eax
+       mov      gword ptr [ebp-0x10], eax
        test     edx, edx
        je       SHORT G_M12665_IG19
                        ;; size=9 bbWeight=0.75 PerfScore 1.87
@@ -251,6 +247,6 @@ G_M12665_IG22:        ; bbWeight=0.25, epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=0.25 PerfScore 0.89
 
-; Total bytes of code 310, prolog size 14, PerfScore 63.06, instruction count 111, allocated bytes for code 310 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
+Total bytes of code 296, prolog size 14, PerfScore 62.00, instruction count 109, allocated bytes for code 296 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
 ; ============================================================
 

-14 (-4.52%) : 63200.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)

@@ -9,16 +9,16 @@
 ; 3 inlinees with PGO data; 17 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] ( 24, 14.01)     ref  ->  esi         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
-;  V01 loc0         [V01,T09] (  3,  1.68)     ref  ->  ebx         class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+;  V00 arg0         [V00,T00] ( 25, 14.30)     ref  ->  esi         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+;  V01 loc0         [V01,T08] (  3,  1.68)     ref  ->  ebx         class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticInfo[]>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode]>
 ;  V04 tmp0         [V04,T02] (  2,  4   )     int  ->  edi         "impAppendStmt"
-;  V05 tmp1         [V05,T12] (  2,  0   )     ref  ->  edi         class-hnd single-def "non-inline candidate call" <Microsoft.CodeAnalysis.GreenNode>
-;  V06 tmp2         [V06,T13] (  2,  0   )     int  ->  ebx         "impAppendStmt"
-;  V07 tmp3         [V07,T08] (  4,  1.68)     ref  ->  edi        
+;  V05 tmp1         [V05,T11] (  2,  0   )     ref  ->  edi         class-hnd single-def "non-inline candidate call" <Microsoft.CodeAnalysis.GreenNode>
+;  V06 tmp2         [V06,T12] (  2,  0   )     int  ->  ebx         "impAppendStmt"
+;  V07 tmp3         [V07,T07] (  4,  1.68)     ref  ->  edi        
 ;* V08 tmp4         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.GreenNode>
-;  V09 tmp5         [V09,T01] (  3,  5.04)     int  ->  [ebp-0x10]  "impAppendStmt"
+;  V09 tmp5         [V09,T01] (  3,  5.04)     int  ->  ebx         "impAppendStmt"
 ;  V10 tmp6         [V10,T05] (  3,  2   )     int  ->  ebx         "guarded devirt return temp"
 ;* V11 tmp7         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
@@ -26,22 +26,21 @@
 ;  V14 tmp10        [V14,T04] (  3,  2.52)     ref  ->  edi         "guarded devirt return temp"
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
 ;* V16 tmp12        [V16    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode]>
-;  V17 tmp13        [V17,T06] (  3,  1.97)     ref  ->  edx         "guarded devirt return temp"
+;  V17 tmp13        [V17,T06] (  3,  1.97)     ref  ->  eax         "guarded devirt return temp"
 ;* V18 tmp14        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
 ;* V19 tmp15        [V19    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp16        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
 ;* V21 tmp17        [V21    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp18        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
 ;* V23 tmp19        [V23    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V24 tmp20        [V24,T11] (  3,  0   )     ref  ->  [ebp-0x18]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
+;  V24 tmp20        [V24,T10] (  3,  0   )     ref  ->  [ebp-0x14]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
 ;  V25 tmp21        [V25,T03] (  5,  2.52)     ref  ->  edx         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.DiagnosticInfo[]>
-;  V26 tmp22        [V26    ] (  3,  0.84)     ref  ->  [ebp-0x14]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.DiagnosticInfo[]>
-;  V27 tmp23        [V27,T10] (  4,  0   )     ref  ->  [ebp-0x1C]  "field V03._node (fldOffset=0x0)" P-INDEP
+;  V26 tmp22        [V26    ] (  3,  0.84)     ref  ->  [ebp-0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.DiagnosticInfo[]>
+;  V27 tmp23        [V27,T09] (  4,  0   )     ref  ->  [ebp-0x18]  "field V03._node (fldOffset=0x0)" P-INDEP
 ;* V28 tmp24        [V28    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V13._node (fldOffset=0x0)" P-INDEP
 ;* V29 tmp25        [V29    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V16._node (fldOffset=0x0)" P-INDEP
-;  V30 cse0         [V30,T07] (  3,  1.97)     int  ->  ebx         "CSE - conservative"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 12
 
 G_M12665_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
        push     ebp
@@ -49,9 +48,9 @@ G_M12665_IG01:        ; bbWeight=1, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        push     edi
        push     esi
        push     ebx
-       sub      esp, 16
+       sub      esp, 12
        xor      eax, eax
-       mov      dword ptr [ebp-0x14], eax
+       mov      dword ptr [ebp-0x10], eax
        mov      esi, ecx
        ; gcrRegs +[esi]
                        ;; size=16 bbWeight=1 PerfScore 6.00
@@ -90,32 +89,32 @@ G_M12665_IG06:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; gcrRegs +[ecx]
        call     [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:get_TrailingTrivia():Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode]:this]
        ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x1C], eax
+       mov      gword ptr [ebp-0x18], eax
        ; GC ptr vars +{V27}
        mov      ecx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [ebp-0x18], eax
+       mov      gword ptr [ebp-0x14], eax
        ; GC ptr vars +{V24}
        push     edi
-       push     gword ptr [ebp-0x1C]
+       push     gword ptr [ebp-0x18]
        movzx    edx, bx
        mov      ecx, eax
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V27}
        call     [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:.ctor(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):this]
        ; gcrRegs -[eax ecx edi]
-       mov      edi, gword ptr [ebp-0x18]
+       mov      edi, gword ptr [ebp-0x14]
        ; gcrRegs +[edi]
                        ;; size=64 bbWeight=0 PerfScore 0.00
-G_M12665_IG07:        ; bbWeight=0.84, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref
+G_M12665_IG07:        ; bbWeight=0.84, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
        ; GC ptr vars -{V24}
        mov      ebx, edi
        ; gcrRegs +[ebx]
        test     byte  ptr [esi+0x0A], 1
-       je       G_M12665_IG15
-                       ;; size=12 bbWeight=0.84 PerfScore 3.57
+       je       SHORT G_M12665_IG15
+                       ;; size=8 bbWeight=0.84 PerfScore 3.57
 G_M12665_IG08:        ; bbWeight=0.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRegs=00000000 {}, byref, isz
-       lea      ecx, [ebp-0x14]
+       lea      ecx, [ebp-0x10]
        push     ecx
        mov      ecx, gword ptr [D1FFAB1EH]      ; static handle
        ; gcrRegs +[ecx]
@@ -126,7 +125,7 @@ G_M12665_IG08:        ; bbWeight=0.00, gcrefRegs=000000C8 {ebx esi edi}, byrefRe
        ; gcrRegs -[ecx edx esi]
        test     eax, eax
        je       SHORT G_M12665_IG15
-       mov      edx, gword ptr [ebp-0x14]
+       mov      edx, gword ptr [ebp-0x10]
        ; gcrRegs +[edx]
        jmp      SHORT G_M12665_IG16
                        ;; size=29 bbWeight=0.00 PerfScore 0.02
@@ -153,8 +152,8 @@ G_M12665_IG11:        ; bbWeight=0.84, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      eax, dword ptr [esi]
-       mov      ebx, dword ptr [eax+0x3C]
-       call     [ebx+0x10]<unknown method>
+       mov      eax, dword ptr [eax+0x3C]
+       call     [eax+0x10]<unknown method>
        ; gcrRegs -[ecx] +[eax]
        mov      edi, eax
        ; gcrRegs +[edi]
@@ -165,38 +164,35 @@ G_M12665_IG11:        ; bbWeight=0.84, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      eax, dword ptr [eax+0x40]
        call     [eax+0x08]<unknown method>
        ; gcrRegs -[ecx]
+       mov      ebx, eax
        jmp      SHORT G_M12665_IG13
-                       ;; size=24 bbWeight=0.84 PerfScore 14.06
+                       ;; size=26 bbWeight=0.84 PerfScore 14.27
 G_M12665_IG12:        ; bbWeight=0.84, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       movzx    eax, word  ptr [esi+0x14]
-       mov      dword ptr [ebp-0x10], eax
-       mov      edx, gword ptr [esi+0x1C]
-       ; gcrRegs +[edx]
-       mov      eax, dword ptr [ebp-0x10]
+       movzx    ebx, word  ptr [esi+0x14]
+       mov      eax, gword ptr [esi+0x1C]
+       ; gcrRegs +[eax]
        jmp      SHORT G_M12665_IG14
-                       ;; size=15 bbWeight=0.84 PerfScore 6.72
+                       ;; size=9 bbWeight=0.84 PerfScore 5.04
 G_M12665_IG13:        ; bbWeight=0.29, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[edx]
-       mov      dword ptr [ebp-0x10], eax
+       ; gcrRegs -[eax]
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       call     [ebx+0x14]<unknown method>
+       mov      eax, dword ptr [esi]
+       mov      eax, dword ptr [eax+0x3C]
+       call     [eax+0x14]<unknown method>
        ; gcrRegs -[ecx] +[eax]
-       mov      edx, eax
-       ; gcrRegs +[edx]
-       mov      eax, dword ptr [ebp-0x10]
-       ; gcrRegs -[eax]
-                       ;; size=13 bbWeight=0.29 PerfScore 1.62
-G_M12665_IG14:        ; bbWeight=0.84, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref
-       push     edx
-       mov      ecx, eax
+                       ;; size=10 bbWeight=0.29 PerfScore 2.13
+G_M12665_IG14:        ; bbWeight=0.84, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
+       push     eax
+       mov      ecx, ebx
        mov      edx, edi
+       ; gcrRegs +[edx]
        call     [<unknown method>]
-       ; gcrRegs -[edx edi] +[eax]
+       ; gcrRegs -[edx edi]
        mov      edi, eax
        ; gcrRegs +[edi]
-       jmp      G_M12665_IG07
-                       ;; size=18 bbWeight=0.84 PerfScore 5.67
+       jmp      SHORT G_M12665_IG07
+                       ;; size=15 bbWeight=0.84 PerfScore 5.67
 G_M12665_IG15:        ; bbWeight=0.84, gcrefRegs=00000088 {ebx edi}, byrefRegs=00000000 {}, byref
        ; gcrRegs -[eax esi] +[ebx]
        mov      edx, 0xD1FFAB1E
@@ -205,7 +201,7 @@ G_M12665_IG15:        ; bbWeight=0.84, gcrefRegs=00000088 {ebx edi}, byrefRegs=0
 G_M12665_IG16:        ; bbWeight=0.84, gcrefRegs=0000008C {edx ebx edi}, byrefRegs=00000000 {}, byref, isz
        xor      eax, eax
        ; gcrRegs +[eax]
-       mov      gword ptr [ebp-0x14], eax
+       mov      gword ptr [ebp-0x10], eax
        test     edx, edx
        je       SHORT G_M12665_IG18
        cmp      dword ptr [edx+0x04], 0
@@ -248,6 +244,6 @@ G_M12665_IG21:        ; bbWeight=0.16, epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=0.16 PerfScore 0.56
 
-; Total bytes of code 310, prolog size 14, PerfScore 67.59, instruction count 111, allocated bytes for code 310 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
+Total bytes of code 296, prolog size 14, PerfScore 66.63, instruction count 109, allocated bytes for code 296 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
 ; ============================================================
 

-7 (-2.73%) : 72182.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)

@@ -9,16 +9,16 @@
 ; 2 inlinees with PGO data; 18 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] ( 22, 12.19)     ref  ->  esi         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
-;  V01 loc0         [V01,T10] (  3,  1.09)     ref  ->  ebx         class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+;  V00 arg0         [V00,T00] ( 23, 12.46)     ref  ->  esi         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
+;  V01 loc0         [V01,T09] (  3,  1.09)     ref  ->  ebx         class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
 ;  V02 loc1         [V02,T05] (  4,  1.64)     ref  ->  edx         class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticInfo[]>
 ;* V03 loc2         [V03    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode]>
 ;  V04 tmp0         [V04,T01] (  2,  4   )     int  ->  edi         "impAppendStmt"
-;  V05 tmp1         [V05,T13] (  2,  0   )     ref  ->  edi         class-hnd single-def "non-inline candidate call" <Microsoft.CodeAnalysis.GreenNode>
-;  V06 tmp2         [V06,T14] (  2,  0   )     int  ->  ebx         "impAppendStmt"
-;  V07 tmp3         [V07,T09] (  4,  1.09)     ref  ->  edi        
+;  V05 tmp1         [V05,T12] (  2,  0   )     ref  ->  edi         class-hnd single-def "non-inline candidate call" <Microsoft.CodeAnalysis.GreenNode>
+;  V06 tmp2         [V06,T13] (  2,  0   )     int  ->  ebx         "impAppendStmt"
+;  V07 tmp3         [V07,T08] (  4,  1.09)     ref  ->  edi        
 ;* V08 tmp4         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.GreenNode>
-;  V09 tmp5         [V09,T02] (  3,  3.28)     int  ->  [ebp-0x10]  "impAppendStmt"
+;  V09 tmp5         [V09,T02] (  3,  3.28)     int  ->  ebx         "impAppendStmt"
 ;  V10 tmp6         [V10,T03] (  2,  2   )     int  ->  eax         "guarded devirt return temp"
 ;* V11 tmp7         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxTokenWithTrivia>
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
@@ -26,21 +26,20 @@
 ;  V14 tmp10        [V14,T06] (  3,  1.64)     ref  ->  edi         "guarded devirt return temp"
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
 ;* V16 tmp12        [V16    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode]>
-;  V17 tmp13        [V17,T07] (  3,  1.37)     ref  ->  edx         "guarded devirt return temp"
+;  V17 tmp13        [V17,T07] (  3,  1.37)     ref  ->  eax         "guarded devirt return temp"
 ;* V18 tmp14        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxIdentifierWithTrivia>
 ;* V19 tmp15        [V19    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp16        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
 ;* V21 tmp17        [V21    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp18        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
 ;* V23 tmp19        [V23    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V24 tmp20        [V24,T12] (  3,  0   )     ref  ->  [ebp-0x14]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
-;  V25 tmp21        [V25,T11] (  4,  0   )     ref  ->  [ebp-0x18]  "field V03._node (fldOffset=0x0)" P-INDEP
+;  V24 tmp20        [V24,T11] (  3,  0   )     ref  ->  [ebp-0x10]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
+;  V25 tmp21        [V25,T10] (  4,  0   )     ref  ->  [ebp-0x14]  "field V03._node (fldOffset=0x0)" P-INDEP
 ;* V26 tmp22        [V26    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V13._node (fldOffset=0x0)" P-INDEP
 ;* V27 tmp23        [V27    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V16._node (fldOffset=0x0)" P-INDEP
-;  V28 cse0         [V28,T08] (  3,  1.37)     int  ->  ebx         "CSE - conservative"
-;  V29 cse1         [V29,T04] (  2,  2   )     int  ->  edi         "CSE - moderate"
+;  V28 cse0         [V28,T04] (  2,  2   )     int  ->  edi         "CSE - moderate"
 ;
-; Lcl frame size = 12
+; Lcl frame size = 8
 
 G_M12665_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
        push     ebp
@@ -48,7 +47,7 @@ G_M12665_IG01:        ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        push     edi
        push     esi
        push     ebx
-       sub      esp, 12
+       sub      esp, 8
        mov      esi, ecx
        ; gcrRegs +[esi]
                        ;; size=11 bbWeight=1 PerfScore 4.75
@@ -88,21 +87,21 @@ G_M12665_IG04:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; gcrRegs +[ecx]
        call     [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:get_TrailingTrivia():Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode]:this]
        ; gcrRegs -[ecx] +[eax]
-       mov      gword ptr [ebp-0x18], eax
+       mov      gword ptr [ebp-0x14], eax
        ; GC ptr vars +{V25}
        mov      ecx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [ebp-0x14], eax
+       mov      gword ptr [ebp-0x10], eax
        ; GC ptr vars +{V24}
        push     edi
-       push     gword ptr [ebp-0x18]
+       push     gword ptr [ebp-0x14]
        movzx    edx, bx
        mov      ecx, eax
        ; gcrRegs +[ecx]
        ; GC ptr vars -{V25}
        call     [Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:.ctor(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):this]
        ; gcrRegs -[eax ecx edi]
-       mov      edi, gword ptr [ebp-0x14]
+       mov      edi, gword ptr [ebp-0x10]
        ; gcrRegs +[edi]
                        ;; size=64 bbWeight=0 PerfScore 0.00
 G_M12665_IG05:        ; bbWeight=0.55, gcVars=00000000 {}, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, gcvars, byref, isz
@@ -136,8 +135,8 @@ G_M12665_IG08:        ; bbWeight=0.55, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      eax, dword ptr [esi]
-       mov      ebx, dword ptr [eax+0x3C]
-       call     [ebx+0x10]<unknown method>
+       mov      eax, dword ptr [eax+0x3C]
+       call     [eax+0x10]<unknown method>
        ; gcrRegs -[ecx] +[eax]
        mov      edi, eax
        ; gcrRegs +[edi]
@@ -148,34 +147,31 @@ G_M12665_IG08:        ; bbWeight=0.55, gcrefRegs=00000040 {esi}, byrefRegs=00000
        mov      eax, dword ptr [eax+0x40]
        call     [eax+0x08]Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:get_ContextualKind():ushort:this
        ; gcrRegs -[ecx]
+       mov      ebx, eax
        jmp      SHORT G_M12665_IG10
-                       ;; size=24 bbWeight=0.55 PerfScore 9.15
+                       ;; size=26 bbWeight=0.55 PerfScore 9.29
 G_M12665_IG09:        ; bbWeight=0.55, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref, isz
-       movzx    eax, word  ptr [esi+0x14]
-       mov      dword ptr [ebp-0x10], eax
-       mov      edx, gword ptr [esi+0x1C]
-       ; gcrRegs +[edx]
-       mov      eax, dword ptr [ebp-0x10]
+       movzx    ebx, word  ptr [esi+0x14]
+       mov      eax, gword ptr [esi+0x1C]
+       ; gcrRegs +[eax]
        jmp      SHORT G_M12665_IG11
-                       ;; size=15 bbWeight=0.55 PerfScore 4.37
+                       ;; size=9 bbWeight=0.55 PerfScore 3.28
 G_M12665_IG10:        ; bbWeight=0.27, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000000 {}, byref
-       ; gcrRegs -[edx]
-       mov      dword ptr [ebp-0x10], eax
+       ; gcrRegs -[eax]
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       call     [ebx+0x14]<unknown method>
+       mov      eax, dword ptr [esi]
+       mov      eax, dword ptr [eax+0x3C]
+       call     [eax+0x14]<unknown method>
        ; gcrRegs -[ecx] +[eax]
-       mov      edx, eax
-       ; gcrRegs +[edx]
-       mov      eax, dword ptr [ebp-0x10]
-       ; gcrRegs -[eax]
-                       ;; size=13 bbWeight=0.27 PerfScore 1.50
-G_M12665_IG11:        ; bbWeight=0.55, gcrefRegs=000000C4 {edx esi edi}, byrefRegs=00000000 {}, byref, isz
-       push     edx
-       mov      ecx, eax
+                       ;; size=10 bbWeight=0.27 PerfScore 1.98
+G_M12665_IG11:        ; bbWeight=0.55, gcrefRegs=000000C1 {eax esi edi}, byrefRegs=00000000 {}, byref, isz
+       push     eax
+       mov      ecx, ebx
        mov      edx, edi
+       ; gcrRegs +[edx]
        call     [<unknown method>]
-       ; gcrRegs -[edx edi] +[eax]
+       ; gcrRegs -[edx edi]
        mov      edi, eax
        ; gcrRegs +[edi]
        jmp      SHORT G_M12665_IG05
@@ -218,6 +214,6 @@ G_M12665_IG16:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000084 {edx
        jmp      SHORT G_M12665_IG12
                        ;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 256, prolog size 9, PerfScore 54.29, instruction count 96, allocated bytes for code 256 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
+Total bytes of code 249, prolog size 9, PerfScore 53.81, instruction count 94, allocated bytes for code 249 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
 ; ============================================================
 

+31 (+1.20%) : 290447.dasm - System.IO.Tests.BaseSymbolicLinksFileSystem:ResolveLinkTargetSucceeds(System.String,ubyte):this (Tier1)

@@ -9,21 +9,21 @@
 ; 43 inlinees with PGO data; 88 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] ( 16,  6   )     ref  ->  [ebp-0x54]  this class-hnd single-def <System.IO.Tests.BaseSymbolicLinks_FileSystem>
-;  V01 arg1         [V01,T07] ( 27,  5.20)     ref  ->  [ebp-0x58]  class-hnd single-def <System.String>
-;  V02 arg2         [V02,T120] (  2,  0   )   ubyte  ->  [ebp+0x08]  single-def
-;  V03 loc0         [V03,T56] ( 15,  0.80)     ref  ->  [ebp-0x5C]  class-hnd exact spill-single-def <System.String>
-;  V04 loc1         [V04,T64] ( 21,  0   )     ref  ->  [ebp-0x60]  class-hnd <System.IO.FileSystemInfo>
-;  V05 loc2         [V05,T49] (  6,  1   )     ref  ->  [ebp-0x64]  class-hnd spill-single-def <System.IO.FileSystemInfo>
-;  V06 loc3         [V06,T30] (  2,  2   )     ref  ->  edi         class-hnd single-def <System.String>
-;  V07 tmp0         [V07,T33] (  3,  1.80)     ref  ->  edi        
+;  V00 this         [V00,T06] ( 16,  6   )     ref  ->  [ebp-0x4C]  this class-hnd single-def <System.IO.Tests.BaseSymbolicLinks_FileSystem>
+;  V01 arg1         [V01,T07] ( 27,  5.20)     ref  ->  [ebp-0x50]  class-hnd single-def <System.String>
+;  V02 arg2         [V02,T117] (  2,  0   )   ubyte  ->  [ebp+0x08]  single-def
+;  V03 loc0         [V03,T28] ( 17,  2.40)     ref  ->  [ebp-0x54]  class-hnd exact spill-single-def <System.String>
+;  V04 loc1         [V04,T61] ( 21,  0   )     ref  ->  [ebp-0x58]  class-hnd <System.IO.FileSystemInfo>
+;  V05 loc2         [V05,T30] (  8,  2   )     ref  ->  [ebp-0x5C]  class-hnd spill-single-def <System.IO.FileSystemInfo>
+;  V06 loc3         [V06,T32] (  2,  2   )     ref  ->  edi         class-hnd single-def <System.String>
+;  V07 tmp0         [V07,T35] (  3,  1.80)     ref  ->  edi        
 ;* V08 tmp1         [V08    ] (  0,  0   )     ref  ->  zero-ref    single-def "guarded devirt return temp"
 ;* V09 tmp2         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.IO.Tests.DirectoryInfo_SymbolicLinks>
 ;* V10 tmp3         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.IO.Tests.DirectoryInfo_SymbolicLinks>
 ;* V11 tmp4         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.IO.Tests.DirectoryInfo_SymbolicLinks>
-;  V12 tmp5         [V12,T86] (  3,  0   )     ref  ->  ebx         "guarded devirt return temp"
+;  V12 tmp5         [V12,T83] (  3,  0   )     ref  ->  ebx         "guarded devirt return temp"
 ;* V13 tmp6         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.IO.Tests.DirectoryInfo_SymbolicLinks>
-;  V14 tmp7         [V14,T29] (  3,  2   )     ref  ->  edx         "guarded devirt return temp"
+;  V14 tmp7         [V14,T31] (  3,  2   )     ref  ->  edx         "guarded devirt return temp"
 ;* V15 tmp8         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.IO.DirectoryInfo>
 ;* V16 tmp9         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.String>
 ;  V17 tmp10        [V17,T16] (  2,  4   )     ref  ->  edi         class-hnd exact single-def "dup spill" <System.String>
@@ -31,8 +31,8 @@
 ;  V19 tmp12        [V19,T09] (  3,  6   )     ref  ->  edi         class-hnd exact single-def "dup spill" <System.String>
 ;* V20 tmp13        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.String>
 ;* V21 tmp14        [V21    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[int]>
-;  V22 tmp15        [V22,T03] (  9, 11.99)     ref  ->  [ebp-0x68]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
-;  V23 tmp16        [V23,T80] (  4,  0   )     ref  ->  edi         class-hnd "Inline return value spill temp" <System.String>
+;  V22 tmp15        [V22,T03] (  9, 11.99)     ref  ->  [ebp-0x60]  class-hnd exact spill-single-def "Inlining Arg" <System.String>
+;  V23 tmp16        [V23,T77] (  4,  0   )     ref  ->  edi         class-hnd "Inline return value spill temp" <System.String>
 ;* V24 tmp17        [V24    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V25 tmp18        [V25    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V26 tmp19        [V26    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
@@ -42,8 +42,8 @@
 ;* V30 tmp23        [V30    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V31 tmp24        [V31    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;  V32 tmp25        [V32,T19] (  2,  4   )     int  ->  [ebp-0x10]  spill-single-def "Inlining Arg"
-;  V33 tmp26        [V33,T17] (  2,  4   )   byref  ->  [ebp-0x6C]  spill-single-def "Inlining Arg"
-;* V34 tmp27        [V34,T121] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V33 tmp26        [V33,T17] (  2,  4   )   byref  ->  [ebp-0x64]  spill-single-def "Inlining Arg"
+;* V34 tmp27        [V34,T118] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V35 tmp28        [V35    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V36 tmp29        [V36    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V37 tmp30        [V37,T53] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
@@ -51,42 +51,42 @@
 ;* V39 tmp32        [V39    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;* V40 tmp33        [V40    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V41 tmp34        [V41    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V42 tmp35        [V42,T122] (  2,  0   )     int  ->  edi         "Inlining Arg"
-;  V43 tmp36        [V43,T100] (  2,  0   )   byref  ->  [ebp-0x70]  spill-single-def "Inlining Arg"
+;  V42 tmp35        [V42,T119] (  2,  0   )     int  ->  edi         "Inlining Arg"
+;  V43 tmp36        [V43,T97] (  2,  0   )   byref  ->  [ebp-0x68]  spill-single-def "Inlining Arg"
 ;* V44 tmp37        [V44    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V45 tmp38        [V45    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V46 tmp39        [V46    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V47 tmp40        [V47,T123] (  2,  0   )     int  ->  [ebp-0x14]  spill-single-def "Inlining Arg"
-;  V48 tmp41        [V48,T101] (  2,  0   )   byref  ->  [ebp-0x74]  spill-single-def "Inlining Arg"
-;  V49 tmp42        [V49,T68] (  7,  0   )     ref  ->  [ebp-0x78]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.IO.DirectoryInfo>
-;  V50 tmp43        [V50,T69] (  7,  0   )     ref  ->  [ebp-0x7C]  class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
-;  V51 tmp44        [V51,T73] (  5,  0   )     ref  ->  eax         class-hnd "Inlining Arg" <System.String>
+;  V47 tmp40        [V47,T120] (  2,  0   )     int  ->  [ebp-0x14]  spill-single-def "Inlining Arg"
+;  V48 tmp41        [V48,T98] (  2,  0   )   byref  ->  [ebp-0x6C]  spill-single-def "Inlining Arg"
+;  V49 tmp42        [V49,T65] (  7,  0   )     ref  ->  [ebp-0x70]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.IO.DirectoryInfo>
+;  V50 tmp43        [V50,T66] (  7,  0   )     ref  ->  [ebp-0x74]  class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
+;  V51 tmp44        [V51,T70] (  5,  0   )     ref  ->  eax         class-hnd "Inlining Arg" <System.String>
 ;* V52 tmp45        [V52    ] (  0,  0   )     ref  ->  zero-ref   
-;  V53 tmp46        [V53,T87] (  3,  0   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
-;* V54 tmp47        [V54,T148] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V55 tmp48        [V55,T124] (  2,  0   )   ubyte  ->  eax         "Inline return value spill temp"
-;  V56 tmp49        [V56,T102] (  2,  0   )   byref  ->  [ebp-0x80]  spill-single-def "Inlining Arg"
-;* V57 tmp50        [V57,T149] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
-;  V58 tmp51        [V58,T125] (  2,  0   )     int  ->  [ebp-0x18]  spill-single-def "Inlining Arg"
+;  V53 tmp46        [V53,T84] (  3,  0   )     ref  ->  esi         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;* V54 tmp47        [V54,T145] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V55 tmp48        [V55,T121] (  2,  0   )   ubyte  ->  eax         "Inline return value spill temp"
+;  V56 tmp49        [V56,T99] (  2,  0   )   byref  ->  [ebp-0x78]  spill-single-def "Inlining Arg"
+;* V57 tmp50        [V57,T146] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
+;  V58 tmp51        [V58,T122] (  2,  0   )     int  ->  [ebp-0x18]  spill-single-def "Inlining Arg"
 ;* V59 tmp52        [V59    ] (  0,  0   )   short  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V60 tmp53        [V60    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;* V61 tmp54        [V61    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V62 tmp55        [V62,T74] (  5,  0   )     ref  ->  [ebp-0x84]  class-hnd "Inlining Arg" <System.String>
-;  V63 tmp56        [V63,T65] ( 11,  0   )     ref  ->  [ebp-0x88]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
-;* V64 tmp57        [V64,T145] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.String>
-;  V65 tmp58        [V65,T78] (  5,  0   )     int  ->  [ebp-0x1C]  "Inline stloc first use temp"
-;  V66 tmp59        [V66,T81] (  4,  0   )     ref  ->  eax         class-hnd exact single-def "Inline stloc first use temp" <System.Version>
-;  V67 tmp60        [V67,T79] (  5,  0   )     int  ->  eax        
+;  V62 tmp55        [V62,T71] (  5,  0   )     ref  ->  [ebp-0x7C]  class-hnd "Inlining Arg" <System.String>
+;  V63 tmp56        [V63,T62] ( 11,  0   )     ref  ->  [ebp-0x80]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
+;* V64 tmp57        [V64,T142] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.String>
+;  V65 tmp58        [V65,T75] (  5,  0   )     int  ->  [ebp-0x1C]  "Inline stloc first use temp"
+;  V66 tmp59        [V66,T78] (  4,  0   )     ref  ->  eax         class-hnd exact single-def "Inline stloc first use temp" <System.Version>
+;  V67 tmp60        [V67,T76] (  5,  0   )     int  ->  eax        
 ;* V68 tmp61        [V68    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V69 tmp62        [V69    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V70 tmp63        [V70    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V71 tmp64        [V71,T88] (  3,  0   )     ref  ->  edx         class-hnd "Inline return value spill temp" <System.String>
-;* V72 tmp65        [V72,T126] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V73 tmp66        [V73,T91] (  3,  0   )  ushort  ->  edx         single-def "Inline stloc first use temp"
+;  V71 tmp64        [V71,T85] (  3,  0   )     ref  ->  edx         class-hnd "Inline return value spill temp" <System.String>
+;* V72 tmp65        [V72,T123] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V73 tmp66        [V73,T88] (  3,  0   )  ushort  ->  edx         single-def "Inline stloc first use temp"
 ;* V74 tmp67        [V74    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
-;  V75 tmp68        [V75,T82] (  4,  0   )     ref  ->  [ebp-0x8C]  class-hnd "Inline return value spill temp" <System.String>
-;* V76 tmp69        [V76,T127] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V77 tmp70        [V77,T92] (  3,  0   )  ushort  ->  edx         single-def "Inline stloc first use temp"
+;  V75 tmp68        [V75,T79] (  4,  0   )     ref  ->  [ebp-0x84]  class-hnd "Inline return value spill temp" <System.String>
+;* V76 tmp69        [V76,T124] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V77 tmp70        [V77,T89] (  3,  0   )  ushort  ->  edx         single-def "Inline stloc first use temp"
 ;* V78 tmp71        [V78    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
 ;* V79 tmp72        [V79    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.OperatingSystem>
 ;* V80 tmp73        [V80    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline return value spill temp"
@@ -94,11 +94,11 @@
 ;* V82 tmp75        [V82    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;  V83 tmp76        [V83    ] (  2,  0   )   byref  ->  [ebp-0x24]  do-not-enreg[P] must-init pinned "Inline stloc first use temp"
 ;* V84 tmp77        [V84    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V85 tmp78        [V85,T128] (  2,  0   )   ubyte  ->  ebx         single-def "Inline stloc first use temp"
-;  V86 tmp79        [V86,T129] (  2,  0   )     int  ->  ecx         single-def "Inline stloc first use temp"
-;  V87 tmp80        [V87,T130] (  2,  0   )   ubyte  ->  ebx         single-def "Inline stloc first use temp"
-;  V88 tmp81        [V88,T83] (  4,  0   )   byref  ->  eax         "Inline return value spill temp"
-;  V89 tmp82        [V89,T84] (  4,  0   )   byref  ->  ecx         "Inline return value spill temp"
+;  V85 tmp78        [V85,T125] (  2,  0   )   ubyte  ->  ebx         single-def "Inline stloc first use temp"
+;  V86 tmp79        [V86,T126] (  2,  0   )     int  ->  ecx         single-def "Inline stloc first use temp"
+;  V87 tmp80        [V87,T127] (  2,  0   )   ubyte  ->  ebx         single-def "Inline stloc first use temp"
+;  V88 tmp81        [V88,T80] (  4,  0   )   byref  ->  eax         "Inline return value spill temp"
+;  V89 tmp82        [V89,T81] (  4,  0   )   byref  ->  ecx         "Inline return value spill temp"
 ;* V90 tmp83        [V90    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Runtime.InteropServices.OSPlatform>
 ;* V91 tmp84        [V91    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Runtime.InteropServices.OSPlatform>
 ;* V92 tmp85        [V92    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
@@ -109,7 +109,7 @@
 ;* V97 tmp90        [V97    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V98 tmp91        [V98    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]>
 ;* V99 tmp92        [V99    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Nullable`1[ubyte]>
-;* V100 tmp93       [V100,T146] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.IO.DirectoryInfo>
+;* V100 tmp93       [V100,T143] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.IO.DirectoryInfo>
 ;* V101 tmp94       [V101    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <<unknown class>>
 ;* V102 tmp95       [V102    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <<unknown class>>
 ;* V103 tmp96       [V103    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -120,23 +120,23 @@
 ;* V108 tmp101      [V108    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V109 tmp102      [V109    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inlining Arg" <System.Nullable`1[ubyte]>
 ;* V110 tmp103      [V110    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.String>
-;  V111 tmp104      [V111,T103] (  2,  0   )     ref  ->  ecx         class-hnd exact single-def "bubbling QMark2" <System.String>
-;  V112 tmp105      [V112,T104] (  2,  0   )     ref  ->  edx         class-hnd "spilling QMark2" <System.IO.DirectoryInfo>
+;  V111 tmp104      [V111,T100] (  2,  0   )     ref  ->  ecx         class-hnd exact single-def "bubbling QMark2" <System.String>
+;  V112 tmp105      [V112,T101] (  2,  0   )     ref  ->  edx         class-hnd "spilling QMark2" <System.IO.DirectoryInfo>
 ;* V113 tmp106      [V113    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V114 tmp107      [V114,T70] (  7,  0   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
-;  V115 tmp108      [V115,T75] (  5,  0   )     ref  ->  eax         class-hnd "Inlining Arg" <System.String>
+;  V114 tmp107      [V114,T67] (  7,  0   )     ref  ->  ebx         class-hnd exact single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
+;  V115 tmp108      [V115,T72] (  5,  0   )     ref  ->  eax         class-hnd "Inlining Arg" <System.String>
 ;* V116 tmp109      [V116    ] (  0,  0   )     ref  ->  zero-ref   
-;  V117 tmp110      [V117,T89] (  3,  0   )     ref  ->  ecx         class-hnd "Inline return value spill temp" <System.IO.FileSystemInfo>
-;  V118 tmp111      [V118,T90] (  3,  0   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <System.String>
-;* V119 tmp112      [V119,T150] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V120 tmp113      [V120,T71] (  7,  0   )     ref  ->  ebx        
+;  V117 tmp110      [V117,T86] (  3,  0   )     ref  ->  ecx         class-hnd "Inline return value spill temp" <System.IO.FileSystemInfo>
+;  V118 tmp111      [V118,T87] (  3,  0   )     ref  ->  ecx         class-hnd exact single-def "Inlining Arg" <System.String>
+;* V119 tmp112      [V119,T147] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
+;  V120 tmp113      [V120,T68] (  7,  0   )     ref  ->  ebx        
 ;* V121 tmp114      [V121    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.String>
-;  V122 tmp115      [V122,T72] (  7,  0   )     ref  ->  [ebp-0x90]  class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
+;  V122 tmp115      [V122,T69] (  7,  0   )     ref  ->  [ebp-0x88]  class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.DirectoryInfo>
 ;* V123 tmp116      [V123    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.IO.FileInfo>
 ;* V124 tmp117      [V124    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V125 tmp118      [V125    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V126 tmp119      [V126    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <<unknown class>>
-;  V127 tmp120      [V127,T76] (  5,  0   )     ref  ->  eax         class-hnd "Inlining Arg" <System.String>
+;  V127 tmp120      [V127,T73] (  5,  0   )     ref  ->  eax         class-hnd "Inlining Arg" <System.String>
 ;* V128 tmp121      [V128    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V129 tmp122      [V129    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V130 tmp123      [V130    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]>
@@ -145,16 +145,16 @@
 ;* V133 tmp126      [V133    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V134 tmp127      [V134    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V135 tmp128      [V135    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V136 tmp129      [V136,T131] (  2,  0   )     int  ->  [ebp-0x28]  spill-single-def "Inlining Arg"
-;  V137 tmp130      [V137,T105] (  2,  0   )   byref  ->  [ebp-0x94]  spill-single-def "Inlining Arg"
-;  V138 tmp131      [V138,T85] (  2,  0   )   ubyte  ->  eax         "Inline return value spill temp"
+;  V136 tmp129      [V136,T128] (  2,  0   )     int  ->  [ebp-0x28]  spill-single-def "Inlining Arg"
+;  V137 tmp130      [V137,T102] (  2,  0   )   byref  ->  [ebp-0x8C]  spill-single-def "Inlining Arg"
+;  V138 tmp131      [V138,T82] (  2,  0   )   ubyte  ->  eax         "Inline return value spill temp"
 ;* V139 tmp132      [V139    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V140 tmp133      [V140,T151] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V141 tmp134      [V141,T93] (  3,  0   )  ushort  ->  eax         "Inlining Arg"
-;  V142 tmp135      [V142,T94] (  3,  0   )   ubyte  ->  eax         "Inline return value spill temp"
-;  V143 tmp136      [V143,T95] (  3,  0   )  ushort  ->  edx         "Inlining Arg"
-;* V144 tmp137      [V144,T152] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V145 tmp138      [V145,T96] (  3,  0   )  ushort  ->  eax         "Inlining Arg"
+;* V140 tmp133      [V140,T148] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V141 tmp134      [V141,T90] (  3,  0   )  ushort  ->  eax         "Inlining Arg"
+;  V142 tmp135      [V142,T91] (  3,  0   )   ubyte  ->  eax         "Inline return value spill temp"
+;  V143 tmp136      [V143,T92] (  3,  0   )  ushort  ->  edx         "Inlining Arg"
+;* V144 tmp137      [V144,T149] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V145 tmp138      [V145,T93] (  3,  0   )  ushort  ->  eax         "Inlining Arg"
 ;* V146 tmp139      [V146    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
 ;  V147 tmp140      [V147,T13] (  7,  4.80)     ref  ->  eax         class-hnd "Inline return value spill temp" <System.String>
 ;* V148 tmp141      [V148    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
@@ -163,98 +163,98 @@
 ;* V151 tmp144      [V151    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V152 tmp145      [V152    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V153 tmp146      [V153    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V154 tmp147      [V154,T132] (  2,  0   )     int  ->  edi         "Inlining Arg"
-;  V155 tmp148      [V155,T106] (  2,  0   )   byref  ->  [ebp-0x98]  spill-single-def "Inlining Arg"
-;* V156 tmp149      [V156,T42] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V154 tmp147      [V154,T129] (  2,  0   )     int  ->  [ebp-0x2C]  spill-single-def "Inlining Arg"
+;  V155 tmp148      [V155,T103] (  2,  0   )   byref  ->  [ebp-0x90]  spill-single-def "Inlining Arg"
+;* V156 tmp149      [V156,T44] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V157 tmp150      [V157    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V158 tmp151      [V158    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V159 tmp152      [V159,T14] (  6,  4   )     int  ->  edx         "Inline stloc first use temp"
+;  V159 tmp152      [V159,T14] (  6,  4   )     int  ->  eax         "Inline stloc first use temp"
 ;* V160 tmp153      [V160    ] (  0,  0   )  ushort  ->  zero-ref    "Inline stloc first use temp"
 ;* V161 tmp154      [V161    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V162 tmp155      [V162    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V163 tmp156      [V163    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V164 tmp157      [V164,T23] (  2,  3.20)     int  ->  [ebp-0x2C]  spill-single-def "Inlining Arg"
-;  V165 tmp158      [V165,T20] (  2,  3.20)   byref  ->  edi         single-def "Inlining Arg"
-;  V166 tmp159      [V166,T28] (  4,  2.40)     int  ->  eax         "Inline return value spill temp"
+;  V164 tmp157      [V164,T23] (  2,  3.20)     int  ->  [ebp-0x30]  spill-single-def "Inlining Arg"
+;  V165 tmp158      [V165,T20] (  2,  3.20)   byref  ->  [ebp-0x94]  spill-single-def "Inlining Arg"
+;  V166 tmp159      [V166,T29] (  4,  2.40)     int  ->  eax         "Inline return value spill temp"
 ;* V167 tmp160      [V167    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V168 tmp161      [V168,T05] (  4, 13.23)     int  ->  eax         single-def "Inline stloc first use temp"
 ;  V169 tmp162      [V169,T01] ( 12, 35.05)     int  ->  ecx         "Inline stloc first use temp"
 ;  V170 tmp163      [V170,T02] (  2, 21.74)     int  ->  ecx         "dup spill"
 ;* V171 tmp164      [V171,T12] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V172 tmp165      [V172,T00] (  3, 31.46)  ushort  ->  ebx         "Inlining Arg"
-;* V173 tmp166      [V173,T63] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V174 tmp167      [V174,T62] (  3,  0.25)  ushort  ->  ebx         "Inlining Arg"
-;  V175 tmp168      [V175,T34] (  4,  1.60)     ref  ->  eax         class-hnd "Inline return value spill temp" <System.String>
+;* V173 tmp166      [V173,T60] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V174 tmp167      [V174,T59] (  3,  0.25)  ushort  ->  edi         "Inlining Arg"
+;  V175 tmp168      [V175,T36] (  4,  1.60)     ref  ->  eax         class-hnd "Inline return value spill temp" <System.String>
 ;* V176 tmp169      [V176    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V177 tmp170      [V177    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V178 tmp171      [V178,T77] (  5,  0   )     ref  ->  ecx        
-;* V179 tmp172      [V179,T60] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V180 tmp173      [V180,T61] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V178 tmp171      [V178,T74] (  5,  0   )     ref  ->  ecx        
...

+5 (+1.45%) : 508910.dasm - System.Linq.Expressions.Compiler.ILGen:CanEmitILConstant(System.Type):ubyte (Tier1)

@@ -9,7 +9,7 @@
 ; 9 inlinees with PGO data; 8 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] ( 11,  6   )     ref  ->  esi         class-hnd single-def <System.Type>
+;  V00 arg0         [V00,T00] ( 12,  6   )     ref  ->  esi         class-hnd single-def <System.Type>
 ;  V01 loc0         [V01,T07] (  3,  3   )     int  ->  edi        
 ;  V02 tmp0         [V02,T01] ( 12,  5   )     ref  ->  esi         class-hnd "Inline return value spill temp" <System.Type>
 ;  V03 tmp1         [V03,T18] (  2,  0   )   ubyte  ->  ecx         "Inline return value spill temp"
@@ -44,9 +44,8 @@
 ;* V32 tmp30        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V06.m_asTAddr (fldOffset=0x0)" P-INDEP
 ;  V33 tmp31        [V33,T09] (  3,  3   )     int  ->  edi         "field V09.m_asTAddr (fldOffset=0x0)" P-INDEP
 ;  V34 tmp32        [V34,T21] (  3,  0   )     ref  ->  eax         single-def "arr expr"
-;  V35 cse0         [V35,T22] (  3,  0   )     int  ->  edi         "CSE - conservative"
-;  V36 cse1         [V36,T10] (  3,  3   )     int  ->  ecx         "CSE - moderate"
-;  V37 cse2         [V37,T11] (  3,  3   )     int  ->  ecx         "CSE - moderate"
+;  V35 cse0         [V35,T10] (  3,  3   )     int  ->  ecx         "CSE - moderate"
+;  V36 cse1         [V36,T11] (  3,  3   )     int  ->  ecx         "CSE - moderate"
 ;
 ; Lcl frame size = 0
 
@@ -246,8 +245,8 @@ G_M65409_IG26:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        mov      ecx, esi
        ; gcrRegs +[ecx]
        mov      eax, dword ptr [esi]
-       mov      edi, dword ptr [eax+0x40]
-       call     [edi+0x0C]<unknown method>
+       mov      eax, dword ptr [eax+0x40]
+       call     [eax+0x0C]<unknown method>
        ; gcrRegs -[ecx] +[eax]
        xor      ecx, ecx
        cmp      eax, 0xD1FFAB1E
@@ -260,15 +259,17 @@ G_M65409_IG27:        ; bbWeight=0, gcrefRegs=00000040 {esi}, byrefRegs=00000000
        ; gcrRegs -[eax]
        mov      ecx, esi
        ; gcrRegs +[ecx]
-       call     [edi+0x14]<unknown method>
+       mov      eax, dword ptr [esi]
+       mov      eax, dword ptr [eax+0x40]
+       call     [eax+0x14]<unknown method>
        ; gcrRegs -[ecx esi] +[eax]
        cmp      dword ptr [eax+0x04], 0
        jbe      SHORT G_M65409_IG25
        mov      esi, gword ptr [eax+0x08]
        ; gcrRegs +[esi]
        jmp      G_M65409_IG09
-                       ;; size=19 bbWeight=0 PerfScore 0.00
+                       ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 345, prolog size 6, PerfScore 64.50, instruction count 125, allocated bytes for code 345 (MethodHash=ab72007e) for method System.Linq.Expressions.Compiler.ILGen:CanEmitILConstant(System.Type):ubyte (Tier1)
+Total bytes of code 350, prolog size 6, PerfScore 64.50, instruction count 127, allocated bytes for code 350 (MethodHash=ab72007e) for method System.Linq.Expressions.Compiler.ILGen:CanEmitILConstant(System.Type):ubyte (Tier1)
 ; ============================================================
 

+6 (+6.06%) : 156381.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsPreprocessorContextualKeyword(ushort):ubyte (Tier1)

@@ -11,8 +11,7 @@
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )  ushort  ->  ecx         single-def
 ;  V01 tmp0         [V01,T02] (  3,  1.50)   ubyte  ->  eax         "Inline return value spill temp"
-;  V02 cse0         [V02,T03] (  3,  0   )     int  ->  eax         "CSE - conservative"
-;  V03 cse1         [V03,T00] (  8,  5   )     int  ->  edx         "CSE - aggressive"
+;  V02 cse0         [V02,T00] (  9,  5   )     int  ->  edx         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -63,11 +62,12 @@ G_M59682_IG09:        ; bbWeight=0, gcVars=00000000 {}, gcrefRegs=00000000 {}, b
        jbe      SHORT G_M59682_IG03
        cmp      edx, 0x208D
        je       SHORT G_M59682_IG03
+       lea      eax, [edx-0x2083]
        cmp      eax, 3
        jbe      SHORT G_M59682_IG06
        jmp      SHORT G_M59682_IG07
-                       ;; size=26 bbWeight=0 PerfScore 0.00
+                       ;; size=32 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 99, prolog size 3, PerfScore 10.75, instruction count 33, allocated bytes for code 99 (MethodHash=791516dd) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsPreprocessorContextualKeyword(ushort):ubyte (Tier1)
+Total bytes of code 105, prolog size 3, PerfScore 10.75, instruction count 34, allocated bytes for code 105 (MethodHash=791516dd) for method Microsoft.CodeAnalysis.CSharp.SyntaxFacts:IsPreprocessorContextualKeyword(ushort):ubyte (Tier1)
 ; ============================================================
 

librariestestsnotieredcompilation.run.windows.x86.Release.mch

-2 (-3.23%) : 149564.dasm - System.SpanTests.ReadOnlySpanTests+<>cDisplayClass21_0:b9():this (FullOpts)

@@ -34,24 +34,24 @@
 ;* V23 tmp22        [V23    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V24 tmp23        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V25 tmp24        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
-;* V26 tmp25        [V26,T06] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V27 tmp26        [V27,T03] (  2,  2   )     int  ->  eax         "Inline stloc first use temp"
+;* V26 tmp25        [V26,T05] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V27 tmp26        [V27,T03] (  3,  3   )     int  ->  edx         "Inline stloc first use temp"
 ;* V28 tmp27        [V28    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp28        [V29    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp29        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V31 tmp30        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V32 tmp31        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V01._value (fldOffset=0x0)" P-INDEP
-;* V33 tmp32        [V33,T07] (  0,  0   )     int  ->  zero-ref    "field V03._value (fldOffset=0x0)" P-INDEP
+;* V33 tmp32        [V33,T06] (  0,  0   )     int  ->  zero-ref    "field V03._value (fldOffset=0x0)" P-INDEP
 ;* V34 tmp33        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V04._value (fldOffset=0x0)" P-INDEP
 ;* V35 tmp34        [V35    ] (  0,  0   )     int  ->  zero-ref    "field V05.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V36 tmp35        [V36,T08] (  0,  0   )     int  ->  zero-ref    "field V05.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V36 tmp35        [V36,T07] (  0,  0   )     int  ->  zero-ref    "field V05.<End>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V37 tmp36        [V37    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V38 tmp37        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x4)" P-INDEP
 ;* V39 tmp38        [V39    ] (  0,  0   )     int  ->  zero-ref    "field V07._value (fldOffset=0x0)" P-INDEP
 ;* V40 tmp39        [V40    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V41 tmp40        [V41    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x4)" P-INDEP
 ;* V42 tmp41        [V42    ] (  0,  0   )     int  ->  zero-ref    "field V09.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V43 tmp42        [V43,T09] (  0,  0   )     int  ->  zero-ref    "field V09.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V43 tmp42        [V43,T08] (  0,  0   )     int  ->  zero-ref    "field V09.<End>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V44 tmp43        [V44    ] (  0,  0   )     int  ->  zero-ref    "field V10.Item1 (fldOffset=0x0)" P-INDEP
 ;* V45 tmp44        [V45    ] (  0,  0   )     int  ->  zero-ref    "field V10.Item2 (fldOffset=0x4)" P-INDEP
 ;* V46 tmp45        [V46    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
@@ -66,8 +66,7 @@
 ;* V55 tmp54        [V55    ] (  0,  0   )     int  ->  zero-ref    "field V20._value (fldOffset=0x0)" P-INDEP
 ;* V56 tmp55        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V21._value (fldOffset=0x0)" P-INDEP
 ;* V57 tmp56        [V57    ] (  0,  0   )     int  ->  zero-ref    "field V25.Item1 (fldOffset=0x0)" P-INDEP
-;  V58 tmp57        [V58,T05] (  2,  2   )     int  ->  edx         "field V25.Item2 (fldOffset=0x4)" P-INDEP
-;  V59 cse0         [V59,T04] (  3,  3   )     int  ->  edx         "CSE - conservative"
+;  V58 tmp57        [V58,T04] (  2,  2   )     int  ->  edx         "field V25.Item2 (fldOffset=0x4)" P-INDEP
 ;
 ; Lcl frame size = 0
 
@@ -83,12 +82,11 @@ G_M60991_IG02:        ; bbWeight=1, gcrefRegs=00000002 {ecx}, byrefRegs=00000000
        mov      ecx, dword ptr [ecx+0x04]
        ; gcrRegs -[ecx]
        mov      edx, ecx
-       mov      eax, edx
-       cmp      eax, ecx
+       cmp      edx, ecx
        ja       SHORT G_M60991_IG06
        test     edx, edx
        jge      SHORT G_M60991_IG04
-                       ;; size=22 bbWeight=1 PerfScore 8.25
+                       ;; size=20 bbWeight=1 PerfScore 8.00
 G_M60991_IG03:        ; bbWeight=0.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
        mov      ecx, 0xD1FFAB1E
        ; gcrRegs +[ecx]
@@ -111,6 +109,6 @@ G_M60991_IG06:        ; bbWeight=0, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 62, prolog size 3, PerfScore 12.75, instruction count 22, allocated bytes for code 62 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
+Total bytes of code 60, prolog size 3, PerfScore 12.50, instruction count 21, allocated bytes for code 60 (MethodHash=49eb11c0) for method System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)
 ; ============================================================
 

-16 (-0.20%) : 185859.dasm - System.Reflection.Emit.Tests.AssemblySaveAssemblyBuilder:AssemblyWithDifferentTypes():this (FullOpts)

@@ -8,155 +8,155 @@
 ; 143 inlinees with PGO data; 137 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T123] (  3,  3   )     ref  ->  [ebp-0x44]  this class-hnd single-def <System.Reflection.Emit.Tests.AssemblySaveAssemblyBuilder>
-;  V01 loc0         [V01,T178] (  4,  0   )     ref  ->  [ebp-0x48]  class-hnd exact EH-live single-def <System.IO.TempFile>
+;  V00 this         [V00,T123] (  3,  3   )     ref  ->  [ebp-0x40]  this class-hnd single-def <System.Reflection.Emit.Tests.AssemblySaveAssemblyBuilder>
+;  V01 loc0         [V01,T177] (  4,  0   )     ref  ->  [ebp-0x44]  class-hnd exact EH-live single-def <System.IO.TempFile>
 ;* V02 loc1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Reflection.AssemblyName>
-;  V03 loc2         [V03,T37] (  6,  6   )     ref  ->  [ebp-0x4C]  class-hnd spill-single-def <System.Reflection.Emit.AssemblyBuilder>
+;  V03 loc2         [V03,T37] (  6,  6   )     ref  ->  [ebp-0x48]  class-hnd spill-single-def <System.Reflection.Emit.AssemblyBuilder>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Reflection.Emit.CustomAttributeBuilder>
-;  V05 loc4         [V05,T05] ( 15, 15   )     ref  ->  [ebp-0x50]  class-hnd spill-single-def <System.Reflection.Emit.ModuleBuilder>
-;  V06 loc5         [V06,T124] (  6,  4.33)     ref  ->  [ebp-0x54]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
-;  V07 loc6         [V07,T07] ( 18, 13.90)     ref  ->  [ebp-0x58]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
-;  V08 loc7         [V08,T121] (  7,  5.33)     ref  ->  [ebp-0x5C]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
-;  V09 loc8         [V09,T13] ( 12, 10.82)     ref  ->  [ebp-0x60]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
-;  V10 loc9         [V10,T10] ( 12, 12   )     ref  ->  [ebp-0x64]  class-hnd <System.Reflection.Emit.GenericTypeParameterBuilder[]>
-;  V11 loc10        [V11,T35] (  8,  6.33)     ref  ->  [ebp-0x68]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
-;  V12 loc11        [V12,T04] ( 17, 15.82)     ref  ->  [ebp-0x6C]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
-;  V13 loc12        [V13,T08] ( 14, 12.50)     ref  ->  [ebp-0x70]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
-;  V14 loc13        [V14,T21] (  8,  8   )     ref  ->  [ebp-0x74]  class-hnd <System.Reflection.Emit.FieldBuilder>
-;  V15 loc14        [V15,T14] ( 13, 10.32)     ref  ->  [ebp-0x78]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
+;  V05 loc4         [V05,T05] ( 15, 15   )     ref  ->  [ebp-0x4C]  class-hnd spill-single-def <System.Reflection.Emit.ModuleBuilder>
+;  V06 loc5         [V06,T124] (  6,  4.33)     ref  ->  [ebp-0x50]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
+;  V07 loc6         [V07,T07] ( 18, 13.90)     ref  ->  [ebp-0x54]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
+;  V08 loc7         [V08,T121] (  7,  5.33)     ref  ->  [ebp-0x58]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
+;  V09 loc8         [V09,T13] ( 12, 10.82)     ref  ->  [ebp-0x5C]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
+;  V10 loc9         [V10,T10] ( 12, 12   )     ref  ->  [ebp-0x60]  class-hnd <System.Reflection.Emit.GenericTypeParameterBuilder[]>
+;  V11 loc10        [V11,T35] (  8,  6.33)     ref  ->  [ebp-0x64]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
+;  V12 loc11        [V12,T04] ( 17, 15.82)     ref  ->  [ebp-0x68]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
+;  V13 loc12        [V13,T08] ( 14, 12.50)     ref  ->  [ebp-0x6C]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
+;  V14 loc13        [V14,T21] (  8,  8   )     ref  ->  [ebp-0x70]  class-hnd <System.Reflection.Emit.FieldBuilder>
+;  V15 loc14        [V15,T14] ( 13, 10.32)     ref  ->  [ebp-0x74]  class-hnd spill-single-def <System.Reflection.Emit.TypeBuilder>
 ;* V16 loc15        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Type[]>
 ;* V17 loc16        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def <System.Type[]>
-;  V18 loc17        [V18,T34] (  8,  6.50)     ref  ->  [ebp-0x7C]  class-hnd spill-single-def <System.Reflection.Emit.ConstructorBuilder>
-;  V19 loc18        [V19,T38] (  6,  6   )     ref  ->  [ebp-0x80]  class-hnd <System.Reflection.Emit.ParameterBuilder>
+;  V18 loc17        [V18,T34] (  8,  6.50)     ref  ->  [ebp-0x78]  class-hnd spill-single-def <System.Reflection.Emit.ConstructorBuilder>
+;  V19 loc18        [V19,T38] (  6,  6   )     ref  ->  [ebp-0x7C]  class-hnd <System.Reflection.Emit.ParameterBuilder>
 ;  V20 loc19        [V20,T155] (  5,  2.50)     ref  ->  eax         class-hnd single-def <System.Reflection.Emit.ConstructorBuilder>
-;  V21 loc20        [V21,T01] ( 34, 16.50)     ref  ->  [ebp-0x84]  class-hnd <System.Reflection.Emit.MethodBuilder>
+;  V21 loc20        [V21,T01] ( 34, 16.50)     ref  ->  [ebp-0x80]  class-hnd <System.Reflection.Emit.MethodBuilder>
 ;  V22 loc21        [V22,T17] ( 11,  9.32)     ref  ->  edi         class-hnd single-def <System.Reflection.Emit.TypeBuilder>
-;  V23 loc22        [V23,T36] ( 12,  6   )     ref  ->  [ebp-0x88]  class-hnd spill-single-def <System.Reflection.Emit.MethodBuilder>
-;  V24 loc23        [V24,T145] (  8,  3.58)     ref  ->  [ebp-0x8C]  class-hnd spill-single-def <System.Reflection.Emit.MethodBuilder>
-;  V25 loc24        [V25,T122] ( 10,  5   )     ref  ->  [ebp-0x90]  class-hnd spill-single-def <System.Reflection.Emit.MethodBuilder>
-;  V26 loc25        [V26,T11] ( 15, 11.08)     ref  ->  [ebp-0x94]  class-hnd spill-single-def <System.Reflection.Emit.PropertyBuilder>
+;  V23 loc22        [V23,T36] ( 12,  6   )     ref  ->  [ebp-0x84]  class-hnd spill-single-def <System.Reflection.Emit.MethodBuilder>
+;  V24 loc23        [V24,T145] (  8,  3.58)     ref  ->  [ebp-0x88]  class-hnd spill-single-def <System.Reflection.Emit.MethodBuilder>
+;  V25 loc24        [V25,T122] ( 10,  5   )     ref  ->  [ebp-0x8C]  class-hnd spill-single-def <System.Reflection.Emit.MethodBuilder>
+;  V26 loc25        [V26,T11] ( 16, 11.16)     ref  ->  [ebp-0x90]  class-hnd spill-single-def <System.Reflection.Emit.PropertyBuilder>
 ;  V27 loc26        [V27,T19] ( 11,  8.68)     ref  ->  esi         class-hnd single-def <System.Reflection.Emit.TypeBuilder>
 ;  V28 loc27        [V28,T147] (  6,  3.50)     ref  ->  edi         class-hnd single-def <System.Reflection.Emit.MethodBuilder>
-;  V29 loc28        [V29,T148] (  6,  3.50)     ref  ->  [ebp-0x98]  class-hnd spill-single-def <System.Reflection.Emit.MethodBuilder>
-;  V30 loc29        [V30,T149] (  6,  3.50)     ref  ->  [ebp-0x9C]  class-hnd spill-single-def <System.Reflection.Emit.MethodBuilder>
-;  V31 loc30        [V31,T33] (  7,  7   )     ref  ->  [ebp-0xA0]  class-hnd spill-single-def <System.Reflection.Emit.EventBuilder>
-;  V32 loc31        [V32,T179] (  4,  0   )     ref  ->  [ebp-0xA4]  class-hnd exact EH-live single-def <System.Reflection.MetadataLoadContext>
+;  V29 loc28        [V29,T148] (  6,  3.50)     ref  ->  [ebp-0x94]  class-hnd spill-single-def <System.Reflection.Emit.MethodBuilder>
+;  V30 loc29        [V30,T149] (  6,  3.50)     ref  ->  [ebp-0x98]  class-hnd spill-single-def <System.Reflection.Emit.MethodBuilder>
+;  V31 loc30        [V31,T33] (  7,  7   )     ref  ->  [ebp-0x9C]  class-hnd spill-single-def <System.Reflection.Emit.EventBuilder>
+;  V32 loc31        [V32,T178] (  4,  0   )     ref  ->  [ebp-0xA0]  class-hnd exact EH-live single-def <System.Reflection.MetadataLoadContext>
 ;  V33 tmp0         [V33,T02] (  8, 16   )     ref  ->  edi         class-hnd exact single-def "NewObj constructor temp" <System.Reflection.AssemblyName>
-;  V34 tmp1         [V34,T39] (  3,  6   )     ref  ->  [ebp-0xA8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Version>
-;  V35 tmp2         [V35,T40] (  3,  6   )     ref  ->  [ebp-0xAC]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Globalization.CultureInfo>
+;  V34 tmp1         [V34,T39] (  3,  6   )     ref  ->  [ebp-0xA4]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Version>
+;  V35 tmp2         [V35,T40] (  3,  6   )     ref  ->  [ebp-0xA8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Globalization.CultureInfo>
 ;  V36 tmp3         [V36,T41] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
 ;* V37 tmp4         [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;* V38 tmp5         [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V39 tmp6         [V39,T42] (  3,  6   )     ref  ->  [ebp-0xB0]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
-;  V40 tmp7         [V40,T126] (  2,  4   )     ref  ->  [ebp-0xB4]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
+;  V39 tmp6         [V39,T42] (  3,  6   )     ref  ->  [ebp-0xAC]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V40 tmp7         [V40,T126] (  2,  4   )     ref  ->  [ebp-0xB0]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
 ;  V41 tmp8         [V41,T43] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V42 tmp9         [V42,T44] (  3,  6   )     ref  ->  [ebp-0xB8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
+;  V42 tmp9         [V42,T44] (  3,  6   )     ref  ->  [ebp-0xB4]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
 ;  V43 tmp10        [V43,T45] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
 ;* V44 tmp11        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;* V45 tmp12        [V45    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V46 tmp13        [V46,T46] (  3,  6   )     ref  ->  [ebp-0xBC]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
-;  V47 tmp14        [V47,T127] (  2,  4   )     ref  ->  [ebp-0xC0]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
+;  V46 tmp13        [V46,T46] (  3,  6   )     ref  ->  [ebp-0xB8]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V47 tmp14        [V47,T127] (  2,  4   )     ref  ->  [ebp-0xBC]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
 ;  V48 tmp15        [V48,T47] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V49 tmp16        [V49,T48] (  3,  6   )     ref  ->  [ebp-0xC4]  class-hnd exact spill-single-def "dup spill" <<unknown class>>
+;  V49 tmp16        [V49,T48] (  3,  6   )     ref  ->  [ebp-0xC0]  class-hnd exact spill-single-def "dup spill" <<unknown class>>
 ;  V50 tmp17        [V50,T128] (  2,  4   )     ref  ->  eax         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Reflection.PropertyInfo>
-;  V51 tmp18        [V51,T49] (  3,  6   )     ref  ->  [ebp-0xC8]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V51 tmp18        [V51,T49] (  3,  6   )     ref  ->  [ebp-0xC4]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
 ;  V52 tmp19        [V52,T50] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
 ;* V53 tmp20        [V53    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.Reflection.FieldInfo[]>
-;  V54 tmp21        [V54,T00] ( 11, 22   )     ref  ->  [ebp-0xCC]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
+;  V54 tmp21        [V54,T00] ( 11, 22   )     ref  ->  [ebp-0xC8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
 ;  V55 tmp22        [V55,T51] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
 ;* V56 tmp23        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;* V57 tmp24        [V57    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;  V58 tmp25        [V58,T22] (  4,  8   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.String[]>
 ;  V59 tmp26        [V59,T52] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
-;  V60 tmp27        [V60,T53] (  3,  6   )     ref  ->  [ebp-0xD0]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.Emit.GenericTypeParameterBuilder>
+;  V60 tmp27        [V60,T53] (  3,  6   )     ref  ->  [ebp-0xCC]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.Emit.GenericTypeParameterBuilder>
 ;* V61 tmp28        [V61    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V62 tmp29        [V62,T54] (  3,  6   )     ref  ->  [ebp-0xD4]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
+;  V62 tmp29        [V62,T54] (  3,  6   )     ref  ->  [ebp-0xD0]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
 ;* V63 tmp30        [V63    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;  V64 tmp31        [V64,T129] (  2,  4   )     ref  ->  ecx         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Type>
 ;  V65 tmp32        [V65,T23] (  4,  8   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.String[]>
-;  V66 tmp33        [V66,T55] (  3,  6   )     ref  ->  [ebp-0xD8]  class-hnd exact spill-single-def "dup spill" <<unknown class>>
+;  V66 tmp33        [V66,T55] (  3,  6   )     ref  ->  [ebp-0xD4]  class-hnd exact spill-single-def "dup spill" <<unknown class>>
 ;* V67 tmp34        [V67    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;  V68 tmp35        [V68,T56] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <<unknown class>>
-;  V69 tmp36        [V69,T24] (  4,  8   )     ref  ->  [ebp-0xDC]  class-hnd exact spill-single-def "dup spill" <<unknown class>>
+;  V69 tmp36        [V69,T24] (  4,  8   )     ref  ->  [ebp-0xD8]  class-hnd exact spill-single-def "dup spill" <<unknown class>>
 ;* V70 tmp37        [V70    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;  V71 tmp38        [V71,T25] (  4,  8   )     ref  ->  eax         class-hnd exact single-def "dup spill" <<unknown class>>
 ;  V72 tmp39        [V72,T26] (  4,  8   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
 ;* V73 tmp40        [V73    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;* V74 tmp41        [V74    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V75 tmp42        [V75,T57] (  3,  6   )     ref  ->  [ebp-0xE0]  class-hnd exact spill-single-def "Single-def Box Helper" <System.Int32>
+;  V75 tmp42        [V75,T57] (  3,  6   )     ref  ->  [ebp-0xDC]  class-hnd exact spill-single-def "Single-def Box Helper" <System.Int32>
 ;  V76 tmp43        [V76,T58] (  3,  6   )     ref  ->  eax         class-hnd single-def "impImportAndPushBox" <System.Reflection.Emit.FieldBuilder>
-;  V77 tmp44        [V77,T59] (  3,  6   )     ref  ->  [ebp-0xE4]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
+;  V77 tmp44        [V77,T59] (  3,  6   )     ref  ->  [ebp-0xE0]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
 ;* V78 tmp45        [V78    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;* V79 tmp46        [V79    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V80 tmp47        [V80,T60] (  3,  6   )     ref  ->  [ebp-0xE8]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
+;  V80 tmp47        [V80,T60] (  3,  6   )     ref  ->  [ebp-0xE4]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
 ;* V81 tmp48        [V81    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;  V82 tmp49        [V82,T61] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
 ;* V83 tmp50        [V83    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;* V84 tmp51        [V84    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V85 tmp52        [V85,T62] (  3,  6   )     ref  ->  [ebp-0xEC]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
-;  V86 tmp53        [V86,T130] (  2,  4   )     ref  ->  [ebp-0xF0]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
+;  V85 tmp52        [V85,T62] (  3,  6   )     ref  ->  [ebp-0xE8]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V86 tmp53        [V86,T130] (  2,  4   )     ref  ->  [ebp-0xEC]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
 ;  V87 tmp54        [V87,T63] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V88 tmp55        [V88,T64] (  3,  6   )     ref  ->  [ebp-0xF4]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
+;  V88 tmp55        [V88,T64] (  3,  6   )     ref  ->  [ebp-0xF0]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
 ;  V89 tmp56        [V89,T65] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
 ;* V90 tmp57        [V90    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;* V91 tmp58        [V91    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V92 tmp59        [V92,T66] (  3,  6   )     ref  ->  [ebp-0xF8]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
-;  V93 tmp60        [V93,T131] (  2,  4   )     ref  ->  [ebp-0xFC]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
+;  V92 tmp59        [V92,T66] (  3,  6   )     ref  ->  [ebp-0xF4]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V93 tmp60        [V93,T131] (  2,  4   )     ref  ->  [ebp-0xF8]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
 ;  V94 tmp61        [V94,T67] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V95 tmp62        [V95,T68] (  3,  6   )     ref  ->  [ebp-0x100]  class-hnd exact spill-single-def "dup spill" <System.Reflection.FieldInfo[]>
+;  V95 tmp62        [V95,T68] (  3,  6   )     ref  ->  [ebp-0xFC]  class-hnd exact spill-single-def "dup spill" <System.Reflection.FieldInfo[]>
 ;  V96 tmp63        [V96,T132] (  2,  4   )     ref  ->  eax         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Reflection.FieldInfo>
-;  V97 tmp64        [V97,T69] (  3,  6   )     ref  ->  [ebp-0x104]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V97 tmp64        [V97,T69] (  3,  6   )     ref  ->  [ebp-0x100]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
 ;  V98 tmp65        [V98,T70] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Single-def Box Helper" <System.Int32>
-;  V99 tmp66        [V99,T71] (  3,  6   )     ref  ->  [ebp-0x108]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
+;  V99 tmp66        [V99,T71] (  3,  6   )     ref  ->  [ebp-0x104]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
 ;  V100 tmp67       [V100,T72] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
 ;* V101 tmp68       [V101    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;* V102 tmp69       [V102    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V103 tmp70       [V103,T73] (  3,  6   )     ref  ->  [ebp-0x10C]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
-;  V104 tmp71       [V104,T133] (  2,  4   )     ref  ->  [ebp-0x110]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
+;  V103 tmp70       [V103,T73] (  3,  6   )     ref  ->  [ebp-0x108]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V104 tmp71       [V104,T133] (  2,  4   )     ref  ->  [ebp-0x10C]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
 ;  V105 tmp72       [V105,T74] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V106 tmp73       [V106,T75] (  3,  6   )     ref  ->  [ebp-0x114]  class-hnd exact spill-single-def "dup spill" <System.Reflection.FieldInfo[]>
+;  V106 tmp73       [V106,T75] (  3,  6   )     ref  ->  [ebp-0x110]  class-hnd exact spill-single-def "dup spill" <System.Reflection.FieldInfo[]>
 ;  V107 tmp74       [V107,T134] (  2,  4   )     ref  ->  eax         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Reflection.FieldInfo>
-;  V108 tmp75       [V108,T76] (  3,  6   )     ref  ->  [ebp-0x118]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V108 tmp75       [V108,T76] (  3,  6   )     ref  ->  [ebp-0x114]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
 ;  V109 tmp76       [V109,T77] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Single-def Box Helper" <System.Int32>
-;  V110 tmp77       [V110,T78] (  3,  6   )     ref  ->  [ebp-0x11C]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
+;  V110 tmp77       [V110,T78] (  3,  6   )     ref  ->  [ebp-0x118]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
 ;  V111 tmp78       [V111,T79] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
 ;* V112 tmp79       [V112    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;* V113 tmp80       [V113    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V114 tmp81       [V114,T80] (  3,  6   )     ref  ->  [ebp-0x120]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
-;  V115 tmp82       [V115,T135] (  2,  4   )     ref  ->  [ebp-0x124]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
+;  V114 tmp81       [V114,T80] (  3,  6   )     ref  ->  [ebp-0x11C]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V115 tmp82       [V115,T135] (  2,  4   )     ref  ->  [ebp-0x120]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
 ;  V116 tmp83       [V116,T81] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V117 tmp84       [V117,T27] (  4,  8   )     ref  ->  [ebp-0x128]  class-hnd exact spill-single-def "dup spill" <System.Reflection.FieldInfo[]>
+;  V117 tmp84       [V117,T27] (  4,  8   )     ref  ->  [ebp-0x124]  class-hnd exact spill-single-def "dup spill" <System.Reflection.FieldInfo[]>
 ;  V118 tmp85       [V118,T136] (  2,  4   )     ref  ->  eax         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Reflection.FieldInfo>
 ;  V119 tmp86       [V119,T137] (  2,  4   )     ref  ->  eax         class-hnd single-def "Strict ordering of exceptions for Array store" <System.Reflection.FieldInfo>
-;  V120 tmp87       [V120,T28] (  4,  8   )     ref  ->  [ebp-0x12C]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V120 tmp87       [V120,T28] (  4,  8   )     ref  ->  [ebp-0x128]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
 ;* V121 tmp88       [V121    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V122 tmp89       [V122,T82] (  3,  6   )     ref  ->  [ebp-0x130]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
+;  V122 tmp89       [V122,T82] (  3,  6   )     ref  ->  [ebp-0x12C]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
 ;  V123 tmp90       [V123,T83] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <ubyte[]>
-;  V124 tmp91       [V124,T15] (  5, 10   )     ref  ->  [ebp-0x134]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
+;  V124 tmp91       [V124,T15] (  5, 10   )     ref  ->  [ebp-0x130]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
 ;* V125 tmp92       [V125    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V126 tmp93       [V126,T16] (  5, 10   )     ref  ->  [ebp-0x138]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
+;  V126 tmp93       [V126,T16] (  5, 10   )     ref  ->  [ebp-0x134]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
 ;* V127 tmp94       [V127    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V128 tmp95       [V128,T29] (  4,  8   )     ref  ->  [ebp-0x13C]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
+;  V128 tmp95       [V128,T29] (  4,  8   )     ref  ->  [ebp-0x138]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
 ;* V129 tmp96       [V129    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;* V130 tmp97       [V130    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V131 tmp98       [V131,T84] (  3,  6   )     ref  ->  [ebp-0x140]  class-hnd exact spill-single-def "dup spill" <System.Type[][]>
+;  V131 tmp98       [V131,T84] (  3,  6   )     ref  ->  [ebp-0x13C]  class-hnd exact spill-single-def "dup spill" <System.Type[][]>
 ;  V132 tmp99       [V132,T85] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[][]>
 ;  V133 tmp100      [V133,T86] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Single-def Box Helper" <System.Int32>
 ;  V134 tmp101      [V134,T87] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
 ;* V135 tmp102      [V135    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;* V136 tmp103      [V136    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V137 tmp104      [V137,T88] (  3,  6   )     ref  ->  [ebp-0x144]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
-;  V138 tmp105      [V138,T138] (  2,  4   )     ref  ->  [ebp-0x148]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
+;  V137 tmp104      [V137,T88] (  3,  6   )     ref  ->  [ebp-0x140]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V138 tmp105      [V138,T138] (  2,  4   )     ref  ->  [ebp-0x144]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
 ;  V139 tmp106      [V139,T89] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V140 tmp107      [V140,T90] (  3,  6   )     ref  ->  [ebp-0x14C]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
+;  V140 tmp107      [V140,T90] (  3,  6   )     ref  ->  [ebp-0x148]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
 ;  V141 tmp108      [V141,T30] (  4,  8   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
 ;* V142 tmp109      [V142    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;* V143 tmp110      [V143    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V144 tmp111      [V144,T31] (  4,  8   )     ref  ->  [ebp-0x150]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
+;  V144 tmp111      [V144,T31] (  4,  8   )     ref  ->  [ebp-0x14C]  class-hnd exact spill-single-def "dup spill" <System.Type[]>
 ;* V145 tmp112      [V145    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;* V146 tmp113      [V146    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;* V147 tmp114      [V147    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V148 tmp115      [V148,T91] (  3,  6   )     ref  ->  [ebp-0x154]  class-hnd exact spill-single-def "dup spill" <System.Type[][]>
+;  V148 tmp115      [V148,T91] (  3,  6   )     ref  ->  [ebp-0x150]  class-hnd exact spill-single-def "dup spill" <System.Type[][]>
 ;  V149 tmp116      [V149,T92] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[][]>
 ;  V150 tmp117      [V150,T32] (  4,  8   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.String[]>
 ;  V151 tmp118      [V151,T93] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
@@ -166,17 +166,17 @@
 ;  V155 tmp122      [V155,T96] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
 ;* V156 tmp123      [V156    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;* V157 tmp124      [V157    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V158 tmp125      [V158,T97] (  3,  6   )     ref  ->  [ebp-0x158]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
-;  V159 tmp126      [V159,T139] (  2,  4   )     ref  ->  [ebp-0x15C]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
+;  V158 tmp125      [V158,T97] (  3,  6   )     ref  ->  [ebp-0x154]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V159 tmp126      [V159,T139] (  2,  4   )     ref  ->  [ebp-0x158]  class-hnd spill-single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
 ;  V160 tmp127      [V160,T98] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V161 tmp128      [V161,T99] (  3,  6   )     ref  ->  [ebp-0x160]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
+;  V161 tmp128      [V161,T99] (  3,  6   )     ref  ->  [ebp-0x15C]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
 ;  V162 tmp129      [V162,T100] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
 ;* V163 tmp130      [V163    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;* V164 tmp131      [V164    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V165 tmp132      [V165,T101] (  3,  6   )     ref  ->  [ebp-0x164]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
+;  V165 tmp132      [V165,T101] (  3,  6   )     ref  ->  [ebp-0x160]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
 ;  V166 tmp133      [V166,T140] (  2,  4   )     ref  ->  edi         class-hnd single-def "impSpillLclRefs" <System.Reflection.ConstructorInfo>
 ;  V167 tmp134      [V167,T102] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-;  V168 tmp135      [V168,T103] (  3,  6   )     ref  ->  [ebp-0x168]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
+;  V168 tmp135      [V168,T103] (  3,  6   )     ref  ->  [ebp-0x164]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Reflection.Emit.CustomAttributeBuilder>
 ;  V169 tmp136      [V169,T104] (  3,  6   )     ref  ->  eax         class-hnd exact single-def "dup spill" <System.Type[]>
 ;* V170 tmp137      [V170    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impSpillLclRefs" <System.RuntimeType>
 ;* V171 tmp138      [V171    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
@@ -203,12 +203,12 @@
 ;* V192 tmp159      [V192    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
...

-2 (-0.14%) : 149021.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)

@@ -18,7 +18,7 @@
 ;* V07 tmp4         [V07    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;  V08 tmp5         [V08,T09] (  3,  3   )     int  ->  [ebp-0x10]  spill-single-def "impAppendStmt"
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;  V10 tmp7         [V10,T40] (  2,  2   )     int  ->  [ebp-0x14]  spill-single-def "impAppendStmt"
+;  V10 tmp7         [V10,T41] (  2,  2   )     int  ->  [ebp-0x14]  spill-single-def "impAppendStmt"
 ;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 4) zero-ref    "spilled call-like call argument" <System.Index>
 ;* V12 tmp9         [V12    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Range>
 ;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
@@ -34,38 +34,38 @@
 ;* V23 tmp20        [V23    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V24 tmp21        [V24    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V25 tmp22        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;* V26 tmp23        [V26,T98] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V27 tmp24        [V27,T33] (  2,  2   )   byref  ->  eax         single-def "Inlining Arg"
+;* V26 tmp23        [V26,T97] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V27 tmp24        [V27,T34] (  2,  2   )   byref  ->  eax         single-def "Inlining Arg"
 ;* V28 tmp25        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp26        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp27        [V30    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V31 tmp28        [V31    ] (  3,  1.50)   byref  ->  [ebp-0x18]  do-not-enreg[P] must-init pinned "Inline stloc first use temp"
-;  V32 tmp29        [V32,T84] (  2,  1   )     int  ->  esi        
+;  V32 tmp29        [V32,T83] (  2,  1   )     int  ->  esi        
 ;* V33 tmp30        [V33    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V34 tmp31        [V34    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V35 tmp32        [V35    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V36 tmp33        [V36    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V37 tmp34        [V37,T13] (  3,  3   )     ref  ->  [ebp-0x60]  class-hnd exact spill-single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[int]>
 ;* V38 tmp35        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass2_0[int]>
-;  V39 tmp36        [V39,T56] (  3,  1.50)     ref  ->  [ebp-0x64]  class-hnd exact spill-single-def "Inline stloc first use temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass2_0[int]>
+;  V39 tmp36        [V39,T57] (  3,  1.50)     ref  ->  [ebp-0x64]  class-hnd exact spill-single-def "Inline stloc first use temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass2_0[int]>
 ;  V40 tmp37        [V40,T05] (  4,  4   )     ref  ->  [ebp-0x68]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
 ;  V41 tmp38        [V41,T06] (  4,  4   )     ref  ->  [ebp-0x6C]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
 ;* V42 tmp39        [V42    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V43 tmp40        [V43,T14] (  3,  3   )     ref  ->  [ebp-0x70]  class-hnd exact spill-single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[int]>
 ;* V44 tmp41        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass2_0[int]>
-;  V45 tmp42        [V45,T57] (  3,  1.50)     ref  ->  [ebp-0x74]  class-hnd exact spill-single-def "Inline stloc first use temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass2_0[int]>
+;  V45 tmp42        [V45,T58] (  3,  1.50)     ref  ->  [ebp-0x74]  class-hnd exact spill-single-def "Inline stloc first use temp" <Xunit.Sdk.AssertEqualityComparer`1+<>c__DisplayClass2_0[int]>
 ;  V46 tmp43        [V46,T07] (  4,  4   )     ref  ->  [ebp-0x78]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
 ;  V47 tmp44        [V47,T08] (  4,  4   )     ref  ->  [ebp-0x7C]  class-hnd exact spill-single-def "NewObj constructor temp" <<unknown class>>
 ;* V48 tmp45        [V48    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V49 tmp46        [V49    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V50 tmp47        [V50    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;* V51 tmp48        [V51,T99] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V52 tmp49        [V52,T34] (  2,  2   )   byref  ->  eax         single-def "Inlining Arg"
+;* V51 tmp48        [V51,T98] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V52 tmp49        [V52,T35] (  2,  2   )   byref  ->  eax         single-def "Inlining Arg"
 ;* V53 tmp50        [V53    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V54 tmp51        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V55 tmp52        [V55    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V56 tmp53        [V56    ] (  3,  1.50)   byref  ->  [ebp-0x1C]  do-not-enreg[P] must-init pinned "Inline stloc first use temp"
-;  V57 tmp54        [V57,T85] (  2,  1   )     int  ->  esi        
+;  V57 tmp54        [V57,T84] (  2,  1   )     int  ->  esi        
 ;* V58 tmp55        [V58    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V59 tmp56        [V59    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V60 tmp57        [V60    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
@@ -89,17 +89,17 @@
 ;* V78 tmp75        [V78    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Index>
 ;* V79 tmp76        [V79    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Index>
 ;* V80 tmp77        [V80    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Index>
-;* V81 tmp78        [V81,T100] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V81 tmp78        [V81,T99] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V82 tmp79        [V82    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V83 tmp80        [V83    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V84 tmp81        [V84    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
-;* V85 tmp82        [V85,T102] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V86 tmp83        [V86,T59] (  2,  1   )     int  ->  ecx         "Inline stloc first use temp"
+;* V85 tmp82        [V85,T101] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
+;  V86 tmp83        [V86,T30] (  3,  1.50)     int  ->  esi         "Inline stloc first use temp"
 ;* V87 tmp84        [V87    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V88 tmp85        [V88,T35] (  2,  2   )   byref  ->  [ebp-0x88]  spill-single-def "Inlining Arg"
+;  V88 tmp85        [V88,T36] (  2,  2   )   byref  ->  [ebp-0x88]  spill-single-def "Inlining Arg"
 ;* V89 tmp86        [V89    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V90 tmp87        [V90    ] (  3,  1.50)   byref  ->  [ebp-0x20]  do-not-enreg[P] must-init pinned "Inline stloc first use temp"
-;  V91 tmp88        [V91,T86] (  2,  1   )     int  ->  edi        
+;  V91 tmp88        [V91,T85] (  2,  1   )     int  ->  edi        
 ;* V92 tmp89        [V92    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V93 tmp90        [V93    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V94 tmp91        [V94    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
@@ -110,15 +110,15 @@
 ;* V99 tmp96        [V99    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V100 tmp97       [V100    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V101 tmp98       [V101    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;* V102 tmp99       [V102,T101] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V103 tmp100      [V103,T36] (  2,  2   )   byref  ->  [ebp-0x90]  spill-single-def "Inlining Arg"
+;* V102 tmp99       [V102,T100] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V103 tmp100      [V103,T37] (  2,  2   )   byref  ->  [ebp-0x90]  spill-single-def "Inlining Arg"
 ;* V104 tmp101      [V104    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V105 tmp102      [V105    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V106 tmp103      [V106    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V107 tmp104      [V107    ] (  3,  1.50)   byref  ->  [ebp-0x24]  do-not-enreg[P] must-init pinned "Inline stloc first use temp"
-;  V108 tmp105      [V108,T87] (  2,  1   )     int  ->  ecx        
+;  V108 tmp105      [V108,T86] (  2,  1   )     int  ->  ecx        
 ;* V109 tmp106      [V109    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V110 tmp107      [V110,T88] (  2,  1   )     int  ->  [ebp-0x28]  spill-single-def "Inline stloc first use temp"
+;  V110 tmp107      [V110,T87] (  2,  1   )     int  ->  [ebp-0x28]  spill-single-def "Inline stloc first use temp"
 ;* V111 tmp108      [V111    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V112 tmp109      [V112    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V113 tmp110      [V113,T19] (  3,  3   )     ref  ->  [ebp-0x94]  class-hnd exact spill-single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[int]>
@@ -146,15 +146,15 @@
 ;* V135 tmp132      [V135    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V136 tmp133      [V136    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V137 tmp134      [V137    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
-;  V138 tmp135      [V138,T30] (  4,  2   )     int  ->  ecx         "Inline stloc first use temp"
+;  V138 tmp135      [V138,T31] (  4,  2   )     int  ->  ecx         "Inline stloc first use temp"
 ;* V139 tmp136      [V139    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V140 tmp137      [V140    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V141 tmp138      [V141,T37] (  2,  2   )   byref  ->  [ebp-0x9C]  spill-single-def "Inlining Arg"
+;  V141 tmp138      [V141,T38] (  2,  2   )   byref  ->  [ebp-0x9C]  spill-single-def "Inlining Arg"
 ;* V142 tmp139      [V142    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V143 tmp140      [V143    ] (  3,  1.50)   byref  ->  [ebp-0x2C]  do-not-enreg[P] must-init pinned "Inline stloc first use temp"
-;  V144 tmp141      [V144,T89] (  2,  1   )     int  ->  ecx        
+;  V144 tmp141      [V144,T88] (  2,  1   )     int  ->  ecx        
 ;* V145 tmp142      [V145    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V146 tmp143      [V146,T90] (  2,  1   )     int  ->  esi         single-def "Inline stloc first use temp"
+;  V146 tmp143      [V146,T89] (  2,  1   )     int  ->  esi         single-def "Inline stloc first use temp"
 ;* V147 tmp144      [V147    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V148 tmp145      [V148    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V149 tmp146      [V149,T21] (  3,  3   )     ref  ->  [ebp-0xA0]  class-hnd exact spill-single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[int]>
@@ -163,12 +163,12 @@
 ;* V152 tmp149      [V152    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V153 tmp150      [V153    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V154 tmp151      [V154    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V155 tmp152      [V155,T38] (  2,  2   )   byref  ->  [ebp-0xA4]  spill-single-def "Inlining Arg"
+;  V155 tmp152      [V155,T39] (  2,  2   )   byref  ->  [ebp-0xA4]  spill-single-def "Inlining Arg"
 ;* V156 tmp153      [V156    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V157 tmp154      [V157    ] (  3,  1.50)   byref  ->  [ebp-0x30]  do-not-enreg[P] must-init pinned "Inline stloc first use temp"
 ;  V158 tmp155      [V158,T60] (  3,  1.50)     int  ->  ecx        
 ;* V159 tmp156      [V159    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V160 tmp157      [V160,T91] (  2,  1   )     int  ->  [ebp-0x34]  spill-single-def "Inline stloc first use temp"
+;  V160 tmp157      [V160,T90] (  2,  1   )     int  ->  [ebp-0x34]  spill-single-def "Inline stloc first use temp"
 ;* V161 tmp158      [V161    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V162 tmp159      [V162    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V163 tmp160      [V163,T23] (  3,  3   )     ref  ->  [ebp-0xA8]  class-hnd exact spill-single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[int]>
@@ -192,19 +192,19 @@
 ;* V181 tmp178      [V181    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Index>
 ;* V182 tmp179      [V182    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "NewObj constructor temp" <System.Index>
 ;* V183 tmp180      [V183    ] (  0,  0   )  struct ( 4) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Index>
-;  V184 tmp181      [V184,T41] (  2,  2   )     int  ->  eax         "Inlining Arg"
+;  V184 tmp181      [V184,T42] (  2,  2   )     int  ->  eax         "Inlining Arg"
 ;* V185 tmp182      [V185    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V186 tmp183      [V186    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V187 tmp184      [V187    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[int,int]>
-;  V188 tmp185      [V188,T31] (  4,  2   )     int  ->  edx         "Inline stloc first use temp"
-;  V189 tmp186      [V189,T32] (  4,  2   )     int  ->  ecx         "Inline stloc first use temp"
+;  V188 tmp185      [V188,T32] (  4,  2   )     int  ->  edx         "Inline stloc first use temp"
+;  V189 tmp186      [V189,T33] (  4,  2   )     int  ->  ecx         "Inline stloc first use temp"
 ;* V190 tmp187      [V190    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V191 tmp188      [V191,T39] (  2,  2   )   byref  ->  [ebp-0xB0]  spill-single-def "Inlining Arg"
+;  V191 tmp188      [V191,T40] (  2,  2   )   byref  ->  [ebp-0xB0]  spill-single-def "Inlining Arg"
 ;* V192 tmp189      [V192    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V193 tmp190      [V193    ] (  3,  1.50)   byref  ->  [ebp-0x38]  do-not-enreg[P] must-init pinned "Inline stloc first use temp"
 ;  V194 tmp191      [V194,T61] (  3,  1.50)     int  ->  ecx        
 ;* V195 tmp192      [V195    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V196 tmp193      [V196,T92] (  2,  1   )     int  ->  esi         single-def "Inline stloc first use temp"
+;  V196 tmp193      [V196,T91] (  2,  1   )     int  ->  esi         single-def "Inline stloc first use temp"
 ;* V197 tmp194      [V197    ] (  0,  0   )     int  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V198 tmp195      [V198    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V199 tmp196      [V199,T25] (  3,  3   )     ref  ->  [ebp-0xB4]  class-hnd exact spill-single-def "NewObj constructor temp" <Xunit.Sdk.AssertEqualityComparer`1[int]>
@@ -229,26 +229,26 @@
 ;* V218 tmp215      [V218    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x4)" P-INDEP
 ;* V219 tmp216      [V219    ] (  0,  0   )   byref  ->  zero-ref    "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V220 tmp217      [V220    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x4)" P-INDEP
-;* V221 tmp218      [V221,T103] (  0,  0   )     int  ->  zero-ref    single-def "field V19._value (fldOffset=0x0)" P-INDEP
+;* V221 tmp218      [V221,T102] (  0,  0   )     int  ->  zero-ref    single-def "field V19._value (fldOffset=0x0)" P-INDEP
 ;* V222 tmp219      [V222    ] (  0,  0   )     int  ->  zero-ref    single-def "field V20._value (fldOffset=0x0)" P-INDEP
 ;* V223 tmp220      [V223    ] (  0,  0   )     int  ->  zero-ref    single-def "field V21.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V224 tmp221      [V224,T104] (  0,  0   )     int  ->  zero-ref    single-def "field V21.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V224 tmp221      [V224,T103] (  0,  0   )     int  ->  zero-ref    single-def "field V21.<End>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V225 tmp222      [V225    ] (  0,  0   )   byref  ->  zero-ref    "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V226 tmp223      [V226    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x4)" P-INDEP
-;  V227 tmp224      [V227,T72] (  2,  1   )   byref  ->  [ebp-0xB8]  spill-single-def "field V23._reference (fldOffset=0x0)" P-INDEP
+;  V227 tmp224      [V227,T71] (  2,  1   )   byref  ->  [ebp-0xB8]  spill-single-def "field V23._reference (fldOffset=0x0)" P-INDEP
 ;  V228 tmp225      [V228,T62] (  3,  1.50)     int  ->  esi         single-def "field V23._length (fldOffset=0x4)" P-INDEP
-;  V229 tmp226      [V229,T73] (  2,  1   )   byref  ->  eax         single-def "field V24._reference (fldOffset=0x0)" P-INDEP
-;* V230 tmp227      [V230,T105] (  0,  0   )     int  ->  zero-ref    single-def "field V24._length (fldOffset=0x4)" P-INDEP
+;  V229 tmp226      [V229,T72] (  2,  1   )   byref  ->  eax         single-def "field V24._reference (fldOffset=0x0)" P-INDEP
+;* V230 tmp227      [V230,T104] (  0,  0   )     int  ->  zero-ref    single-def "field V24._length (fldOffset=0x4)" P-INDEP
 ;* V231 tmp228      [V231    ] (  0,  0   )   byref  ->  zero-ref    "field V25._reference (fldOffset=0x0)" P-INDEP
 ;* V232 tmp229      [V232    ] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0x4)" P-INDEP
 ;* V233 tmp230      [V233    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;* V234 tmp231      [V234    ] (  0,  0   )     int  ->  zero-ref    single-def "field V30._length (fldOffset=0x4)" P-INDEP
 ;* V235 tmp232      [V235    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V42._reference (fldOffset=0x0)" P-INDEP
 ;* V236 tmp233      [V236    ] (  0,  0   )     int  ->  zero-ref    "field V42._length (fldOffset=0x4)" P-INDEP
-;  V237 tmp234      [V237,T74] (  2,  1   )   byref  ->  [ebp-0xBC]  spill-single-def "field V48._reference (fldOffset=0x0)" P-INDEP
+;  V237 tmp234      [V237,T73] (  2,  1   )   byref  ->  [ebp-0xBC]  spill-single-def "field V48._reference (fldOffset=0x0)" P-INDEP
 ;  V238 tmp235      [V238,T63] (  3,  1.50)     int  ->  esi         single-def "field V48._length (fldOffset=0x4)" P-INDEP
-;  V239 tmp236      [V239,T75] (  2,  1   )   byref  ->  eax         single-def "field V49._reference (fldOffset=0x0)" P-INDEP
-;* V240 tmp237      [V240,T106] (  0,  0   )     int  ->  zero-ref    single-def "field V49._length (fldOffset=0x4)" P-INDEP
+;  V239 tmp236      [V239,T74] (  2,  1   )   byref  ->  eax         single-def "field V49._reference (fldOffset=0x0)" P-INDEP
+;* V240 tmp237      [V240,T105] (  0,  0   )     int  ->  zero-ref    single-def "field V49._length (fldOffset=0x4)" P-INDEP
 ;* V241 tmp238      [V241    ] (  0,  0   )   byref  ->  zero-ref    "field V50._reference (fldOffset=0x0)" P-INDEP
 ;* V242 tmp239      [V242    ] (  0,  0   )     int  ->  zero-ref    "field V50._length (fldOffset=0x4)" P-INDEP
 ;* V243 tmp240      [V243    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V55._reference (fldOffset=0x0)" P-INDEP
@@ -257,14 +257,14 @@
 ;* V246 tmp243      [V246    ] (  0,  0   )     int  ->  zero-ref    "field V63._length (fldOffset=0x4)" P-INDEP
 ;* V247 tmp244      [V247    ] (  0,  0   )     int  ->  zero-ref    single-def "field V65._value (fldOffset=0x0)" P-INDEP
 ;* V248 tmp245      [V248    ] (  0,  0   )     int  ->  zero-ref    single-def "field V66._value (fldOffset=0x0)" P-INDEP
-;  V249 tmp246      [V249,T76] (  2,  1   )   byref  ->  [ebp-0xC0]  spill-single-def "field V67._reference (fldOffset=0x0)" P-INDEP
-;  V250 tmp247      [V250,T93] (  2,  1   )     int  ->  esi         single-def "field V67._length (fldOffset=0x4)" P-INDEP
+;  V249 tmp246      [V249,T75] (  2,  1   )   byref  ->  [ebp-0xC0]  spill-single-def "field V67._reference (fldOffset=0x0)" P-INDEP
+;  V250 tmp247      [V250,T92] (  2,  1   )     int  ->  esi         single-def "field V67._length (fldOffset=0x4)" P-INDEP
 ;* V251 tmp248      [V251    ] (  0,  0   )     int  ->  zero-ref    single-def "field V68.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V252 tmp249      [V252,T107] (  0,  0   )     int  ->  zero-ref    single-def "field V68.<End>k__BackingField (fldOffset=0x4)" P-INDEP
+;* V252 tmp249      [V252,T106] (  0,  0   )     int  ->  zero-ref    single-def "field V68.<End>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V253 tmp250      [V253    ] (  0,  0   )     int  ->  zero-ref    single-def "field V69.Item1 (fldOffset=0x0)" P-INDEP
 ;* V254 tmp251      [V254    ] (  0,  0   )     int  ->  zero-ref    single-def "field V69.Item2 (fldOffset=0x4)" P-INDEP
-;  V255 tmp252      [V255,T77] (  2,  1   )   byref  ->  eax         single-def "field V72._reference (fldOffset=0x0)" P-INDEP
-;  V256 tmp253      [V256,T94] (  2,  1   )     int  ->  esi         single-def "field V72._length (fldOffset=0x4)" P-INDEP
+;  V255 tmp252      [V255,T76] (  2,  1   )   byref  ->  eax         single-def "field V72._reference (fldOffset=0x0)" P-INDEP
+;  V256 tmp253      [V256,T93] (  2,  1   )     int  ->  esi         single-def "field V72._length (fldOffset=0x4)" P-INDEP
 ;* V257 tmp254      [V257    ] (  0,  0   )     int  ->  zero-ref    "field V73._value (fldOffset=0x0)" P-INDEP
 ;* V258 tmp255      [V258    ] (  0,  0   )     int  ->  zero-ref    "field V74._value (fldOffset=0x0)" P-INDEP
 ;* V259 tmp256      [V259    ] (  0,  0   )     int  ->  zero-ref    "field V75._value (fldOffset=0x0)" P-INDEP
@@ -280,10 +280,10 @@
 ;* V269 tmp266      [V269    ] (  0,  0   )     int  ->  zero-ref    single-def "field V89._length (fldOffset=0x4)" P-INDEP
 ;* V270 tmp267      [V270    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V97._reference (fldOffset=0x0)" P-INDEP
 ;* V271 tmp268      [V271    ] (  0,  0   )     int  ->  zero-ref    "field V97._length (fldOffset=0x4)" P-INDEP
-;  V272 tmp269      [V272,T78] (  2,  1   )   byref  ->  [ebp-0xC4]  spill-single-def "field V99._reference (fldOffset=0x0)" P-INDEP
+;  V272 tmp269      [V272,T77] (  2,  1   )   byref  ->  [ebp-0xC4]  spill-single-def "field V99._reference (fldOffset=0x0)" P-INDEP
 ;  V273 tmp270      [V273,T65] (  3,  1.50)     int  ->  [ebp-0x3C]  spill-single-def "field V99._length (fldOffset=0x4)" P-INDEP
-;  V274 tmp271      [V274,T79] (  2,  1   )   byref  ->  ecx         single-def "field V100._reference (fldOffset=0x0)" P-INDEP
-;* V275 tmp272      [V275,T108] (  0,  0   )     int  ->  zero-ref    single-def "field V100._length (fldOffset=0x4)" P-INDEP
+;  V274 tmp271      [V274,T78] (  2,  1   )   byref  ->  ecx         single-def "field V100._reference (fldOffset=0x0)" P-INDEP
+;* V275 tmp272      [V275,T107] (  0,  0   )     int  ->  zero-ref    single-def "field V100._length (fldOffset=0x4)" P-INDEP
 ;* V276 tmp273      [V276    ] (  0,  0   )   byref  ->  zero-ref    "field V101._reference (fldOffset=0x0)" P-INDEP
 ;* V277 tmp274      [V277    ] (  0,  0   )     int  ->  zero-ref    "field V101._length (fldOffset=0x4)" P-INDEP
 ;* V278 tmp275      [V278    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V106._reference (fldOffset=0x0)" P-INDEP
@@ -295,14 +295,14 @@
 ;* V284 tmp281      [V284    ] (  0,  0   )     int  ->  zero-ref    single-def "field V117.<End>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V285 tmp282      [V285    ] (  0,  0   )     int  ->  zero-ref    single-def "field V118._value (fldOffset=0x0)" P-INDEP
 ;* V286 tmp283      [V286    ] (  0,  0   )     int  ->  zero-ref    single-def "field V119._value (fldOffset=0x0)" P-INDEP
-;  V287 tmp284      [V287,T80] (  2,  1   )   byref  ->  [ebp-0xC8]  spill-single-def "field V120._reference (fldOffset=0x0)" P-INDEP
-;  V288 tmp285      [V288,T95] (  2,  1   )     int  ->  ebx         single-def "field V120._length (fldOffset=0x4)" P-INDEP
+;  V287 tmp284      [V287,T79] (  2,  1   )   byref  ->  [ebp-0xC8]  spill-single-def "field V120._reference (fldOffset=0x0)" P-INDEP
+;  V288 tmp285      [V288,T94] (  2,  1   )     int  ->  ebx         single-def "field V120._length (fldOffset=0x4)" P-INDEP
 ;* V289 tmp286      [V289    ] (  0,  0   )     int  ->  zero-ref    single-def "field V121.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
 ;* V290 tmp287      [V290    ] (  0,  0   )     int  ->  zero-ref    single-def "field V121.<End>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V291 tmp288      [V291    ] (  0,  0   )     int  ->  zero-ref    single-def "field V122.Item1 (fldOffset=0x0)" P-INDEP
 ;* V292 tmp289      [V292    ] (  0,  0   )     int  ->  zero-ref    single-def "field V122.Item2 (fldOffset=0x4)" P-INDEP
-;  V293 tmp290      [V293,T81] (  2,  1   )   byref  ->  eax         single-def "field V125._reference (fldOffset=0x0)" P-INDEP
-;  V294 tmp291      [V294,T96] (  2,  1   )     int  ->  ebx         single-def "field V125._length (fldOffset=0x4)" P-INDEP
+;  V293 tmp290      [V293,T80] (  2,  1   )   byref  ->  eax         single-def "field V125._reference (fldOffset=0x0)" P-INDEP
+;  V294 tmp291      [V294,T95] (  2,  1   )     int  ->  ebx         single-def "field V125._length (fldOffset=0x4)" P-INDEP
 ;* V295 tmp292      [V295    ] (  0,  0   )     int  ->  zero-ref    "field V126._value (fldOffset=0x0)" P-INDEP
 ;* V296 tmp293      [V296    ] (  0,  0   )     int  ->  zero-ref    "field V127._value (fldOffset=0x0)" P-INDEP
 ;* V297 tmp294      [V297    ] (  0,  0   )     int  ->  zero-ref    "field V128._value (fldOffset=0x0)" P-INDEP
@@ -318,10 +318,10 @@
 ;* V307 tmp304      [V307    ] (  0,  0   )     int  ->  zero-ref    single-def "field V142._length (fldOffset=0x4)" P-INDEP
 ;* V308 tmp305      [V308    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V150._reference (fldOffset=0x0)" P-INDEP
...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.x86.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.windows.x86.checked.mch 6 3 2 1 -62 +17
benchmarks.run_tiered.windows.x86.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.windows.x86.checked.mch 8 3 5 0 -47 +206
libraries.crossgen2.windows.x86.checked.mch 0 0 0 0 -0 +0
libraries.pmi.windows.x86.checked.mch 0 0 0 0 -0 +0
libraries_tests.run.windows.x86.Release.mch 35 23 12 0 -262 +87
librariestestsnotieredcompilation.run.windows.x86.Release.mch 3 3 0 0 -20 +0
realworld.run.windows.x86.checked.mch 0 0 0 0 -0 +0
52 32 19 1 -391 +310

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.x86.checked.mch 24,488 4 24,484 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.x86.checked.mch 119,711 42,004 77,707 152 (0.13%) 152 (0.13%)
benchmarks.run_tiered.windows.x86.checked.mch 47,907 28,726 19,181 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.x86.checked.mch 575,162 320,010 255,152 245 (0.04%) 245 (0.04%)
libraries.crossgen2.windows.x86.checked.mch 241,927 15 241,912 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.x86.checked.mch 304,230 6 304,224 2 (0.00%) 2 (0.00%)
libraries_tests.run.windows.x86.Release.mch 634,124 429,177 204,947 1,684 (0.26%) 1,685 (0.27%)
librariestestsnotieredcompilation.run.windows.x86.Release.mch 315,746 21,872 293,874 7 (0.00%) 9 (0.00%)
realworld.run.windows.x86.checked.mch 35,982 3 35,979 0 (0.00%) 0 (0.00%)
2,299,277 841,817 1,457,460 2,090 (0.09%) 2,093 (0.09%)

jit-analyze output

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: 43746356 (overridden on cmd)
Total bytes of diff: 43746311 (overridden on cmd)
Total bytes of delta: -45 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -3578 : 82042.dasm (-100.00 % of base)
       -3351 : 106617.dasm (-100.00 % of base)
       -1440 : 78739.dasm (-100.00 % of base)
       -1334 : 14435.dasm (-100.00 % of base)
        -433 : 89589.dasm (-100.00 % of base)
        -334 : 75115.dasm (-100.00 % of base)

6 total files with Code Size differences (6 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -3578 (-100.00 % of base) : 82042.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:AddSynthesizedReturnTypeAttributes(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,byref):this (Tier1)
       -3351 (-100.00 % of base) : 106617.dasm - System.Numerics.BigIntegerCalculator:Divide(System.ReadOnlySpan`1[uint],System.ReadOnlySpan`1[uint],System.Span`1[uint]) (Tier1)
       -1440 (-100.00 % of base) : 78739.dasm - Microsoft.Cci.MetadataWriter:WriteInstructions(System.Reflection.Metadata.Blob,System.Collections.Immutable.ImmutableArray`1[ubyte],byref,byref):this (Tier0-FullOpts)
       -1334 (-100.00 % of base) : 14435.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0-FullOpts)
        -433 (-100.00 % of base) : 89589.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:Populate(System.String,int,int):System.__Canon[]:this (Tier1)
        -334 (-100.00 % of base) : 75115.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c:<.ctor>b__17_1(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte:this (Tier1)

Top method improvements (percentages):
       -1440 (-100.00 % of base) : 78739.dasm - Microsoft.Cci.MetadataWriter:WriteInstructions(System.Reflection.Metadata.Blob,System.Collections.Immutable.ImmutableArray`1[ubyte],byref,byref):this (Tier0-FullOpts)
        -334 (-100.00 % of base) : 75115.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c:<.ctor>b__17_1(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte:this (Tier1)
       -3578 (-100.00 % of base) : 82042.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:AddSynthesizedReturnTypeAttributes(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,byref):this (Tier1)
       -3351 (-100.00 % of base) : 106617.dasm - System.Numerics.BigIntegerCalculator:Divide(System.ReadOnlySpan`1[uint],System.ReadOnlySpan`1[uint],System.Span`1[uint]) (Tier1)
       -1334 (-100.00 % of base) : 14435.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0-FullOpts)
        -433 (-100.00 % of base) : 89589.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:Populate(System.String,int,int):System.__Canon[]:this (Tier1)

6 total methods with Code Size differences (6 improved, 0 regressed).


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: 308815477 (overridden on cmd)
Total bytes of diff: 308815636 (overridden on cmd)
Total bytes of delta: 159 (0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -6637 : 231337.dasm (-100.00 % of base)
       -6637 : 276985.dasm (-100.00 % of base)
       -1291 : 498009.dasm (-100.00 % of base)
        -564 : 342492.dasm (-100.00 % of base)
        -399 : 371910.dasm (-100.00 % of base)
        -276 : 370780.dasm (-100.00 % of base)
        -211 : 281383.dasm (-100.00 % of base)
        -176 : 517553.dasm (-100.00 % of base)

8 total files with Code Size differences (8 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -6637 (-100.00 % of base) : 231337.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
       -6637 (-100.00 % of base) : 276985.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
       -1291 (-100.00 % of base) : 498009.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
        -564 (-100.00 % of base) : 342492.dasm - System.String:Concat(System.String,System.String,System.String):System.String (Tier1)
        -399 (-100.00 % of base) : 371910.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,uint,int,int):ubyte (Tier1)
        -276 (-100.00 % of base) : 370780.dasm - ILCompiler.ReadyToRunCompilerContext:ComputeHasGCStaticBase(Internal.TypeSystem.FieldDesc):ubyte:this (Tier1)
        -211 (-100.00 % of base) : 281383.dasm - System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
        -176 (-100.00 % of base) : 517553.dasm - AA:reset() (FullOpts)

Top method improvements (percentages):
        -176 (-100.00 % of base) : 517553.dasm - AA:reset() (FullOpts)
       -1291 (-100.00 % of base) : 498009.dasm - DynamicObjects.M:createObject():System.Object (FullOpts)
        -276 (-100.00 % of base) : 370780.dasm - ILCompiler.ReadyToRunCompilerContext:ComputeHasGCStaticBase(Internal.TypeSystem.FieldDesc):ubyte:this (Tier1)
        -399 (-100.00 % of base) : 371910.dasm - Internal.JitInterface.CorInfoImpl:TryReadRvaFieldData(Internal.TypeSystem.FieldDesc,uint,int,int):ubyte (Tier1)
       -6637 (-100.00 % of base) : 231337.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
       -6637 (-100.00 % of base) : 276985.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
        -211 (-100.00 % of base) : 281383.dasm - System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this (FullOpts)
        -564 (-100.00 % of base) : 342492.dasm - System.String:Concat(System.String,System.String,System.String):System.String (Tier1)

8 total methods with Code Size differences (8 improved, 0 regressed).


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: 186076300 (overridden on cmd)
Total bytes of diff: 186076125 (overridden on cmd)
Total bytes of delta: -175 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -6961 : 78105.dasm (-100.00 % of base)
       -6801 : 62716.dasm (-100.00 % of base)
       -4876 : 153775.dasm (-100.00 % of base)
       -4796 : 72852.dasm (-100.00 % of base)
       -4527 : 575133.dasm (-100.00 % of base)
       -4489 : 158592.dasm (-100.00 % of base)
       -4149 : 591911.dasm (-100.00 % of base)
       -2752 : 160216.dasm (-100.00 % of base)
       -2592 : 160131.dasm (-100.00 % of base)
       -2575 : 290447.dasm (-100.00 % of base)
       -2442 : 582695.dasm (-100.00 % of base)
       -2330 : 67170.dasm (-100.00 % of base)
       -2229 : 83610.dasm (-100.00 % of base)
       -2201 : 57167.dasm (-100.00 % of base)
       -2063 : 586880.dasm (-100.00 % of base)
       -1754 : 397718.dasm (-100.00 % of base)
       -1720 : 579589.dasm (-100.00 % of base)
       -1009 : 508908.dasm (-100.00 % of base)
        -808 : 473854.dasm (-100.00 % of base)
        -726 : 508909.dasm (-100.00 % of base)

35 total files with Code Size differences (35 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -6961 (-100.00 % of base) : 78105.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindNamedAttributeArgument(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeArgumentSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator:this (Tier1)
       -6801 (-100.00 % of base) : 62716.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
       -4876 (-100.00 % of base) : 153775.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
       -4796 (-100.00 % of base) : 72852.dasm - System.Reflection.PortableExecutable.PEHeaders:.ctor(System.IO.Stream,int,ubyte):this (Tier1)
       -4527 (-100.00 % of base) : 575133.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
       -4489 (-100.00 % of base) : 158592.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
       -4149 (-100.00 % of base) : 591911.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
       -2752 (-100.00 % of base) : 160216.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MemberGroupFinalValidation(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):ubyte:this (Tier1)
       -2592 (-100.00 % of base) : 160131.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeOrAliasOrKeyword(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
       -2575 (-100.00 % of base) : 290447.dasm - System.IO.Tests.BaseSymbolicLinks_FileSystem:ResolveLinkTarget_Succeeds(System.String,ubyte):this (Tier1)
       -2442 (-100.00 % of base) : 582695.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:GetOrCreateSlot(Microsoft.CodeAnalysis.CSharp.Symbol,int,ubyte,ubyte):int:this (Tier1)
       -2330 (-100.00 % of base) : 67170.dasm - System.Reflection.PortableExecutable.PEReader:.ctor(System.IO.Stream,int,int):this (Tier1)
       -2229 (-100.00 % of base) : 83610.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeOrAliasOrKeyword(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
       -2201 (-100.00 % of base) : 57167.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeOrAliasOrKeyword(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
       -2063 (-100.00 % of base) : 586880.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConditionalOperator(Microsoft.CodeAnalysis.CSharp.BoundConditionalOperator,ubyte):this (Tier1)
       -1754 (-100.00 % of base) : 397718.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
       -1720 (-100.00 % of base) : 579589.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseMethodOrAccessorBodyBlock(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax],ubyte):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.BlockSyntax:this (Tier1)
       -1009 (-100.00 % of base) : 508908.dasm - System.Linq.Expressions.Compiler.VariableBinder:VisitConstant(System.Linq.Expressions.ConstantExpression):System.Linq.Expressions.Expression:this (Tier1)
        -808 (-100.00 % of base) : 473854.dasm - System.Linq.Expressions.Compiler.ILGen:CanEmitConstant(System.Object,System.Type):ubyte (Tier1)
        -726 (-100.00 % of base) : 508909.dasm - System.Linq.Expressions.Compiler.ILGen:CanEmitConstant(System.Object,System.Type):ubyte (Tier1)

Top method improvements (percentages):
       -1754 (-100.00 % of base) : 397718.dasm - (dynamicClass):<xsl:template match="/">(System.Xml.Xsl.Runtime.XmlQueryRuntime) (FullOpts)
       -6961 (-100.00 % of base) : 78105.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindNamedAttributeArgument(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeArgumentSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator:this (Tier1)
       -2592 (-100.00 % of base) : 160131.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeOrAliasOrKeyword(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
       -2201 (-100.00 % of base) : 57167.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeOrAliasOrKeyword(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
       -2229 (-100.00 % of base) : 83610.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeOrAliasOrKeyword(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
       -2752 (-100.00 % of base) : 160216.dasm - Microsoft.CodeAnalysis.CSharp.Binder:MemberGroupFinalValidation(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):ubyte:this (Tier1)
       -2063 (-100.00 % of base) : 586880.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitConditionalOperator(Microsoft.CodeAnalysis.CSharp.BoundConditionalOperator,ubyte):this (Tier1)
       -2442 (-100.00 % of base) : 582695.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,System.__Canon]:GetOrCreateSlot(Microsoft.CodeAnalysis.CSharp.Symbol,int,ubyte,ubyte):int:this (Tier1)
        -723 (-100.00 % of base) : 573531.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol:Create(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.CSharp.Symbols.Metadata.PE.PEPropertySymbol (Tier1)
        -334 (-100.00 % of base) : 164072.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c:<.ctor>b__17_1(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte:this (Tier1)
        -334 (-100.00 % of base) : 163056.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEPropertySymbol+<>c:<.ctor>b__17_1(Microsoft.CodeAnalysis.ParamInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]):ubyte:this (Tier1)
       -4527 (-100.00 % of base) : 575133.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
       -6801 (-100.00 % of base) : 62716.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
       -4876 (-100.00 % of base) : 153775.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
       -4489 (-100.00 % of base) : 158592.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
       -4149 (-100.00 % of base) : 591911.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol:CalculateUseSiteDiagnostic(byref):ubyte:this (Tier1)
       -1720 (-100.00 % of base) : 579589.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseMethodOrAccessorBodyBlock(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.AttributeListSyntax],ubyte):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.BlockSyntax:this (Tier1)
        -256 (-100.00 % of base) : 572960.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
        -310 (-100.00 % of base) : 63200.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)
        -256 (-100.00 % of base) : 72182.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (Tier1)

35 total methods with Code Size differences (35 improved, 0 regressed).


librariestestsnotieredcompilation.run.windows.x86.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 102171676 (overridden on cmd)
Total bytes of diff: 102171656 (overridden on cmd)
Total bytes of delta: -20 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -7946 : 185859.dasm (-100.00 % of base)
       -1468 : 149021.dasm (-100.00 % of base)
         -62 : 149564.dasm (-100.00 % of base)

3 total files with Code Size differences (3 improved, 0 regressed), 0 unchanged.

Top method improvements (bytes):
       -7946 (-100.00 % of base) : 185859.dasm - System.Reflection.Emit.Tests.AssemblySaveAssemblyBuilder:AssemblyWithDifferentTypes():this (FullOpts)
       -1468 (-100.00 % of base) : 149021.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
         -62 (-100.00 % of base) : 149564.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)

Top method improvements (percentages):
       -7946 (-100.00 % of base) : 185859.dasm - System.Reflection.Emit.Tests.AssemblySaveAssemblyBuilder:AssemblyWithDifferentTypes():this (FullOpts)
       -1468 (-100.00 % of base) : 149021.dasm - System.SpanTests.ReadOnlySpanTests:AsSpan_StartAndLength(System.String,int,int) (FullOpts)
         -62 (-100.00 % of base) : 149564.dasm - System.SpanTests.ReadOnlySpanTests+<>c__DisplayClass21_0:<StringAsSpanNullNonZeroStartAndLength>b__9():this (FullOpts)

3 total methods with Code Size differences (3 improved, 0 regressed).